[转]JdbcTemplate的CRUD方法

很实用,先码住!已声明转载!-----》https://www.cnblogs.com/tuhooo/p/6491913.html

JdbcTemplate的CRUD方法

1. 插入数据

  1 public void addUser(User user) {
  2 
  3     String sql = "insert into user (username, password) values (?, ?)";
  4 
  5     jdbcTemplate.update(sql, user.getUsername(), user.getPassword());
  6 
  7 }

如上,插入代码用的是update方法,其实增删改用的都是update方法,而查询则是和query相关的方法。

2. 删除操作

  1 public void deleteUser( ) {
  2     String sql = "delete from user where username= ?";
  3     jdbcTemplate.update(sql, "小王");
  4 }

3. 修改操作

  1 public void updateUser(User user) {
  2     String sql = "update user set username=? where username= ?";
  3     jdbcTemplate.update(sql,  user.getUsername() + "_new", user.getUsername());
  4 }

4. 查询操作

上面三个都比较简单,查询倒是有些复杂。在使用比较基础的持久化工具的时候,比如DBUtils都会针对查询结果给我们提供一些封装的接口和类,但是JdbcTemplate只给我们提供了接口,并没有可用的类,所以我们需要自己写实现类来进行封装。这里会学习使用JdbcTemplate进行三种查询操作:

4.a. 查询表的记录数

image

  1 @Test
  2 public void test5() {
  3     ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
  4     JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
  5     String sql = "select count(*) from user";
  6     Long row = jdbcTemplate.queryForObject(sql, Long.class);
  7     System.out.println("查询出来的记录数为:" + row);
  8 }

4.b. 查询返回对象

扫描二维码关注公众号,回复: 2752176 查看本文章

image

复制代码
  1 @Test
  2 public void test6() {
  3     // 获得jdbcTemplate对象
  4     ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
  5     JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
  6     String sql = "select username, password from user where username = ?";
  7     // 设定参数
  8     Object[] object = {"mary_new"};
  9     // 进行查询
 10     User user = jdbcTemplate.queryForObject(sql, object,  new UserMapper());
 11     System.out.println(user);
 12 }
复制代码

除此之外要实现结构RowMapper来新建一个映射类:

复制代码
  1 package com.spring.test;
  2 
  3 import java.sql.ResultSet;
  4 import java.sql.SQLException;
  5 
  6 import org.springframework.jdbc.core.RowMapper;
  7 
  8 import com.spring.domain.User;
  9 
 10 public class UserMapper implements RowMapper<User>{
 11 
 12     @Override
 13     public User mapRow(ResultSet resultSet, int rows) throws SQLException {
 14         User user = new User();
 15         user.setUsername(resultSet.getString(1));
 16         user.setPassword(resultSet.getString(2));
 17 
 18         return user;
 19     }
 20 
 21 }
复制代码

要注意这个UserMapper.java应该要和具体的Sql语句对应。

4.c. 查询并返回List集合

image

复制代码
  1 @Test
  2 public void test7() {
  3     // 获得jdbcTemplate对象
  4     ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
  5     JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
  6 
  7     // sql语句
  8     String sql = "select * from user";
  9     List<User> users = jdbcTemplate.query(sql, new UserMapper());
 10 
 11     for(User u: users) {
 12         System.out.println(u);
 13     }
 14 }
复制代码

猜你喜欢

转载自blog.csdn.net/harry5508/article/details/81009775
今日推荐