日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用Spring的NamedParameterJdbcTemplate完成DAO操作

發(fā)布時(shí)間:2024/4/17 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Spring的NamedParameterJdbcTemplate完成DAO操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://zmx.iteye.com/blog/373736

NamedParameterJdbcTemplate內(nèi)部包含了一個(gè)JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相對(duì)于JdbcTemplate主要增加了參數(shù)可以命名的功能。

public Object queryForObject(String sql, Map paramMap, RowMapper rowMapper)

public Object queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper)

?????? SqlParameterSource的兩個(gè)主要實(shí)現(xiàn)MapSqlParameterSource

?????? 和BeanPropertySqlParameterSource

public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)保存數(shù)據(jù)獲得主鍵。?

實(shí)例說明:

/**

?*一、NamedParameterJdbcTemplate提供了命名參數(shù),用:x代替了?

?*NamedParameterJdbcTemplate傳參數(shù)可以用map或者SqlParameterSource

?*map的好處是:x,x的值可以自由取,但是所有參數(shù)的值都必須要放到map中去,其中的key:后面的名稱,value是你傳的值

?*SqlParameterSource的好處是不用一個(gè)個(gè)的賦值,但是:x中的x的值必須和對(duì)象的屬性名稱一樣

?

?*二、使用KeyHolder keyholder=new GeneratedKeyHolder();

?? namedjdbctemp.update(sql, ps,keyholder);這個(gè)參數(shù)可以獲得主鍵生成值

?*/

publicclass StuDaoImple implements StuDaointer{?

??? private NamedParameterJdbcTemplate namedjdbctemp;

?

??? public StuDaoImple(){

?????? namedjdbctemp=new NamedParameterJdbcTemplate(SQLConnUtil.getDataSource());

??? }// SQLConnUtil為JDBC工具類,提供了得到數(shù)據(jù)源的靜態(tài)方法

??? /*

??? ?* 這里會(huì)用到NamedParameterJdbcTemplate兩個(gè)好處:

??? ?* 1,不用一個(gè)個(gè)的為參數(shù)賦值。

??? ?* 2,可以輕易的得到主鍵自動(dòng)增長(zhǎng)值

??? ?*/

??? publicvoid addStu(Stu stu) {

?????? String sql="insert into stu values(:sname,:ssex,:sbrith)";

?????? //:后面的名稱必須和stu屬性名稱一樣

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? KeyHolder keyholder=new GeneratedKeyHolder();

?????? namedjdbctemp.update(sql, ps,keyholder);

?????? //加上KeyHolder這個(gè)參數(shù)可以得到添加后主鍵的值

?????? int m=keyholder.getKey().intValue();

?????? System.out.println(m);

?????? //Map map=keyholder.getKeys();//這樣可以得到聯(lián)合主鍵的值

?????? //keyholder.getKeyList();//這樣可以得到一些主主鍵值,若一次添加好幾條記錄

??? }

??? publicint count() {

?????? String sql="select count(*) from stu";

?????? //可以通過NamedParameterJdbcTemplate得到JdbcTemplate

?????? int m=namedjdbctemp.getJdbcOperations().queryForInt(sql);

?????? return m;

??? }

?

??? /*

??? ?* 這里會(huì)用到NamedParameterJdbcTemplate另一個(gè)好處:

??? ?* 位置參數(shù)

??? ?*/

??? publicvoid delStu(int sid) {

?????? String sql="delete stu where s_id=:id";

?????? Map map=new HashMap();

?????? map.put("id", sid);

?????? namedjdbctemp.update(sql, map);

??? }

??? public List getAllStu() {

?????? String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu";

?????? List list=namedjdbctemp.getJdbcOperations().query(sql,new BeanPropertyRowMapper(Stu.class));

?????? return list;

??? }

??? public List getAllStu(Stu stu) {

?????? String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=:sid";

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? returnnamedjdbctemp.query(sql, ps, new BeanPropertyRowMapper(Stu.class));

??? }

??? public Stu getOneStu(Stu stu) {

?????? String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=:sid";

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? return (Stu)namedjdbctemp.queryForObject(sql, ps, new BeanPropertyRowMapper(Stu.class));

??? }

??? public String getStuName(Stu stu) {

?????? String sql="select s_name as sname from stu where s_name=:sname";

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? return (String)namedjdbctemp.queryForObject(sql, ps, String.class);

??? }

??? publicvoid updStu(Stu stu) {

?????? String sql="update stu set s_name=:sname,s_sex=:ssex,s_brith=:sbrith where s_id=:sid";

?????? SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);

?????? namedjdbctemp.update(sql, ps);

??? }

}

  • JDBC_SpringNamedJdbcTemplate.rar (3.2 MB)
  • 描述: 我的使用Spring的NamedParameterJdbcTemplate完成DAO操作實(shí)例
  • 下載次數(shù): 207

?

總結(jié)

以上是生活随笔為你收集整理的使用Spring的NamedParameterJdbcTemplate完成DAO操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。