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
楊軍威
閱讀(6071)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
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接口的作用(37201)
2.?svn使用(12309)
3.?git 解決 unable to get local issuer certificate 問題(10187)
4.?jfinal攔截器筆記5(8696)
5.?$.cookie的用法(8170)
評論排行榜
1.?struts2實現登錄攔截器和驗證方法(5)
2.?jquery阻止表單提交(3)
3.?jfinal筆記1(2)
4.?extjs和highcharts整合顯示數據曲線和打印圖片(2)
5.?XPath解析,寫入,修改xml文件(1)
Powered by:
BlogJava
Copyright © 楊軍威
主站蜘蛛池模板:
泾阳县
|
延寿县
|
阿拉尔市
|
凯里市
|
塘沽区
|
老河口市
|
永川市
|
沙洋县
|
宜黄县
|
吉林市
|
县级市
|
弥勒县
|
屏东市
|
黎川县
|
明溪县
|
抚顺市
|
东乌珠穆沁旗
|
德阳市
|
兴仁县
|
卫辉市
|
镶黄旗
|
石嘴山市
|
泊头市
|
革吉县
|
武平县
|
张北县
|
田阳县
|
南京市
|
云林县
|
桦南县
|
兴安县
|
稷山县
|
丹棱县
|
兰坪
|
泗水县
|
治多县
|
景谷
|
迁西县
|
云和县
|
仪征市
|
通州市
|