Spring MVC那些事之JdbcTemplate的使用总结
来源:互联网 发布:网络运营总监简历 编辑:程序博客网 时间:2024/05/22 15:53
jdbctemplate主要使用的方法:
1.execute方法:用于执行任何SQL语句,一般用于执行DDL语句,例如:
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object [] {name, id});
在使用query语句进行查询时,有几种回调方式,其中用的最多的是结果集处理回调,通过回调处理Resultset或将 ResultSet转换为需要的形式:
RowMapper:用于将结果集每行数据转换为需要的类型,用户需实现方法mapRow(ResultSet rs, int rowNum)来完成将每行数据转换为相应的类型。例如:
jdbcTemplate.query(listSql, new RowMapper<Map>() {
@Override
public Map mapRow(ResultSet rs, int rowNum) throws SQLException {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
return row;
jdbcTemplate.query(listSql, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
result.add(row);
jdbcTemplate.query(listSql, new ResultSetExtractor<List>() {
@Override
public List extractData(ResultSet rs) throws SQLException, DataAccessException {
List result = new ArrayList();
while(rs.next()) {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
result.add(row);
}
return result;
NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,可以使用DataSource或JdbcTemplate 对象作为构造器参数初始化,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。 在jdbctemplate中的sql语句中参数一般用?占位符,而在NamedParameterJdbcTemplate使用(:参数名)表示需要传递的参数,通过一个Map或SqlParameterSource 的方式将参数传递给NamedParameterJdbcTemplate.用map的所有参数的值都必须要放到map中去,其中的key为:后面的名称,value是你传的值 SqlParameterSource的好处是不用一个个的赋值,但是:x中的x的值必须和对象的属性名称一样
1.execute方法:用于执行任何SQL语句,一般用于执行DDL语句,例如:
jdbcTemplate.execute("CREATE TABLE USER (user_id integer, name varchar(100)) ");
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object [] {name, id});
使用KeyHolder keyholder=new GeneratedKeyHolder(); jdbcTemplate.update(sql, ps,keyholder);这个参数可以获得主键生成值 。
在使用query语句进行查询时,有几种回调方式,其中用的最多的是结果集处理回调,通过回调处理Resultset或将 ResultSet转换为需要的形式:
RowMapper:用于将结果集每行数据转换为需要的类型,用户需实现方法mapRow(ResultSet rs, int rowNum)来完成将每行数据转换为相应的类型。例如:
jdbcTemplate.query(listSql, new RowMapper<Map>() {
@Override
public Map mapRow(ResultSet rs, int rowNum) throws SQLException {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
return row;
}});
jdbcTemplate.query(listSql, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
result.add(row);
}});
jdbcTemplate.query(listSql, new ResultSetExtractor<List>() {
@Override
public List extractData(ResultSet rs) throws SQLException, DataAccessException {
List result = new ArrayList();
while(rs.next()) {
Map row = new HashMap();
row.put(rs.getInt("id"), rs.getString("name"));
result.add(row);
}
return result;
}});
另一种处理方式例如:jdbcTemplate.query(sql,new BeanPropertyRowMapper(User.class));
NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,可以使用DataSource或JdbcTemplate 对象作为构造器参数初始化,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。 在jdbctemplate中的sql语句中参数一般用?占位符,而在NamedParameterJdbcTemplate使用(:参数名)表示需要传递的参数,通过一个Map或SqlParameterSource 的方式将参数传递给NamedParameterJdbcTemplate.用map的所有参数的值都必须要放到map中去,其中的key为:后面的名称,value是你传的值 SqlParameterSource的好处是不用一个个的赋值,但是:x中的x的值必须和对象的属性名称一样
0 0
- Spring MVC那些事之JdbcTemplate的使用总结
- Spring MVC那些事之ApplicationContext使用
- Spring MVC笔记 使用JdbcTemplate
- Spring之JDBCTemplate使用
- spring 之jdbcTemplate使用
- Spring mvc中jdbcDaoSupport和jdbcTemplate的使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- Spring的jdbcTemplate使用
- 使用spring的jdbcTemplate
- Spring MVC那些事之环境的搭建
- Spring的JdbcTemplate的使用
- Spring中JdbcTemplate的使用
- spring中JDBCTemplate的使用
- spring 中JdbcTemplate的使用
- apache AH01630: client denied by server configuration错误解决方法
- 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(三)
- 云计算核心价值三大看点全解析
- 在不到1G内存机器上快速搭建一个hadoop环境
- 用云计算,为地震逃生争取三十秒
- Spring MVC那些事之JdbcTemplate的使用总结
- 设计一个数据结构,其中包含两个函数,1.插入一个数字,2.获得中数。并估计时间复杂度。
- java.net.BindException: Cannot assign requested address:port
- 第十二周项目三--递归方法求解
- 云计算如何改变数据保护
- Android ListView 去除边缘阴影、选中色、拖动背景色等
- AWK使用方法总结
- 内核镜像
- 虚拟机补丁管理最佳指南