zoukankan      html  css  js  c++  java
  • (六)Spring 中的 JdbcTemplate

    目录


    概念

    JdbcTemplate : 是 Spring 中对持久层(JDBC 技术)一个封装 ;

    使用起来和 Dbutuis 很相似 ;(其实 JdbcTemplate 还不如 Dbutils,看着 Spring 的面子,学一下 ;)


    配置数据库

    //        配置数据库,配置数据源
            DriverManagerDataSource dataSource = new DriverManagerDataSource() ;
    //        配置数据库驱动
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    //        设置数据库URI
            dataSource.setUrl("jdbc:mysql:///springDay03");
    //        配置管理员账号密码
            dataSource.setUsername("root");
            dataSource.setPassword("root");
    

    创建 JdbcTemplate 对象

    //        创建 jdbcTemplate 模板
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource) ;

    增删改查代码

    跟 Dbutils 操作差不多
    

    增删改,都是调用 update 方法,操作方法跟 Dbutils 基本一致 ;

    //        增
            String sql = "insert into user value(?,?,?)" ;
            jdbcTemplate.update(sql,new Object[]{"001","蜡笔小新","123456"}) ;
    
    //        改
            sql = "update user set password = ? where id = ?" ;
            jdbcTemplate.update(sql,new Object[]{"0000","001"}) ;
    
    //        删
            sql = "DELETE from user where  id = ?" ;
            jdbcTemplate.update(sql,"001") ;

    查询的时候, JdbcTemplateDbutils 都一样,都提供一个接口,让我们实现我们自己的处理逻辑 ;JdbcTemplate 给出的接口是:RowMapper ;

    JdbcTemplate 还不如 Dbutils 的原因,就在于:JdbcTemplate 竟然,没有提供基本的实现类给我们。。

    1. 查询返回当个结果(queryForObject(sql,泛型)

          sql = "select COUNT(*) FROM USER " ;
          int num = jdbcTemplate.queryForObject(sql,Long.class).intValue() ;
    2. 查询返回当个对象(queryForObject(sql, new RowMapper<泛型>,可变参数

          sql = "select * from user where id = ?" ;
          User user = jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
              @Override
              public User mapRow(ResultSet resultSet, int i) throws SQLException {
                  String name = resultSet.getString("name") ;
                  String password = resultSet.getString("password") ;
                  User user = new User() ;
                  user.setName(name);
                  user.setPassword(password);
                  return user;
              }
          },"1");
      
    3. 查询返回 list 集合(query

      
          sql = "select * from user " ;
          List<User> users = jdbcTemplate.query(sql, new RowMapper<User>() {
          // 这里的第二个参数是,代表本当前装进list是第几个对象,从0开始计数 ;
              @Override
              public User mapRow(ResultSet resultSet, int i) throws SQLException {
                  String name = resultSet.getString("name") ;
                  String password = resultSet.getString("password") ;
                  User user = new User() ;
                  user.setName(name);
                  user.setPassword(password);
                  return user;
              }
          });
  • 相关阅读:
    java基础学习总结——面向对象1
    java基础学习总结——基础语法2
    java基础学习总结——基础语法1
    java基础学习总结——开篇
    java基础学习总结——java环境变量配置
    Java基础加强总结(二)——泛型
    Java基础加强总结(一)——注解(Annotation)
    Web开发中设置快捷键来增强用户体验
    SQLServer2005中的CTE递归查询得到一棵树
    Jquery操作table
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665687.html
Copyright © 2011-2022 走看看