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