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的生成,加了入自动生成的引用
注意:本人在idea 上装了 mavehelper 插件,可以通过右键的方式来运行maven的。
按照上图的指引,就可以生成mybatis 的实体和 mapper, xml文件。
运行后的结果如下图:
7、创建测试例
在test目录下的包中,创建一个MybatisTestCase的类,如下图:
MybatisTestCase.java的代码如下:
package net.jhelp.mybatis.learning.test;
import lombok.extern.slf4j.Slf4j;
import net.jhelp.mybatis.learning.orm.entity.Person;
import net.jhelp.mybatis.learning.orm.mapper.PersonMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* 网址:https://www.jhelpe.net
* <p>
* author : kame
* date : 10/15/23 4:52 PM
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class MybatisTestCase {
private PersonMapper personMapper;
@Autowired
public void setPersonMapper(PersonMapper personMapper){
this.personMapper = personMapper;
}
@Test
public void test(){
//创建一个人
Person person = new Person();
person.setAge(39);
person.setName("jack");
person.setSchool("中山大学");
person.setCreatedTime(new java.util.Date());
person.setProvince("广东");
//保存
personMapper.insertSelective(person);
System.out.println("保存的用户ID=" + person.getId());
Person person2 = personMapper.selectByPrimaryKey(person.getId());
System.out.println("保存的人的名字为:" + person2.getName());
}
}
然然后运行这个用例,得到以下的结果:
可以看到程序写了一条记录,并且又将这个记录读取出来。
8、程序源代码
需要上述程序代码的,请关注公众号「技术老男孩」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
本文链接:https://www.jhelp.net/p/dMir1LFP695xJb2t (转载请保留)。
本站推荐
-
548
-
525
-
521
-
511
-
502
文章目录