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;
        }
    }
相关推荐
m0_571957581 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
魔道不误砍柴功3 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2343 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨3 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
Chrikk4 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue4 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man4 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
测开小菜鸟4 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity5 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq