(六)Spring 中的 JdbcTemplate
2024-09-04 21:21:21
目录
概念
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") ;
在查询
的时候, JdbcTemplate
跟 Dbutils
都一样,都提供一个接口,让我们实现我们自己的处理逻辑 ;JdbcTemplate
给出的接口是:RowMapper
;
说 JdbcTemplate
还不如 Dbutils
的原因,就在于:JdbcTemplate
竟然,没有提供基本的实现类给我们。。
查询返回当个结果(
queryForObject(sql,泛型)
)sql = "select COUNT(*) FROM USER " ;
int num = jdbcTemplate.queryForObject(sql,Long.class).intValue() ;查询返回当个对象(
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");
查询返回
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;
}
});
最新文章
- bootstrap自学总结不间断更新
- 再说表单验证,在Web Api中使用ModelState进行接口参数验证
- angularjs input上传图片前获取图片的Size
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
- leetcode 33. Search in Rotated Sorted Array
- nodejs之process进程
- Mac上远程桌面连接Windows Server 2012 R2
- SQL四舍五入及两种舍入
- 【ios开发】图片拉伸
- Area 使用
- Javascript我学之三函数的参数
- Python replace() 和 re.sub() 字符串字符替换
- 2017.08.15【NOIP提高组】模拟赛B组
- windows下模拟网络延时、丢包、抖动
- js问题 项目问题
- StringBuffer 和 StringBuilder 类
- 踩坑记(1)——使用slf4j+logback记录日志
- django模板语言转义处理
- 安装虚拟机&;Linux命令学习
- OpenERP 7 picking order 继承需要注意的地方
热门文章
- tarjan缩点——在农场万圣节Trick or Treat on the Farm
- 第二章实战补充:Python操作Mysql
- 通过.zip安装eclipse插件
- spring boot jpa-java.lang.IllegalArgumentException: Not a managed type异常问题解决方法
- powderdesinger显示中英文表名
- DELPHI安卓定位权限申请
- 图像质量评价-NQM和WPSNR
- C之数据类型
- CentOS7使用yum安装mysql5.7
- JavaScript里的原型(prototype), 原型链,constructor属性,继承