1、目的
本示例程序展示Mybatis的简单功能,如CRUD的功能。
2、环境
JDK17
Idea 2019
MyBatis : 3.5.13
SpringBoot 3.1.1
mysql 5.7
3、需要准备的知识
- 了解ideal开发工具
- 能灵活使用SpringBoot(起码入门)
4、准备的表(SQL)
CREATE TABLE `person` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'PK',
`name` varchar(255) DEFAULT '' COMMENT '名称',
`age` int(10) unsigned DEFAULT '1' COMMENT '年龄',
`school` varchar(255) DEFAULT '' COMMENT '学校',
`province` varchar(255) DEFAULT '' COMMENT '藉惯',
`created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`creator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '创建人',
`revised_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`reviser` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '修改人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='会员表';
5、创建工程
用ideal工具,创建一个 maven的springboot 工程。
5.1 配置application.yml
在application.yml中加入如下内容:
#hikari配置
spring:
datasource: # 数据源的相关配置
type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
username: root
password: 12345678
hikari:
pool-name: driver-HikariCP #连接池名称
connection-timeout: 60000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
minimum-idle: 5 # 最小连接数
maximum-pool-size: 20 #最大连接数量
auto-commit: true # 自动提交
max-lifetime: 1800000 #连接的最长生命周期
keepalive-time: 1750000 #尝试保持连接的频率
connection-test-query: select 1 #连接验证sql
#mybatis 配置
mybatis:
type-aliases-package: net.jhelp.mybatis.learning.orm.entity # 所有POJO类所在包路径
mapper-locations: classpath:mapperXml/*.xml, classpath:mapperExt/*/*.xml # mapper映射文件
configuration:
#下划线自动转驼峰
map-underscore-to-camel-case: true
#打印sql语句,有多种日志实现方式,常用StdOutImpl、Slf4jImpl
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
6、配置springboot 的 pom引用
打开pom.xml文件,加入springboot, mybatis, mysql-java驱动的maven 引用。
效果如下:
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.jhelp.mybatis.learning</groupId>
<artifactId>01-myfirstdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<description></description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>17</jdk.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>6.0.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>3.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>${project.basedir}/src/main/resources/generatorConfig-mysql.xml
</configurationFile>
</configuration>
</plugin>
</plugins>
</build>
</project>
为了方便mybatis 的dao及 entity的生成,加了入自动生成的引用