6、Spring_Junit与JdbcTemplate整合

Spring 整合

1.Spring 整合 Junit

1.1新建项目结构

1.2导入依赖

  • 导入 junit 与 Spring 依赖

    java 复制代码
    <!--        添加 spring 依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.17.RELEASE</version>
    </dependency>
    <!--        添加 junit 依赖-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
        <!--        添加 spring test 整合依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.2.7.RELEASE</version>
    </dependency>

1.3正常的写 spring 代码

  • 添加 mapper

    java 复制代码
    @Repository
    public class StudentMapperImpl implements StudentMapper {
        public void save() {
            System.out.println("保存操作");
        }
    }
  • 添加配置类

    java 复制代码
    @Configuration
    @ComponentScan("cn.sycoder")
    public class SpringConfig {
    }

1.4通过测试类拿去mapper

  • 先建立测试类

    java 复制代码
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = {SpringConfig.class})
    public class StudentTest {
        @Autowired
        private StudentMapper studentMapper;
    
    
        @Test
        public void testStudentMapper(){
            studentMapper.save();
        }
    
    }

1.5@Runwith

说明 @Runwith
位置 测试类上方
作用 测试类注解,设置 junit 运行器的
属性 使用测试运行的环境,SpringJUnit4ClassRunner.class

1.5@ContextConfiguration

说明 @ContextConfiguration
位置 测试类上方
作用 设置 junit 加载 spring 配置类
属性 classes:核心配置类,可以传入多个 locations:配置文件的文件路径名称

2.Spring整合JdbcTemplate

  • 概述:jdbcTemplate 是 spring 对于学过的 jdbc 的封装,实现了方便操作数据库

2.1导入依赖

  • 导入依赖

    java 复制代码
    <!--        添加 orm 依赖-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>5.2.17.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.29</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.2.8</version>
            </dependency>
        <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.22</version>
            </dependency>

2.2建立 jdbc.propreties

  • 创建配置文件

    properties 复制代码
    jdbc.username=root
    jdbc.password=123456
    jdbc.driverClassName=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis

2.3配置druid 连接池

  • 配置类

    java 复制代码
    @Configuration
    @PropertySource("jdbc.properties")
    public class DruidConfig {
        @Value("${jdbc.username}")
        private String username;
        @Value("${jdbc.password}")
        private String password;
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.driverClassName}")
        private String driver;
    
    
        @Bean
        public DataSource dataSource(){
            final DruidDataSource source = new DruidDataSource();
            source.setUsername(username);
            source.setPassword(password);
            source.setDriverClassName(driver);
            source.setUrl(url);
            return source;
        }
    
    }
  • 配置 jdbcTemplate 类

    java 复制代码
    @Configuration
    @PropertySource("jdbc.properties")
    public class DruidConfig {
       @Value("${jdbc.username}")
        private String username;
        @Value("${jdbc.password}")
        private String password;
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.driverClassName}")
        private String driver;
    
    
        @Bean
        public DataSource dataSource(){
            final DruidDataSource source = new DruidDataSource();
            source.setUsername(username);
            source.setPassword(password);
            source.setDriverClassName(driver);
            source.setUrl(url);
            return source;
        }
        
        @Bean
        public JdbcTemplate jdbcTemplate(DataSource dataSource){
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
            return jdbcTemplate;
        }
    
    }

2.4修改 mapper 实现类做保存和查询操作

  • 修改保存

    java 复制代码
    @Repository
    public class StudentMapperImpl implements StudentMapper {
    
        @Autowired
        private JdbcTemplate template;
    
        public void save() {
            String sql = "insert into student value(null,?,?)";
            template.update(sql,"sy",18);
        }
    
        public Student getById(Long id) {
            Object student = template.queryForObject("select * from student where id = ?",
                    new BeanPropertyRowMapper(Student.class), id);
            return (Student) student;
    //        return null;
        }
    }
相关推荐
ps酷教程5 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云5 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
为思念酝酿的痛6 小时前
POSIX信号量
linux·运维·服务器·后端
小羊在睡觉6 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
_日拱一卒6 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
swipe6 小时前
Neo4j + Graph RAG 医疗知识图谱工程实践:患者教育问答真正需要的是“关系可追溯”
后端·langchain·llm
隔窗听雨眠7 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨7 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝7 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区8 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展