JDBCTemplate_执行DML语句和JDBCTemplate_执行DQL语句

JDBCTemplate_执行DML语句

JDBCTemplate_执行DQL语句

需求:

  1.修改1001号数据的salary 为10000

  2.添加一条记录

  3.删除刚孑添加的记录

  4.查询id为1001的记录,将其封装为Map集合。

     5.查询所有记录,将其封装为List

     6.查询所有记录,将其封装为Emp对象的List集合

  7.查询总记录数

最好使用基本数据类型否则数据库有空值使用 6.1 :BeanPropertyRowMapper 封装会报错

/*
 * 封装Emp表数据的JavaBean
 */
public class Emp {
    private Integer 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 +
                '}';
    }
}

 

package com.peng.JDBC_4.JDBCTemplate;


import com.peng.JDBC_4.JDBCTemplate.domain.Emp;
import com.peng.JDBC_4.c3p0.util.JDBCUtils;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public class JDBCTemplate_02 {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    //  1.修改1001号数据的salary 为10000
    @Test
    public void test1(){
        //定义sql
        String sql ="update emp set salary=10000 where id=?";
        //执行sql
        int count = template.update(sql, 1001);
        System.out.println(count);
    }
    //  2.添加一条记录
    @Test
    public void test2(){
        String sql = "insert INTO emp(id,ename,dept_id) values (?,?,?)";
        int count = template.update(sql,1015,"郭靖",10);
        System.out.println(count);
    }
    //  3.删除刚孑添加的记录
    @Test
    public void test3(){
        String sql = "delete from emp where id=?";
        int count = template.update(sql, 1015);
        System.out.println(count);
    }
    //  4.查询id为1001的记录,将其封装为Map集合
    //注意:这个方法查询的结果集长度只能是1
    @Test
    public void test4(){
        String sql = "select * FROM emp where id=?";
        Map<String, Object> map = template.queryForMap(sql, 1001);
        System.out.println(map);
    }
    //     5.查询所有记录,将其封装为List
    @Test
    public void test5(){
        String sql = "select * from emp";
        List<Map<String, Object>> list = template.queryForList(sql);
        for (Map<String, Object> stringObjectMap : list) {
            System.out.println(stringObjectMap);
        }
    }
    //     6.查询所有记录,将其封装为Emp对象的List集合
    @Test
    public void test6(){
        String sql = "select * from emp";
        List<Emp> list = template.query(sql, new RowMapper<Emp>() {
            @Override
            public Emp mapRow(ResultSet rs, int rowNum) throws SQLException {
                Emp emp = new Emp();
                int id = rs.getInt("id");
                String ename = rs.getString("ename");
                int job_id = rs.getInt("job_id");
                int mgr = rs.getInt("mgr");
                Date joindate = rs.getDate("joindate");
                double salary = rs.getDouble("salary");
                double bonus = rs.getDouble("bonus");
                int dept_id = rs.getInt("dept_id");

                emp.setId(id);
                emp.setEname(ename);
                emp.setJob_id(job_id);
                emp.setMgr(mgr);
                emp.setJoindate(joindate);
                emp.setSalary(salary);
                emp.setBonus(bonus);
                emp.setDept_id(dept_id);

                return emp;
            }
        });

        for (Emp emp : list) {
            System.out.println(emp);
        }
    }

    //     6.1查询所有记录,将其封装为Emp对象的List集合
    @Test
    public void test6_2(){
        String sql = "select * from emp";
        List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));
        for (Emp emp : list) {
            System.out.println(emp);
        }
    }

    //  7.查询总记录数
    @Test
    public void test7(){
        String sql = "select count(id) from emp";
        Long total = template.queryForObject(sql, Long.class);
        System.out.println(total);
    }
}

 

1.

 

 

 2.

3.

 

 

 4.

 

 

5.

 

 

 6.

 

 

 7.

 

 

 

posted @ 2022-07-28 10:34  魔光领域  阅读(23)  评论(0编辑  收藏  举报