超级通俗易懂的Spring JDBC 基于阿里的 Druid技术

  • Spring JDBC是:Spring框架对JDBC的简单封装

操作步骤:

第一步:还是我们熟悉的导入jar包
第二步:创建jdbcTemplate对象,依赖于数据源DataSource对象(也就是说还是先要创建DataSource对象)。[Template是 模板 的意思]

//还是先要使用DruidDataSourceFactory类的 createDataSource()方法获取DataSource对象
DataSource ds =DruidDataSourceFactory.createDataSource();
//再传入DataSource进jdbcTemplate的构造器中,创建jdbcTemplate对象
jdbcTemplate template = new jdbcTemplate(ds);

第三步:写sql

String sql = ".insert into employee(ename,money)values(?,?)"

第四步:执行sql
是的,您没有看错。
使用Spring框架的jdbcTemplate对象,什么创建数据库连接对象。获取执行sql语句的对象。等等都没有了甚至连close方法你都不需要再调用了,就是这么优秀。

  • 这里涉及到了DML语言和DQL语句
    1.如果是DML语言,直接调用jdbcTemplate对象里边的Uptada()方法执行sql
    template.uptada(sql,"给第一个?赋值",“第二个?赋值”,“给第三个?赋值”.......)

    2.如果是DQL语言,就有点麻烦了。

  • 要介绍jdbcTemplate对象里边的成员方法了

  • 1.queryForMap():将查询的结果封装为一个Map集合。但是只能封装一行记录,也即是说无论你查出多少行都只能封装一行数据。

  •  //2.写sql
     String sql = "select * from employee where money = ? ";
    
     //3.执行sql 并 将查询的结果封装为Map集合
     Map<String, Object> som = template.queryForMap(sql, 1000);`
    
  • 2.queryForList():将查询的结果集封装为一个以Map集合为单位的List集合。他的里边都是一个个Map集合.

  •    //2.写sql
      String sql = "select * from employee  ";
     
      //3.执行sql 并 将查询的结果封装为以Map集合为单位的List集合
      List<Map<String, Object>> list = template.queryForList(sql);`
    
    
  • 3.query():可以封装为一个以 自定义对象 为单位的List集合

        //2.写sql
        String sql = "select * from employee  ";

        //3.执行sql 并 将查询的结果封装为以 自定义对象 为单位的List集合
        List<Emp> list = template.query(sql, new RowMapper<Emp>() {
            /**
             *实现RowMapper接口的mapRow方法
             * @param rs 结果集对象
             * @param i
             * @return 返回Emp对象
             * @throws SQLException
             */
            @Override
            public Emp mapRow(ResultSet rs, int i) throws SQLException {
                //ResultSet结果集对象已经给我了,所以
                String ename = rs.getString("ename");
                int money = rs.getInt("money");

                //创建Emp对象
                Emp emp = new Emp();
                emp.setEname(ename);
                emp.setMoney(money);

                return emp;
            }
        });

第三个成员方法query()的优化【用的最多】。
上边是我自己纯手写实现RowMapper接口中的mapRow方法。而下边就是BeanPropertyRowMapper类帮我实现RowMapper的mapRow方法,能理解意思把~

        //2.写sql
        String sql = "select * from employee  ";

        //3.执行sql 并 将查询的结果封装为List集合
        List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class)); //参数需要传class文件
        //又节省了好多代码。BeanPropertyRowMapper类实现了RowMapper

第四个成员方法 queryForObject方法 ,用于聚合函数

扫描二维码关注公众号,回复: 10877327 查看本文章

最后能祝您能快乐的学好JDBC相关知识哦~~奥里给!

发布了4 篇原创文章 · 获赞 4 · 访问量 379

猜你喜欢

转载自blog.csdn.net/javaKingofFuture/article/details/105568726