spring 之jdbcTemplate使用

简介: 1 方法 queryForObject() 与queryForList() 方法queryForObject(),当在数据表查找的记录不存在时,将抛异常,使用时需要添加异常处理,根据异常类型确定返回结果,建议使用queryForList()替代.2 方法 update(sql,new Object[]{} ) 与 jdbcTemplate.update(sql,

1 方法 queryForObject() 与queryForList()
方法queryForObject(),当在数据表查找的记录不存在时,将抛异常,使用时需要添加异常处理,根据异常类型确定返回结果,建议使用queryForList()替代.

2 方法 update(sql,new Object[]{} ) 与 jdbcTemplate.update(sql, new PreparedStatementSetter())

在spring中第一中方式最终将转换为第二种去执行,传说第二种效率更高,未经验证. 这里只讲述这两种方式的使用,不考虑效率问题.
final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)";
int rowsAffected = jdbcTemplate.update(sql, new PreparedStatementSetter() {
    @Override
    public void setValues(PreparedStatement ps) throws SQLException {
    int index = 0;
    ps.setString(++index, registerData.getOpenid());
    ps.setString(++index, registerData.getCellphone());
    ps.setString(++index, registerData.getPassword());
    }
});
final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)";
int rowsAffected = jdbcTemplate.update(sql, new Object[]{
registerData.getOpenid(),
registerData.getCellphone(),
registerData.getPassword()
});

3 插入返回主键

KeyHolder keyHolder = new GeneratedKeyHolder();
final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)";
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public java.sql.PreparedStatement createPreparedStatement(Connection con)throws SQLException, DataAccessException {
// TODO Auto-generated method stub
java.sql.PreparedStatement preparedStat = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
int index = 0;      
    preparedStat.setString(++index, loginData.getOpenId());     
    preparedStat.setString(++index, loginData.getCellphone());
                preparedStat.setString(++index, loginData.getPassword());

return preparedStat;
    }
}, keyHolder);
BigInteger generatedId = BigInteger.valueOf(keyHolder.getKey().longValue());
目录
相关文章
|
29天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
8 0
|
4月前
|
XML Java 数据库
【Spring】通过JdbcTemplate实现CRUD操作
【Spring】通过JdbcTemplate实现CRUD操作
32 0
|
3月前
|
XML Java 关系型数据库
Spring6 JdbcTemplate和事务
Spring6 JdbcTemplate和事务
|
29天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)
使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)
8 0
|
29天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
10 1
|
29天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
9 0
|
29天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用
使用JDBCTemplate实现与Spring结合,方法公用
7 0
|
3月前
|
SQL Java 数据库连接
Spring 模板技术JdbcTemplate
Spring 模板技术JdbcTemplate
30 0
Spring 模板技术JdbcTemplate
|
3月前
|
Java 数据库连接 数据库
Spring之JdbcTemplate(带你一篇文章搞定JdbcTemplate)
Spring之JdbcTemplate(带你一篇文章搞定JdbcTemplate)
|
9月前
|
SQL Java 数据库连接
java原生jdbc到spring的jdbcTemplate
java原生jdbc到spring的jdbcTemplate