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;
              }
          });
  • 相关阅读:
    Netty解决粘包和拆包问题的四种方案
    springboot 1.4 CXF配置
    聊聊springboot2的embeded container的配置改动
    MFC函数——CWnd::OnCreate
    《开发专家 Visual C 开发入行真功夫》笔记
    MFC中UpdateData()函数的使用
    Visual Studio 2008 添加MScomm控件的方法
    Visual Studio 2008 调试运行Bug记录
    《VS2010/MFC编程入门教程》——读书笔记
    《C++程序设计教程——给予Visual Studio 2008》读书笔记3章
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665687.html
Copyright © 2011-2022 走看看