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;
              }
          });
  • 相关阅读:
    搭建vue项目脚手架
    vue项目中的iconfont图标下载及配置
    vue-awesome-swiper 轮播图的使用
    IDEA自动生成Mapper和实体文件
    云服务器通过IP如何访问项目
    社保,步入社会的第一步
    Memcached安装与启动
    IDEA提示非法字符,你不懂的UTF-8
    MyEclipse导入eclipse的web项目,将WebRoot切换为WebContent
    Myeclipse2017删除tomcat后,项目全部报错的解决办法
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665687.html
Copyright © 2011-2022 走看看