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

1.Mysql数据库配置

需要安装mysql以及navicat premium
(1)新建数据库
root连接下创建wiki数据库,相应信息填写如下:
在这里插入图片描述
(2)新建用户
新建用户用于专门访问,也可以不用新建。
在这里插入图片描述
新建用户信息包括常规和权限设置,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)新建连接,用于连接上一步新建的用户
在这里插入图片描述

2.Mysql数据库连接

在这里插入图片描述
在这里插入图片描述
输入sql语句验证连接结果
在这里插入图片描述
在这里插入图片描述

3.集成mybatis

mybatis是用于与数据库进行交互,更加方便快捷,是一种半自动的持久层框架(需要用户自行构建sql语句)。
(1)添加依赖
在这里插入图片描述
(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-据库表的实体类:用于返回表中的内容(相当于建立结构类),其参数与数据库表一致或减少。
在这里插入图片描述
java-mapper:接口方法
在这里插入图片描述
resources-mapper:mapper对应的sql语句
在这里插入图片描述
service:逻辑
在这里插入图片描述
(4)层关系
控制层controller->服务层service->持久层(domain/mapper)
controller->接口的入口
service->入口当中会调用service的方法
domain:实体类
java-mapper->service方法中调用mapper中的方法
resources-mapper->mapper映射到对应的xml,执行sql
因此,使用mybatis需要写实体类、接口、xml。
(5)集成代码生成器
官方提供的代码生成器可以满足简单的单表增删查改等功能,复杂方式还是需要步骤(4)。
(a)添加依赖
在这里插入图片描述
注意:依赖当中需要在resources->generator包中添加generator-config.xml文件,作为代码生成器的配置文件。其中需要声明数据库连接方式、domain、java-mapper、resources-mapper的位置。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--generator配置文件-->
<generatorConfiguration>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 自动检查关键字,为关键字增加反引号 -->
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆盖生成XML文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
        <!-- 生成的实体类添加toString()方法 -->
        <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>

        <!-- domain类的位置 -->
        <javaModelGenerator targetProject="src\main\java"
                            targetPackage="com.dengfei.wiki.domain"/>

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src\main\resources"
                         targetPackage="mapper"/>

        <!-- mapper类的位置 -->
        <javaClientGenerator targetProject="src\main\java"
                             targetPackage="com.dengfei.wiki.mapper"
                             type="XMLMAPPER"/>

        <table tableName="demo" domainObjectName="Demo"/>
        <!--<table tableName="ebook"/>-->
        <!--<table tableName="category"/>-->
        <!--<table tableName="doc"/>-->
        <!--<table tableName="content"/>-->
        <!--<table tableName="user"/>-->
<!--        <table tableName="ebook_snapshot"/>-->
    </context>
</generatorConfiguration>

(b)添加启动命令
在这里插入图片描述
在这里插入图片描述
(c)使用代码生成器生成持久层代码
生成器对象在generator-config.xml配置文件中进行指定(数据库表demo),如下:
在这里插入图片描述
依次生成DemoMapper.xml、DemoExample.java、Demo.java、DemoMapper.java四个文件。注意:生成以后最好不要进行修改。
Demo.java:库表实体类
DemoExample.java:特有实体类
DemoMapper.java:接口
DemoMapper.xml:SQL语句
在这里插入图片描述
(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
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南音小榭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值