数据库操作技术--Spring jdbcTemplate

一丶jdbcTemplate是什么

           jdbcTemplate是Spring提供的一种操作数据库的技术,是对Jdbc的封装。语法非常接近DBUtils.

        使用JdbcTemplate可以直接操作数据库,加快效率。

二丶jdbcTemplate完整实现步骤

        2.1)创建web项目

          2.2)添加String jar包

                   

        2.3)添加String Template支持(配置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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    //配置数据源
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="url" value="jdbc:mysql:///tb_test"/>
    </bean>
    //添加jdbcTemplate对应的bean
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
</beans>

        2.4)创建一个Dept类(dept.java)

public class dept {
    private  String deptno;
    private  String dname;
    private  String loc;

    public String getDeptno() {
        return deptno;
    }

    public void setDeptno(String deptno) {
        this.deptno = deptno;
    }

    public String getDname() {
        return dname;
    }

    public void setDname(String dname) {
        this.dname = dname;
    }

    public String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

    public dept(String deptno, String dname, String loc) {
        this.deptno = deptno;
        this.dname = dname;
        this.loc = loc;
    }
    public dept(){
        super();
    }
    @Override
    public String toString() {
        return "dept{" +
                "deptno='" + deptno + '\'' +
                ", dname='" + dname + '\'' +
                ", loc='" + loc + '\'' +
                '}';
    }
}

       2.5)创建一个对Dept类进行CURD操作的类(deptService.java)

public class DeptService {
    private JdbcTemplate jdbcTemplate;//注入jdbcTemplate
    //代码块,在执行方法之前获取jdbcTemplate
    {
        ApplicationContext act  = new ClassPathXmlApplicationContext("applicationContext.xml");
        jdbcTemplate = (JdbcTemplate) act.getBean("jdbcTemplate");//对应applicationContext.xml文件中配置的 jdbcTemplate
        System.out.println("jdbcTemplate:"+jdbcTemplate);
    }
    //查询操作
    public void selectAllDepts()throws SQLException {
        BeanPropertyRowMapper<dept> rowMapper = new BeanPropertyRowMapper<>(dept.class);//使用Spring的JdbcTemplate查询数据库,获取List结果列表,数据库表字段和实体类自动对应,可以使用BeanPropertyRowMapper
        List<dept> depts = jdbcTemplate.query("select * from tb_dept", rowMapper);
        for(dept item:depts){
            System.out.println(item);
        }
    }
    //使用jdbcTemplate进行插入操作
    public void addDept(dept dept) throws SQLException{
        int add = jdbcTemplate.update("insert into tb_dept values (?,?,?)", dept.getDeptno(), dept.getDname(), dept.getLoc());
        if (add==1){
            System.out.println("insert success");
        }else{
            System.out.println("insert failed");
        }
    }
    //更新操作
    public void updateDept(dept dept) throws SQLException{
        int update = jdbcTemplate.update("update tb_dept set dname=?,loc=?,where deptno=?");
        if (update==1){
            System.out.println("insert success");
        }else{
            System.out.println("insert failed");
        }
    }
    //删除操作
    public void deleteDept(dept dept)throws SQLException{
        int delete = jdbcTemplate.update("delete from  tb_dept where deptno =? ",dept.getDeptno());
        if (delete==1){
            System.out.println("insert success");
        }else{
            System.out.println("insert failed");
        }
    }
    //批量添加
    public void  batchAdd()throws SQLException{
        String sql="insert into tb_dept values(?,?,?)";
        List<Object[]> depts = new ArrayList<>();
        depts.add(new Object[]{"a","aa","aaa"});
        depts.add(new Object[]{"b","bb","bbb"});
        depts.add(new Object[]{"c","cc","ccc"});
        int[] batchadd = jdbcTemplate.batchUpdate(sql, depts);
    }
    //查询数据库中记录的数量
    public long selectCount()throws SQLException{
        String sql="select count(*) from tb_dept";
        Long res = jdbcTemplate.queryForObject(sql, long.class);
        return res;
    }
}

       2.6)创建一个测试类(DeptTest.java)

public class DeptTest {
    public static void main(String[] args) throws SQLException {
        DeptService deptService = new DeptService();
        deptService.addDept(new dept("g","ggg","gggg"));
        deptService.batchAdd();
        deptService.selectAllDepts();
        System.out.println(deptService.selectCount());
        deptService.deleteDept("g");
    }
}//时间原因,只测试几个

三丶最后给大家推荐一个jar包下载网站:search.maven.org

猜你喜欢

转载自blog.csdn.net/dongjinkun/article/details/80287797
今日推荐