springJDBC中NamedParameterJdbcTemplate和JdbcTempl

public class CopyOfStudentDaoImpl implements StudentDao {

private JdbcTemplate jdbcTemplate;
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

public void setDataSource(DataSource dataSource) {
System.out.println(dataSource);
jdbcTemplate = new JdbcTemplate(dataSource);
namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
System.out.println(namedParameterJdbcTemplate);
}

public Cource StudentbyId(String id) {
String sql = "select Tstudent.studentid,Tstudent.username,Tstudent.password,Tstudent.address,course.studentid,course.courseid,course.cName from course join  Tstudent on course.studentid=Tstudent.studentid and course.studentid = ? ";
Cource cource=jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Cource>(Cource.class), id);
return cource;
}

public int addStudent(Student student) {
String sql = "insert into Tstudent (username , password , address ,time) values ( ? , ? , ? , ?)";
return jdbcTemplate.update(sql, new BeanPropertyRowMapper<Student>(Student.class));
}

public int deleteStudent(String id) {
String sql = "delete from Tstudent where studentid = ? ";
return jdbcTemplate.update(sql, id);
}

public List<Student> queryStudent() {
String sql = "select * from Tstudent";
List<Student> list=jdbcTemplate.query(sql, new BeanPropertyRowMapper<Student>(Student.class));
return list;
}

public int updateStudent(Student student) {
String sql = "update Tstudent set username = ? , password = ? , address = ? where studentid = ? ";
return jdbcTemplate.update(sql, new BeanPropertyRowMapper<Student>(Student.class));
}

public int count() {
String sql = "select count(*) from Tstudent";
return jdbcTemplate.queryForInt(sql);
}
public class StudentDaoImpl implements StudentDao {

private JdbcTemplate jdbcTemplate;
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

public void setDataSource(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}

public Cource StudentbyId(String id) {
String sql = "select c.studentid ,c.cName ,c.courseid ,t.username,t.password from course as c join "
+ " Tstudent as t on c.studentid = t.studentid and c.studentid= ? ";
return jdbcTemplate.queryForObject(sql,
new BeanPropertyRowMapper<Cource>(Cource.class), id);
}

public int addStudent( final Student student) {
int result = 0;
final String sql = "insert into Tstudent (username , password , address , time) values ( ? , ? , ? , ?)";
KeyHolder holder = new GeneratedKeyHolder();
result = namedParameterJdbcTemplate.update(sql,
new BeanPropertySqlParameterSource(student), holder);
System.out.println(holder.getKey().intValue());
return result;
}

public int deleteStudent(String id) {
int result = 0;
String sql = "delete from Tstudent where studentid =:id ";
Map<String, String> map = new HashMap<String, String>();
map.put("id", id);
result = namedParameterJdbcTemplate.update(sql, map);
return result;
}

public List<Student> queryStudent() {
String sql = "select * from Tstudent";
RowMapper<Student> mapper = new BeanPropertyRowMapper<Student>(
Student.class);
List<Student> list = jdbcTemplate.query(sql, mapper);
return list;
}

public int updateStudent(Student student) {
int result = 0;
String sql = "update Tstudent set username =:username , password =:password , address =:address where studentid =:studentid";
result = namedParameterJdbcTemplate.update(sql,new BeanPropertySqlParameterSource(student));
return result;
}

public int count() {
String sql = "select count(*) from Tstudent";
return namedParameterJdbcTemplate.getJdbcOperations().queryForInt(sql);
}
}

