ToB企服应用市场:ToB评测及商务社交产业平台

标题: 13、Spring之JdbcTemplate [打印本页]

作者: 卖不甜枣    时间: 2023-8-31 22:39
标题: 13、Spring之JdbcTemplate
13.1、环境搭建

13.1.1、创建module


13.1.2、选择maven


13.1.3、设置module名称和路径



13.1.4、module初始状态


13.1.5、配置打包方式和依赖

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>org.rain</groupId>
  7.     <artifactId>spring_jdbcTemplate</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9.     <packaging>jar</packaging>
  10.     <dependencies>
  11.         
  12.         <dependency>
  13.             <groupId>org.springframework</groupId>
  14.             <artifactId>spring-context</artifactId>
  15.             <version>5.3.1</version>
  16.         </dependency>
  17.         
  18.         
  19.         
  20.         <dependency>
  21.             <groupId>org.springframework</groupId>
  22.             <artifactId>spring-orm</artifactId>
  23.             <version>5.3.1</version>
  24.         </dependency>
  25.         
  26.         <dependency>
  27.             <groupId>org.springframework</groupId>
  28.             <artifactId>spring-test</artifactId>
  29.             <version>5.3.1</version>
  30.         </dependency>
  31.         
  32.         <dependency>
  33.             <groupId>junit</groupId>
  34.             <artifactId>junit</artifactId>
  35.             <version>4.12</version>
  36.             <scope>test</scope>
  37.         </dependency>
  38.         
  39.         <dependency>
  40.             <groupId>mysql</groupId>
  41.             <artifactId>mysql-connector-java</artifactId>
  42.             <version>5.1.49</version>
  43.         </dependency>
  44.         
  45.         <dependency>
  46.             <groupId>com.alibaba</groupId>
  47.             <artifactId>druid</artifactId>
  48.             <version>1.0.31</version>
  49.         </dependency>
  50.     </dependencies>
  51. </project>
复制代码
13.1.6、创建jdbc.properties文件

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
  3. jdbc.username=root
  4. jdbc.password=root
复制代码
13.1.7、创建Spring的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.        xmlns:context="http://www.springframework.org/schema/context"
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
  6.    
  7.     <context:property-placeholder location="jdbc.properties"></context:property-placeholder>
  8.    
  9.     <bean id="datasource" >
  10.         
  11.         <property name="driverClassName" value="${jdbc.driver}"></property>
  12.         <property name="url" value="${jdbc.url}"></property>
  13.         <property name="username" value="${jdbc.username}"></property>
  14.         <property name="password" value="${jdbc.password}"></property>
  15.     </bean>
  16.    
  17.     <bean id="jdbcTemplate" >
  18.         
  19.         <property name="dataSource" ref="datasource"></property>
  20.     </bean>
  21. </beans>
复制代码
13.2、Spring整合Junit4单元测试

13.2.1、创建测试类

  1. package org.rain.spring.test;
  2. import org.junit.Test;
  3. import org.junit.runner.RunWith;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.test.context.ContextConfiguration;
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  8. /**
  9. * @author liaojy
  10. * @date 2023/8/22 - 7:43
  11. */
  12. // @RunWith注解:表示使用 SpringJUnit4ClassRunner 运行器来运行测试方法
  13.     // 这样测试类便在Spring的测试环境中执行,此时就可以通过注入的方式直接获取IOC容器中的bean
  14. @RunWith(SpringJUnit4ClassRunner.class)
  15. // @ContextConfiguration注解:用来指定加载ApplicationContext的配置文件或配置类
  16. @ContextConfiguration("classpath:spring-jdbc.xml")
  17. public class JdbcTemplateTest {
  18.     @Autowired
  19.     private JdbcTemplate jdbcTemplate;
  20.     @Test
  21.     public void testInsert(){
  22.         String sql = "insert into t_user values(null,?,?,?,?,?)";
  23.         jdbcTemplate.update(sql,"jdbcTemplate","123",23,"男","123@qq.com");
  24.     }
  25. }
复制代码
13.2.2、执行测试方法


++++++++++++++++++++++++++++++分割线++++++++++++++++++++++++++++++
JdbcTemplate的增删改都是用update这个方法

++++++++++++++++++++++++++++++分割线++++++++++++++++++++++++++++++

13.3、JdbcTemplate的查询功能

13.3.1、创建实体类User

  1. package org.rain.spring.pojo;
  2. /**
  3. * @author liaojy
  4. * @date 2023/8/22 - 8:12
  5. */
  6. public class User {
  7.     private Integer id;
  8.     private String username;
  9.     private String password;
  10.     private Integer age;
  11.     private String gender;
  12.     private String email;
  13.     public User(Integer id, String username, String password, Integer age, String gender, String email) {
  14.         this.id = id;
  15.         this.username = username;
  16.         this.password = password;
  17.         this.age = age;
  18.         this.gender = gender;
  19.         this.email = email;
  20.     }
  21.     public User() {
  22.     }
  23.     public Integer getId() {
  24.         return id;
  25.     }
  26.     public void setId(Integer id) {
  27.         this.id = id;
  28.     }
  29.     public String getUsername() {
  30.         return username;
  31.     }
  32.     public void setUsername(String username) {
  33.         this.username = username;
  34.     }
  35.     public String getPassword() {
  36.         return password;
  37.     }
  38.     public void setPassword(String password) {
  39.         this.password = password;
  40.     }
  41.     public Integer getAge() {
  42.         return age;
  43.     }
  44.     public void setAge(Integer age) {
  45.         this.age = age;
  46.     }
  47.     public String getGender() {
  48.         return gender;
  49.     }
  50.     public void setGender(String gender) {
  51.         this.gender = gender;
  52.     }
  53.     public String getEmail() {
  54.         return email;
  55.     }
  56.     public void setEmail(String email) {
  57.         this.email = email;
  58.     }
  59.     @Override
  60.     public String toString() {
  61.         return "User{" +
  62.                 "id=" + id +
  63.                 ", username='" + username + '\'' +
  64.                 ", password='" + password + '\'' +
  65.                 ", age=" + age +
  66.                 ", gender='" + gender + '\'' +
  67.                 ", email='" + email + '\'' +
  68.                 '}';
  69.     }
  70. }
复制代码
13.3.2、查询单条数据

  1.     @Test
  2.     public void testGetUserById(){
  3.         String sql = "select * from t_user where id = ?";
  4.         // 第一个参数是设置要执行的sql语句,第二个参数是设置查询结果和实体类的对应关系,后面的参数列表是设置sql语句中占位符的值
  5.         User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), 10);
  6.         System.out.println(user);
  7.     }
复制代码
13.3.3、查询多条数据

  1.     @Test
  2.     public void testGetAllUser(){
  3.         String sql = "select * from t_user";
  4.         List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
  5.         for (User user : users) {
  6.             System.out.println(user);
  7.         }
  8.     }
复制代码
13.3.4、查询单行单列

  1.     @Test
  2.     public void testUserCount(){
  3.         String sql = "select count(*) from t_user";
  4.         // 第二个参数是设置查询结果对应的Java类型;如果sql中有占位符,后面可以用参数列表来设置sql语句中占位符的值
  5.         Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
  6.         System.out.println("用户数量为:"+integer);
  7.     }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4