目录


概念

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;
    }
    });

最新文章

  1. bootstrap自学总结不间断更新
  2. 再说表单验证,在Web Api中使用ModelState进行接口参数验证
  3. angularjs input上传图片前获取图片的Size
  4. ASP.NET Core 开发-Logging 使用NLog 写日志文件
  5. leetcode 33. Search in Rotated Sorted Array
  6. nodejs之process进程
  7. Mac上远程桌面连接Windows Server 2012 R2
  8. SQL四舍五入及两种舍入
  9. 【ios开发】图片拉伸
  10. Area 使用
  11. Javascript我学之三函数的参数
  12. Python replace() 和 re.sub() 字符串字符替换
  13. 2017.08.15【NOIP提高组】模拟赛B组
  14. windows下模拟网络延时、丢包、抖动
  15. js问题 项目问题
  16. StringBuffer 和 StringBuilder 类
  17. 踩坑记(1)——使用slf4j+logback记录日志
  18. django模板语言转义处理
  19. 安装虚拟机&amp;Linux命令学习
  20. OpenERP 7 picking order 继承需要注意的地方

热门文章

  1. tarjan缩点——在农场万圣节Trick or Treat on the Farm
  2. 第二章实战补充:Python操作Mysql
  3. 通过.zip安装eclipse插件
  4. spring boot jpa-java.lang.IllegalArgumentException: Not a managed type异常问题解决方法
  5. powderdesinger显示中英文表名
  6. DELPHI安卓定位权限申请
  7. 图像质量评价-NQM和WPSNR
  8. C之数据类型
  9. CentOS7使用yum安装mysql5.7
  10. JavaScript里的原型(prototype), 原型链,constructor属性,继承