Mysql数据库连接、集成mybatis、generator

1.Mysql数据库配置

需要安装mysql以及navicat premium
(1)新建数据库
root连接下创建wiki数据库,相应信息填写如下:
Mysql数据库连接、集成mybatis、generator_第1张图片
(2)新建用户
新建用户用于专门访问,也可以不用新建。
Mysql数据库连接、集成mybatis、generator_第2张图片
新建用户信息包括常规和权限设置,如下:
Mysql数据库连接、集成mybatis、generator_第3张图片
Mysql数据库连接、集成mybatis、generator_第4张图片
Mysql数据库连接、集成mybatis、generator_第5张图片
(3)新建连接,用于连接上一步新建的用户
Mysql数据库连接、集成mybatis、generator_第6张图片

2.Mysql数据库连接

Mysql数据库连接、集成mybatis、generator_第7张图片
Mysql数据库连接、集成mybatis、generator_第8张图片
输入sql语句验证连接结果
Mysql数据库连接、集成mybatis、generator_第9张图片
Mysql数据库连接、集成mybatis、generator_第10张图片

3.集成mybatis

mybatis是用于与数据库进行交互,更加方便快捷,是一种半自动的持久层框架(需要用户自行构建sql语句)。
(1)添加依赖
Mysql数据库连接、集成mybatis、generator_第11张图片
(2)配置数据源
spring.datasource.url=jdbc:mysql://localhost:3306/wiki?serverTimezone=UTC
spring.datasource.username=wiki
spring.datasource.password=dengfei
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
(3)mybatis使用
(a)添加实体层domain:添加数据库表的实体类
(b)添加接口层mapper:官方代码生成器的代码均为XXMapper
(c)添加sql脚本mapper(resources下):存放sql脚本
(d)添加服务层service:存放逻辑
(a)-©一般被称为持久层代码。
详细内容:
domain-据库表的实体类:用于返回表中的内容(相当于建立结构类),其参数与数据库表一致或减少。
Mysql数据库连接、集成mybatis、generator_第12张图片
java-mapper:接口方法
Mysql数据库连接、集成mybatis、generator_第13张图片
resources-mapper:mapper对应的sql语句
Mysql数据库连接、集成mybatis、generator_第14张图片
service:逻辑
Mysql数据库连接、集成mybatis、generator_第15张图片
(4)层关系
控制层controller->服务层service->持久层(domain/mapper)
controller->接口的入口
service->入口当中会调用service的方法
domain:实体类
java-mapper->service方法中调用mapper中的方法
resources-mapper->mapper映射到对应的xml,执行sql
因此,使用mybatis需要写实体类、接口、xml。
(5)集成代码生成器
官方提供的代码生成器可以满足简单的单表增删查改等功能,复杂方式还是需要步骤(4)。
(a)添加依赖
Mysql数据库连接、集成mybatis、generator_第16张图片
注意:依赖当中需要在resources->generator包中添加generator-config.xml文件,作为代码生成器的配置文件。其中需要声明数据库连接方式、domain、java-mapper、resources-mapper的位置。


DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
        
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        commentGenerator>

        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/wiki?serverTimezone=UTC"
                        userId="wiki"
                        password="dengfei">
        jdbcConnection>

        
        <javaModelGenerator targetProject="src\main\java"
                            targetPackage="com.dengfei.wiki.domain"/>

        
        <sqlMapGenerator targetProject="src\main\resources"
                         targetPackage="mapper"/>

        
        <javaClientGenerator targetProject="src\main\java"
                             targetPackage="com.dengfei.wiki.mapper"
                             type="XMLMAPPER"/>

        <table tableName="demo" domainObjectName="Demo"/>
        
        
        
        
        

    context>
generatorConfiguration>

(b)添加启动命令
Mysql数据库连接、集成mybatis、generator_第17张图片
Mysql数据库连接、集成mybatis、generator_第18张图片
(c)使用代码生成器生成持久层代码
生成器对象在generator-config.xml配置文件中进行指定(数据库表demo),如下:
Mysql数据库连接、集成mybatis、generator_第19张图片
依次生成DemoMapper.xml、DemoExample.java、Demo.java、DemoMapper.java四个文件。注意:生成以后最好不要进行修改。
Demo.java:库表实体类
DemoExample.java:特有实体类
DemoMapper.java:接口
DemoMapper.xml:SQL语句
Mysql数据库连接、集成mybatis、generator_第20张图片
(d)
service层代码:

@Service
public class DemoService {
    //注入DemoMapper
    @Resource//JDK自带
    //@Autowired//spring自带
    private DemoMapper demoMapper;

    public List<Demo> list(){
//        查询所有数据
        return demoMapper.selectByExample(null);
    }
}

controller层代码:

@RestController
public class DemoController {
    @Resource
    private DemoService demoService;
    @RequestMapping("/demo/list")
    public List<Demo> list(){
        return demoService.list();
    }
}

http测试:GET http://localhost:8880/demo/list
Mysql数据库连接、集成mybatis、generator_第21张图片

你可能感兴趣的:(动手搭建wiki知识系统,mybatis,数据库,mysql)