更多相關文章
  • SpringJDBC中使用c3p0配置數據源:    1.applicationContext.xml 文件:<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
  • SELECT * FROM ARTICLE WHERE TITLE LIKE '%' || :title || '%'
  • 在Spring中使用JDBC      在我們傳統的JDBC中,操作數據庫會有大量的異常處理語句和手動關閉資源語句,這使得我們的如果只是插入一條數據,就會産生大量的catch塊,這些都是我們寫的要嘔吐的語句.在Spring中,我們使用模板和回調,能夠很好的解決這個問題,Spring模板處理數據訪問固 ...
  • Maven 構件工程的屬性文件pom.xml文件(實踐用):<project xmlns="http://maven.apache.org/POM/4.0.0"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta ...
  • Spring框架JdbcTemplate類中查詢方法介紹
    本文使用Spring2.5.6.SEC02和JDK1.4作爲講解環境.  Spring框架中org.springframework.jdbc.core包提供了JDBC模板類,其中JdbcTemplate是core包的核心類,其他模板類都是基于它封裝完成的. Spring除了提供JdbcTemplat ...
  • SpringMVC3 + SpringJDBC整合
     SpringMVC +Spring+ SpringJDBC整合實例.文件結構: 整合大致如下: 1)web.xml的配置:   <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xs ...
  • Spring框架筆記二十五NamedParameterJdbcTemplate與具名參數
    在經典的 JDBC 用法中, SQL 參數是用占位符 ? 表示,並且受到位置的限制. 定位參數的問題在于, 一旦參數的順序發生變化, 就必須改變參數綁定. 在 Spring JDBC 框架中, 綁定 SQL 參數的另一種選擇是使用具名參數(named parameter). 那麽什麽是具名參數?具名 ...
  • mybatis學習教程中級十一mybatis和spring框架整合前奏篇
    1.引言我們前面對mybatis的基礎以及中級知識查詢做了初步了解,比較它只是一個ORM框架.雖然獨當一面,但是不能構造我們完整系統.接下來,我們講講他與Spring整合.以及順帶講解一下Spring MVC.2.Mybatis與Spring整合前奏2.0 spring到底做了什麽.1.讓sprin ...
一周排行
  • 這個類可以用來生成密碼,明文和加密後的密碼 import sun.misc.BASE64Encoder; import java.util.Random; import java.security.MessageDi ...
  • 行長朱小黃帶隊,中信銀行11月12日在上海舉辦易居創新金融發布簽約儀式.在零售戰略層面,中信銀行正借力"易居中國"的"大數據"發力消費金融. 中信銀行副行長孫德順在接受第一財經 ...
  • 這幾天與我們公司有著10多年經驗的老程序員討論使用何種運作模式來管理團隊,我與他有不同的看法. 他主張以數據.文檔爲核心,在設計文檔中寫明每個模塊.方法的輸入輸出,多寫樣本代碼,以盡可能地降低開發門檻爲重要目標之一. ...
  • 在安卓開發中,在使用listView時,我們會經常用到footerView或者headerView給ListView添加的footer和header好多時候,會根據情況隱藏和顯示.因爲footer和header使用刪 ...
  • 用base64_encode()加密,存入DB,取出的時候用base64_decode()解密. $img_file = "路徑/abc.jpg"; $img_string = base64_en ...
  • 此文章爲轉載文章,但內容有些改動  有損壓縮和無損壓縮 1 .有損壓縮  有損壓縮可以減少圖像在記憶體和磁盤中占用的空間,在螢幕上觀看圖像時,不會發現它對圖像的外觀産生太大的不利影響.因爲人的眼睛對光線比較敏感,光線 ...
  • 運維實戰案例之“Too many open files”錯誤與解決方法
    一.問題現象這是一個基于Java的Web應用系統,在後台添加數據時提示無法添加,于是登錄伺 ...
  • Linux顯示使用者將不能利用交談式指令來對行程youhaidong@youhaidong-ThinkPad-Edge-E545:~$ top -s top - 4 up 52 min, 2 users ...
  • 雲計算依托的是更大規模的計算資源的整合以及具體任務中對任務的計算資源合理分配.隨著這個系統中節點數的不斷增加,資源的管理本身將成爲一個問題.試想在一個具有10萬個節點的雲系統中我們如何來組織這些節點來實現邏輯上一個大 ...
  • 多態(Polymorphism)-- 面向對象的典征,現代軟件設計的基石All rights reserved.Samuel12.12.2004 first published on www.cnblogs.com/ ...