SpringJDBC——jdbcTemplate模板

一.定義spring

  Spring框架對jdbc進行了封裝,提供的一個JDBCTemplated對象簡化jdbc開發。sql

使用步驟app

  1 導包spring-beans-5.0.0-RELEASE.jar,spring-core-5.0.0-RELEASE.jar,spring-jdbc-5.0.0-RELEASE.jar,spring-tx-5.0.0-RELEASE.jar。輔助類包commons-logging-1.2.ja。框架

  2 建立JDBCTemplate 對象  依賴於DataSourceide

  3 調用JDBCTemplate 方法  CRUD(增刪改查)單元測試

使用方法測試

  update,增、刪、改,DML語句this

  queryForMap() 查詢結果封裝爲map 集合,列名  key  valuespa

  queryForList()  查詢結果封裝List 集合code

  query() 查詢結果,是JavaBean對象

  queryForObject() 將結果封裝成對象 

入門代碼:

public class Templatedemo1 { public static void main(String[] args) { //1.導包 //2.建立JDBCTemplate對象,依賴於DataSource
        JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); //3.調用JDBCTemplate方法
        String sql="insert into coount values(3,?,?)"; int i = template.update(sql, "abcd", 1000); System.out.println(i); } }

二.Junit單元測試,實現讓方法能夠獨立運行:

public class Templatedemo2 { //建立template對象
        JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); //Junit單元測試,可讓方法獨立運行
 @Test //1.修改emp表中id爲1的salary爲10000
    public void test1(){ //建立JDBCTemplate對象,依賴於DataSource
            String sql="update emp set salary=10000 where id=?"; int i = template.update(sql, 1002); System.out.println(i); } @Test //2.給表emp添加信息
    public void test2(){ String sql="insert into emp (id,ename,dept_id) values (?,?,?)"; int i = template.update(sql, 1016, "du", 10); System.out.println(i); } @Test //3.查詢全部,封裝成LIst集合
    public void test3(){ String sql="select * from emp"; List<Map<String, Object>> maps = template.queryForList(sql); for (Map<String, Object> stringObjectMap: maps){ System.out.println(stringObjectMap); } } }
 
//4.刪除添加的數據
 @Test public void test4(){ String s="delete from emp where id=1110"; int i = template.update(s); System.out.println(i); }
//5.查詢id爲2的記錄,將其封裝爲Map集合 //注意這個方法查詢的結果集的長度孩子能是1 DQL語句查詢
 @Test public void test5(){ String s="select * from coount where id=2"; Map<String, Object> map = template.queryForMap(s); System.out.println(map); }
//6.查詢總記錄數
 @Test public void test6(){ String s="select count(id) from emp"; Long l = template.queryForObject(s, Long.class); System.out.println(l); } }

Templatedemo2:

 @Test //7.查詢emp表的記錄,將其封裝到Emp對象的List集合
     public void test7(){ String sql="select * from emp"; List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class)); for (Emp emp:list){ System.out.println(emp); } }

Emp:

public class Emp { private int id; private String ename; private Integer job_id; private Integer mgr; private Date joindate; private Double salary; private Double bonus; private Integer dept_id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public Integer getJob_id() { return job_id; } public void setJob_id(Integer job_id) { this.job_id = job_id; } public Integer getMgr() { return mgr; } public void setMgr(Integer mgr) { this.mgr = mgr; } public Date getJoindate() { return joindate; } public void setJoindate(Date joindate) { this.joindate = joindate; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } public Double getBonus() { return bonus; } public void setBonus(Double bonus) { this.bonus = bonus; } public Integer getDept_id() { return dept_id; } public void setDept_id(Integer dept_id) { this.dept_id = dept_id; } @Override public String toString() { return "Emp{" +
                "id=" + id +
                ", ename='" + ename + '\'' +
                ", job_id=" + job_id +
                ", mgr=" + mgr +
                ", joindate=" + joindate +
                ", salary=" + salary +
                ", bonus=" + bonus +
                ", dept_id=" + dept_id +
                '}'; } }
相關文章
相關標籤/搜索