• 寻找写代码感觉(四)之数据库准备及集成持久层框架Mybatis


    一、常见的持久层框架

    • Mybatis (半自动,就是需要自己手动写sql)
    • hibernate(全自动,不需要自己手动写sql)

    二、数据库准备

    • 每个数据库配置单独的用户,专库专用
    • IDEA配置数据库连接
    • 增加数据库脚本
    drop table if exists test;
    
    
    CREATE TABLE `test` (
                                    `id` bigint(20) NOT NULL AUTO_INCREMENT,
                                    `name` varchar(50) DEFAULT NULL COMMENT '用户名',
                                    `password` varchar(50) DEFAULT NULL COMMENT '密码',
                                    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='测试';
    

    三、集成Mybatis

    1、引入依赖

            <!-- 集成mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.3</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.22</version>
            </dependency>
    

    2、配置数据源

    application.yml

    # 增加数据库连接
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/wiki?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
        username: wiki
        password: wiki
    

    添加数据源映射
    resources下创建一个名为mapper的文件夹,并创建mapper文件
    TestMapper.xml示例如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.rongrong.wiki.mapper.TestMapper" >
    
        <select id="list" resultType="com.rongrong.wiki.domain.Test">
            select `id`, `name`, `password` from `test`
        </select>
    
    </mapper>
    
    

    3、使用Mybatis

    配置mybatis所有Mapper.xml所在的路径

    # 配置mybatis所有Mapper.xml所在的路径
    mybatis:
      mapper-locations: classpath:/mapper/**/*.xml
    

    4、创建映射实体及实现映射

    创建一个名为com.rongrong.wiki.domain的包,并创建一个名为Test的实体类,具体代码如下:

    package com.rongrong.wiki.domain;
    
    import lombok.Data;
    
    /**
     * @author rongrong
     * @version 1.0
     * @description
     * @date 2021/10/7 18:22
     */
    @Data
    public class Test {
        private Integer id;
        private String name;
        private String password;
    }
    
    

    创建一个接口TestMapper,示例代码如下:

    package com.rongrong.wiki.mapper;
    
    import com.rongrong.wiki.domain.Test;
    
    import java.util.List;
    
    /**
     * @author rongrong
     * @version 1.0
     * @description
     * @date 2021/10/7 19:13
     */
    public interface TestMapper {
        public List<Test> list();
    }
    
    

    创建一个Service,主要用于写逻辑,示例代码如下:

    package com.rongrong.wiki.service;
    
    import com.rongrong.wiki.domain.Test;
    import com.rongrong.wiki.mapper.TestMapper;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    /**
     * @author rongrong
     * @version 1.0
     * @description
     * @date 2021/10/7 21:09
     */
    @Service
    public class TestService {
    
        @Resource
        private TestMapper testMapper;
    
        public List<Test> list() {
            return testMapper.list();
        }
    }
    
    

    5、编写查询接口

    示例代码如下:

    @GetMapping("/test/list")
    public List<Test> list() {
        return testService.list();
    }
    

    6、使用@MapperScan扫描所有的Mapper接口

    在启动类处添加注解

    四、测试

    访问接口返回如下:

    五、接口和XML的命名

    • 使用@Service@RestController注解,将Service类或Controller类交给Spring来管理了
    • 使用@Resource@Autowire(使用会报错,提示没有bean,我用的是jdk自带的前者)将一个类注入到另一个类中

    优秀不够,你是否无可替代

    软件测试交流QQ群:721256703,期待你的加入!!

    欢迎关注我的微信公众号:软件测试君


  • 相关阅读:
    计算器类(C++&JAVA——表达式转换、运算、模板公式)
    使用/\_ 打印正三角形 C/C++
    Triangle2D类(Java)
    让键盘输入不影响界面的动态效果(C++)
    Java 7.21 游戏:豆机(C++&Java)
    Java 7.35 游戏:猜字游戏(C++&Java)
    Java 8.9 游戏:井字游戏(C++&Java)
    JAVA 8.20 游戏:四子连(Java&C++)
    简易Java文本编译器(C++)
    PAT 1089 狼人杀-简单版(20 分)(代码+测试点分析)
  • 原文地址:https://www.cnblogs.com/longronglang/p/15379267.html
Copyright © 2020-2023  润新知