Spring5学习05:JdbcTemplate

迈不过友情╰ 2022-10-21 11:54 285阅读 0赞

1.JdbcTemplate

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

2.实战

1.准备

1.引入依赖

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>8.0.24</version>
  5. </dependency>
  6. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-jdbc</artifactId>
  10. <version>5.3.6</version>
  11. </dependency>
  12. <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
  13. <dependency>
  14. <groupId>org.springframework</groupId>
  15. <artifactId>spring-orm</artifactId>
  16. <version>5.3.6</version>
  17. </dependency>
  18. <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-tx</artifactId>
  22. <version>5.3.6</version>
  23. </dependency>

2.配置连接池

  1. <!--引入外部属性文件 -->
  2. <context:property-placeholder
  3. location="classpath:jdbc.properties" />
  4. <!-- 数据库连接池 -->
  5. <bean id="dataSource"
  6. class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
  7. <property name="url" value="${prop.url}" />
  8. <property name="username" value="${prop.userName}" />
  9. <property name="password" value="${prop.password}" />
  10. <property name="driverClassName" value="${prop.driverClass}" />
  11. </bean>

3.配置 JdbcTemplate 对象,注入 DataSource

  1. <!-- JdbcTemplate 对象 -->
  2. <bean id="jdbcTemplate"
  3. class="org.springframework.jdbc.core.JdbcTemplate">
  4. <!--注入 dataSource -->
  5. <property name="dataSource" ref="dataSource"></property>
  6. </bean>

4.扫描注解

  1. <!-- 开启注解扫描 -->
  2. <context:component-scan
  3. base-package="cn.zj.aop.an"></context:component-scan>

5.创建 service 类,创建 dao 类,在 dao 注入 jdbcTemplate 对象

  1. @Repository
  2. public class UserDaoImpl implements UserDao {
  3. //注入 JdbcTemplate
  4. @Autowired
  5. private JdbcTemplate jdbcTemplate;
  6. }
  7. @Service
  8. public class UserService {
  9. // 注入 dao
  10. @Autowired
  11. private UserDao userDao;
  12. }

2.操作(CRUD)

实体类

  1. public class User {
  2. private String userId;
  3. private String username;
  4. private String ustatus;
  5. @Override
  6. public String toString() {
  7. return "User [userId=" + userId + ", username=" + username + ", ustatus=" + ustatus + "]";
  8. }
  9. public String getUserId() {
  10. return userId;
  11. }
  12. public void setUserId(String userId) {
  13. this.userId = userId;
  14. }
  15. public String getUsername() {
  16. return username;
  17. }
  18. public void setUsername(String username) {
  19. this.username = username;
  20. }
  21. public String getUstatus() {
  22. return ustatus;
  23. }
  24. public void setUstatus(String ustatus) {
  25. this.ustatus = ustatus;
  26. }
  27. }

1.添加

  1. service
  2. //添加
  3. public void addUser(User user) {
  4. userDao.add(user);
  5. }
  6. dao
  7. @Override
  8. public void add(User user) {
  9. // 1 创建 sql 语句
  10. String sql = "insert into t_user values(?,?,?)";
  11. // 2 调用方法实现
  12. Object[] args = { user.getUserId(), user.getUsername(), user.getUstatus() };
  13. int update = jdbcTemplate.update(sql, args);
  14. System.out.println(update);
  15. }
  16. 测试
  17. @Test
  18. public void test1() {
  19. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  20. UserService userService = context.getBean("userService", UserService.class);
  21. User user = new User();
  22. user.setUserId("1");
  23. user.setUsername("java");
  24. user.setUstatus("a");
  25. userService.addUser(user);
  26. }

结果

image.png

2.修改

  1. service
  2. //修改
  3. public void updateUser(User user) {
  4. userDao.updateUser(user);
  5. }
  6. dao
  7. @Override
  8. public void updateUser(User user) {
  9. // TODO Auto-generated method stub
  10. String sql = "update t_user set username=?,ustatus=? where userId=?";
  11. // 2 调用方法实现
  12. Object[] args = { user.getUsername(), user.getUstatus() ,user.getUserId()};
  13. int update = jdbcTemplate.update(sql, args);
  14. System.out.println(update);
  15. }
  16. 测试
  17. @Test
  18. public void test2() {
  19. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  20. UserService userService = context.getBean("userService", UserService.class);
  21. User user = new User();
  22. user.setUserId("1");
  23. user.setUsername("javaScrip");
  24. user.setUstatus("abc");
  25. userService.updateUser(user);
  26. }

image.png

3.删除

  1. // 删除
  2. public void deleteUser(String id) {
  3. userDao.deleteUser(id);
  4. }
  5. @Override
  6. public void deleteUser(String id) {
  7. String sql="delete from t_user where userId=?";
  8. int update=jdbcTemplate.update(sql, id);
  9. System.out.println(update);
  10. }
  11. @Test
  12. public void test3() {
  13. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  14. UserService userService = context.getBean("userService", UserService.class);
  15. userService.deleteUser("1");
  16. }

image.png

4.查询

1.查询总记录数 jdbcTemplate.queryForObject
  1. @Test
  2. public void test4() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. int count = userService.selectUserCount();
  6. System.out.println("数据库中共有记录:"+count);
  7. }
  8. //查询记录数
  9. public int selectUserCount() {
  10. return userDao.selectCount();
  11. }
  12. @Override
  13. public int selectCount() {
  14. String sql = "select count(0) from t_user";
  15. Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
  16. return count;
  17. }
2.查询返回对象
  1. @Test
  2. public void test5() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. User user=userService.findUserInfo("1");
  6. System.out.println(user);
  7. }
  8. //查询对象
  9. public User findUserInfo(String id) {
  10. // TODO Auto-generated method stub
  11. return userDao.findUserInfo(id);
  12. }
  13. @Override
  14. public User findUserInfo(String id) {
  15. String sql = "select userId,username,ustatus from t_user where userId=?";
  16. User user = jdbcTemplate.queryForObject(sql, new
  17. BeanPropertyRowMapper<User>(User. class),id);
  18. return user;
  19. }
3.查询返回集合
  1. @Test
  2. public void test6() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. List<User> list=userService.findAllUser();
  6. System.out.println(list);
  7. }
  8. //查询返回集合
  9. public List<User> findAllUser(){
  10. return userDao.findAllUser();
  11. }
  12. @Override
  13. public List<User> findAllUser() {
  14. String sql = "select userId,username,ustatus from t_user";
  15. List<User> list = jdbcTemplate.query(sql, new
  16. BeanPropertyRowMapper<User>(User. class));
  17. return list;
  18. }

5.批量操作 jdbcTemplate.batchUpdate

1.添加
  1. @Test
  2. public void test7() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. List<Object[]> list = new ArrayList<>();
  6. Object[] o1 = { "11", "易语言", "中文"};
  7. Object[] o2 = { "12", "c++", "cc"};
  8. Object[] o3 = { "13", "MySQL", "数据库"};
  9. list.add(o1);
  10. list.add(o2);
  11. list.add(o3);
  12. userService.batchAdd(list);
  13. }
  14. //批量添加
  15. public void batchAdd(List<Object[]> list){
  16. userDao.batchAdd(list);
  17. }
  18. @Override
  19. public void batchAdd(List<Object[]> list) {
  20. String sql = "insert into t_user values(?,?,?)";
  21. int[] ints = jdbcTemplate.batchUpdate(sql, list);
  22. System.out.println(ints);
  23. }
2.修改
  1. @Test
  2. public void test8() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. List<Object[]> list = new ArrayList<>();
  6. Object[] o1 = { "易语言易", "中文语言","11"};
  7. Object[] o2 = { "c++c", "ccccc","12"};
  8. Object[] o3 = {"MySQL+ORACle", "数据库数据", "13"};
  9. list.add(o1);
  10. list.add(o2);
  11. list.add(o3);
  12. userService.batchUpdate(list);
  13. }
  14. //批量修改
  15. public void batchUpdate(List<Object[]> list) {
  16. userDao.batchUpdate(list);
  17. }
  18. @Override
  19. public void batchUpdate(List<Object[]> list) {
  20. String sql = "update t_user set username=?,ustatus=? where userId=?";
  21. int[] ints = jdbcTemplate.batchUpdate(sql, list);
  22. System.out.println(ints);
  23. }
3.删除
  1. @Test
  2. public void test9() {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
  4. UserService userService = context.getBean("userService", UserService.class);
  5. List<Object[]> list = new ArrayList<>();
  6. Object[] o1 = { "11"};
  7. Object[] o2 = { "12"};
  8. Object[] o3 = { "13"};
  9. list.add(o1);
  10. list.add(o2);
  11. list.add(o3);
  12. userService.batchDelete(list);
  13. }
  14. //批量删除
  15. public void batchDelete(List<Object[]> list) {
  16. userDao.batchDelete(list);
  17. }
  18. @Override
  19. public void batchDelete(List<Object[]> list) {
  20. String sql = "delete from t_user where userId=?";
  21. int[] ints = jdbcTemplate.batchUpdate(sql, list);
  22. System.out.println(ints);
  23. }

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读