Spring JDBC的使用方法详解

网友投稿 252 2022-12-28


Spring JDBC的使用方法详解

1、为什么使用Spring提供的JDBC的封装?

因为Spring提供了完整的模板类以及基类可以简化开发,我们只需写少量的代码即可。

2、实例讲解

第一步:导入依赖  mysql-connector spring-jdbc spring-tx spring-core spring-beans spring-context 等等

第二步:数据库的建立,配置xml

第三步:获取jdbcTemplate对象

可以这样获得

private JdbcTemplate jdbcTemplate;

public void setDataSource(DataSource dataSource){

this.jdbcTemplate=new JdbcTemplate(dataSource);

}

也可以继承JdbcDaoSupport,使用super.getJdbcTemplate()获得

第四步:使用jdbcTemplate对象进行增删改查

增删改使用update(),这个方法的参数,第一个为sql语句,之后为可变参数,传入sql语句中的占位符

查询使用queryForObject()方法的第一个参数为sql中需要的参数,第三个参数为实现RowMapper接口的对象,

用于处理结果集,该方法要求返回单一的对象

query()该方法返回对象集合

public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {

public void save(User user) {

super.getJdbcTemplate().update("insert into user(id,username,password,date,salary) values(null,?,?,?,?)",

user.getUsername(),user.getPassword(),user.getDate(),user.getSalary());

}

public void update(User user) {

super.getJdbcTemplate().update("update user set username=?,password=?,date=?,salary=? where id=?",

user.getUsername(), user.getPassword(), user.getDate(), user.getSalary(), user.getId());

}

public void delete(Integer id) {

super.getJdbcTemplate().update("delete from user where id=?",id);

}

public User findById(Integer id) {

/* List user = super.getJdbcTemplate().query("select * from user where WzrSeqYid=?", new Object[]{id},

new RowMapper() {

@Override

public User mapRow(ResultSet resultSet, int i) throws SQLException {

User user = new User();

user.setId(resultSet.getInt("id"));

user.setDate(resultSet.getDate("date"));

user.setUsername(resultSet.getString("username"));

user.setPassword(resultSet.getString("password"));

user.setSalary(resultSet.getBigDecimal("salary"));

return user;

}

//方法的返回值会直接封装到集合中

});

return user.size()>0?user.get(0):null;*/

User user = super.getJdbcTemplate().queryForObject("select * from user where id=?", new Object[]{id},

new RowMapper() {

@Override

public User mapRow(ResultSet resultSet, int i) throws SQLException {

User user = new User();

user.setId(resultSet.getInt("id"));

user.setDate(resultSet.getDate("date"));

user.setUsername(resultSet.getString("username"));

user.setPassword(resultSet.getString("password"));

user.setSalary(resultSet.getBigDecimal("salary"));

return user;

}

});

return user;

}

public List findAll() {

List users = super.getJdbcTemplate().query("select * from user",

new RowMapper() {

@Override

public User mapRow(ResultSet resultSet, int i) throws SQLException {

User user = new User();

user.setId(resultSet.getInt("id"));

user.setDate(resultSet.getDate("date"));

user.setUsername(resultSet.getString("username"));

user.setPassword(resultSet.getString("password"));

user.setSalary(resultSet.getBigDecimal("salary"));

return user;

}

//方法的返回值会直接封装到集合中

});

return users;

}

}

3、JdbcTemplate是JDBC核心包的中心类

知识点查询地址:

https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/data-access.html#jdbc


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:文件下载接口测试工具在哪(下载文件接口怎么测试)
下一篇:信息管理系统接口设计(信息管理系统接口设计图)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~