java学习
java学习
Spring对jdbc的支持
在applicationContext.xml文件里写:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
beans xmlns
=
"
http://www.springframework.org/schema/beans
"
xmlns:xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:p
=
"
http://www.springframework.org/schema/p
"
xmlns:aop
=
"
http://www.springframework.org/schema/aop
"
xsi:schemaLocation
=
"
http:
//
www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//
www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
"
>
<
bean id
=
"
dataSource
"
class
=
"
com.mchange.v2.c3p0.ComboPooledDataSource
"
>
<
property name
=
"
driverClass
"
value
=
"
com.mysql.jdbc.Driver
"
/>
<
property name
=
"
jdbcUrl
"
value
=
"
jdbc:mysql:///mydb
"
/>
<
property name
=
"
properties
"
>
<
props
>
<
prop key
=
"
user
"
>
root
</
prop
>
<
prop key
=
"
password
"
>
root
</
prop
>
</
props
>
</
property
>
</
bean
>
<
bean id
=
"
simpleJdbcTemplate
"
class
=
"
org.springframework.jdbc.core.simple.SimpleJdbcTemplate
"
>
<
constructor
-
arg ref
=
"
dataSource
"
></
constructor
-
arg
>
</
bean
>
<
bean id
=
"
userdao
"
class
=
"
com.yjw.dao.UserDao
"
>
<
property name
=
"
jdbcTemplate
"
ref
=
"
simpleJdbcTemplate
"
></
property
>
</
bean
>
</
beans
>
在UserDao里写:
public
class
UserDao
{
//
相当于bdhelp
private
SimpleJdbcTemplate jdbcTemplate;
public
void
save(User user)
{
String sql
=
"
INSERT INTO t_user (username,password) VALUES(?,?)
"
;
jdbcTemplate.update(sql,user.getName(),user.getPassword());
}
public
void
del(
int
id)
{
String sql
=
"
DELETE FROM t_user WHERE id=?
"
;
jdbcTemplate.update(sql, id);
}
public
void
update(User user)
{
String sql
=
"
UPDATE t_user SET username=?,password=? WHERE id=?
"
;
jdbcTemplate.update(sql, user.getName(),user.getPassword(),user.getId());
}
public
User findById(
int
id)
{
String sql
=
"
SELECT id, username,password FROM t_user WHERE id= ?
"
;
return
(User) jdbcTemplate.queryForObject(sql,
new
UserRowmapper(), id);
}
public
List
<
User
>
findAll()
{
String sql
=
"
SELECT id,username,password FROM t_user
"
;
return
jdbcTemplate.query(sql,
new
UserRowmapper() );
}
private
class
UserRowmapper
implements
RowMapper
<
User
>
{
public
User mapRow(ResultSet rs,
int
rowNum)
throws
SQLException
{
User u
=
new
User();
u.setId(rs.getInt(
"
id
"
));
u.setName(rs.getString(
"
username
"
));
u.setPassword(rs.getString(
"
password
"
));
return
u;
}
}
//
set,get
public
void
setJdbcTemplate(@SuppressWarnings(
"
deprecation
"
) SimpleJdbcTemplate jdbcTemplate)
{
this
.jdbcTemplate
=
jdbcTemplate;
}
}
以上就可以了!
在上面的dao里可以用占位符这样写:
public
void
update(User user)
{
String sql
=
"
UPDATE t_user SET username=:name,password=:pwd WHERE id=:id
"
;
Map
<
String,String
>
map
=
new
HashMap
<
String, String
>
();
map.put(
"
name
"
, user.getName());
map.put(
"
pwd
"
, user.getPassword());
map.put(
"
id
"
, String.valueOf(user.getId()));
jdbcTemplate.update(sql, map);
}
还可以这样写:
public
void
update(User user)
{
String sql
=
"
UPDATE t_user SET username=:name,password=:password WHERE id=:id
"
;
SqlParameterSource ss
=
new
BeanPropertySqlParameterSource(user);
jdbcTemplate.update(sql, ss);
}
或者这样写:
public
void
update(User user)
{
String sql
=
"
UPDATE t_user SET username=:name,password=:password WHERE id=:id
"
;
SqlParameterSource ss
=
new
MapSqlParameterSource().addValue(
"
name
"
, user.getName()).addValue(
"
password
"
, user.getPassword()).addValue(
"
id
"
, String.valueOf(user.getId()));
jdbcTemplate.update(sql, ss);
}
但是上面俩种方法的占位符的名字要和实体类中get和set方法后面的一样
或者applicationContext.xml这样写:
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
beans xmlns
=
"
http://www.springframework.org/schema/beans
"
xmlns:xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:p
=
"
http://www.springframework.org/schema/p
"
xmlns:aop
=
"
http://www.springframework.org/schema/aop
"
xsi:schemaLocation
=
"
http:
//
www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//
www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
"
>
<
bean id
=
"
dataSource
"
class
=
"
com.mchange.v2.c3p0.ComboPooledDataSource
"
>
<
property name
=
"
driverClass
"
value
=
"
com.mysql.jdbc.Driver
"
/>
<
property name
=
"
jdbcUrl
"
value
=
"
jdbc:mysql:///mydb
"
/>
<
property name
=
"
properties
"
>
<
props
>
<
prop key
=
"
user
"
>
root
</
prop
>
<
prop key
=
"
password
"
>
root
</
prop
>
</
props
>
</
property
>
</
bean
>
<
bean id
=
"
simpleJdbcTemplate
"
class
=
"
org.springframework.jdbc.core.simple.SimpleJdbcTemplate
"
>
<
constructor
-
arg ref
=
"
dataSource
"
></
constructor
-
arg
>
</
bean
>
<
bean id
=
"
userdao
"
class
=
"
com.yjw.dao.UserDao
"
>
<
property name
=
"
dataSource
"
ref
=
"
dataSource
"
></
property
>
或者写
<!--
<
property name
=
"
jdbcTemplate
"
ref
=
"
simpleJdbcTemplate
"
></
property
>
-->
</
bean
>
</
beans
>
Dao里这样写:
public
class
UserDao
extends
SimpleJdbcDaoSupport
{
//
相当于bdhelp
//
private SimpleJdbcTemplate jdbcTemplate;
public
void
save(User user)
{
String sql
=
"
INSERT INTO t_user (username,password) VALUES(?,?)
"
;
getSimpleJdbcTemplate().update(sql,user.getName(),user.getPassword());
}
public
void
del(
int
id)
{
String sql
=
"
DELETE FROM t_user WHERE id=?
"
;
getSimpleJdbcTemplate().update(sql, id);
}
public
void
update(User user)
{
String sql
=
"
UPDATE t_user SET username=:name,password=:password WHERE id=:id
"
;
SqlParameterSource ss
=
new
MapSqlParameterSource().addValue(
"
name
"
, user.getName()).addValue(
"
password
"
, user.getPassword()).addValue(
"
id
"
, String.valueOf(user.getId()));
getSimpleJdbcTemplate().update(sql, ss);
}
public
User findById(
int
id)
{
String sql
=
"
SELECT id, username,password FROM t_user WHERE id= ?
"
;
return
(User) getSimpleJdbcTemplate().queryForObject(sql,
new
UserRowmapper(), id);
}
public
List
<
User
>
findAll()
{
String sql
=
"
SELECT id,username,password FROM t_user
"
;
return
getSimpleJdbcTemplate().query(sql,
new
UserRowmapper() );
}
private
class
UserRowmapper
implements
RowMapper
<
User
>
{
public
User mapRow(ResultSet rs,
int
rowNum)
throws
SQLException
{
User u
=
new
User();
u.setId(rs.getInt(
"
id
"
));
u.setName(rs.getString(
"
username
"
));
u.setPassword(rs.getString(
"
password
"
));
return
u;
}
}
//
set,get
/**/
/*
public void setJdbcTemplate(SimpleJdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
*/
}
posted on 2012-05-02 10:41
杨军威
阅读(6063)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 391
文章 - 34
评论 - 20
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2021年9月 (1)
2021年6月 (1)
2021年4月 (1)
2021年1月 (1)
2020年12月 (1)
2020年11月 (2)
2020年10月 (1)
2020年8月 (2)
2020年7月 (2)
2020年5月 (1)
2020年4月 (7)
2020年3月 (4)
2019年11月 (1)
2019年6月 (1)
2019年2月 (1)
2018年11月 (2)
2018年8月 (1)
2018年7月 (1)
2018年6月 (1)
2018年5月 (8)
2018年4月 (3)
2018年3月 (10)
2018年2月 (5)
2018年1月 (5)
2017年12月 (12)
2017年11月 (7)
2017年9月 (13)
2017年8月 (13)
2017年7月 (10)
2017年6月 (2)
2017年3月 (3)
2017年2月 (5)
2016年9月 (2)
2016年8月 (2)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (1)
2014年12月 (6)
2013年11月 (1)
2013年9月 (4)
2013年8月 (16)
2013年7月 (6)
2013年6月 (27)
2013年5月 (21)
2013年4月 (48)
2013年3月 (61)
2013年2月 (11)
2013年1月 (33)
2012年12月 (19)
2012年11月 (8)
2012年10月 (2)
2012年9月 (2)
2012年5月 (6)
2012年4月 (4)
2011年11月 (8)
搜索
最新评论
1. re: Form 表单域与 Java 对象属性的自动装配功能[未登录]
没排版,看着好累
--alex
2. re: struts2实现登录拦截器和验证方法
嗯嗯
--嗯嗯
3. re: 用struts2给的jar包解析json
阿斯顿发送到
--阿斯蒂芬
4. re: ApplicationContextAware接口的作用
解决
--解决
5. re: jfinal拦截器笔记5[未登录]
2132
--123
阅读排行榜
1. ApplicationContextAware接口的作用(37183)
2. svn使用(12293)
3. git 解决 unable to get local issuer certificate 问题(10163)
4. jfinal拦截器笔记5(8685)
5. $.cookie的用法(8165)
评论排行榜
1. struts2实现登录拦截器和验证方法(5)
2. jquery阻止表单提交(3)
3. jfinal笔记1(2)
4. extjs和highcharts整合显示数据曲线和打印图片(2)
5. XPath解析,写入,修改xml文件(1)
Powered by:
BlogJava
Copyright © 杨军威