您好,登錄后才能下訂單哦!
1、為什么使用Spring提供的JDBC的封裝?
因為Spring提供了完整的模板類以及基類可以簡化開發(fā),我們只需寫少量的代碼即可。
2、實例講解
第一步:導入依賴 mysql-connector spring-jdbc spring-tx spring-core spring-beans spring-context 等等
第二步:數(shù)據(jù)庫的建立,配置xml
第三步:獲取jdbcTemplate對象
可以這樣獲得
private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource){ this.jdbcTemplate=new JdbcTemplate(dataSource); }
<bean id="userDao" class="com.test.jdbc.dao.impl.UserDaoImpl"> <property name="dataSource" ref="dataSource"/> </bean>
也可以繼承JdbcDaoSupport,使用super.getJdbcTemplate()獲得
第四步:使用jdbcTemplate對象進行增刪改查
增刪改使用update(),這個方法的參數(shù),第一個為sql語句,之后為可變參數(shù),傳入sql語句中的占位符
查詢使用queryForObject()方法的第一個參數(shù)為sql中需要的參數(shù),第三個參數(shù)為實現(xiàn)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> user = super.getJdbcTemplate().query("select * from user where id=?", new Object[]{id}, new RowMapper<User>() { @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<User>() { @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<User> findAll() { List<User> users = super.getJdbcTemplate().query("select * from user", new RowMapper<User>() { @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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。