Java——SpringBoot整合Mybatis
1 前提条件
- 已安装Java的JDK
- 已安装maven。并配置和建立Maven的本地仓库
- 已安装IDEA开发工具
- 有可连接的数据库
本机环境如下:
系统 |
Windows 10专业版 x64 |
JDK |
1.8.0_191 |
maven |
apache-maven-3.5.2 |
开发工具 |
Intellij IDEA 2018.2.4 专业版 |
数据库 |
MySql |
数据库语句如下:
1 DROP TABLE IF EXISTS `user`; 2 3 4 5 CREATE TABLE `user` ( 6 7 `id` int(11) NOT NULL AUTO_INCREMENT, 8 9 `username` varchar(50) DEFAULT NULL, 10 11 `password` varchar(50) DEFAULT NULL, 12 13 `name` varchar(50) DEFAULT NULL, 14 15 `age` int(50) DEFAULT NULL, 16 17 `email` varchar(50) DEFAULT NULL, 18 19 PRIMARY KEY (`id`) 20 21 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
初始时插入数据如下:
insert into `user`(`id`,`username`,`password`,`name`,`age`,`email`) values (1,'张三','123456',NULL,NULL,NULL),(2,'李四','123456',NULL,NULL,NULL)
2 总体思路
3 详细思路
3.1 创建SpringBoot项目
打开Idea,创建简单的SpringBoot项目。SpringBoot项目的创建还是很简单的,网上也很容易搜到教程。这里就不详细叙述了。
3.2 引入Mybatis和数据库的依赖
打开pom.xml文件,引入Mybatis和当前数据库驱动的依赖。
1 <!--mybatis起步依赖--> 2 <dependency> 3 <groupId>org.mybatis.spring.boot</groupId> 4 <artifactId>mybatis-spring-boot-starter</artifactId> 5 <version>1.1.1</version> 6 </dependency> 7 <!-- MySQL连接驱动 --> 8 <dependency> 9 <groupId>mysql</groupId> 10 <artifactId>mysql-connector-java</artifactId> 11 </dependency>
3.3 配置资源(以properties为例)。配置数据库和实体类的包
新建配置文件(这里为application.properties)。可以使用properties或者yml文件进行配置。
燃煤,我们可以创建实体类和映射文件对应的包和文件夹。
接下来,我们配置数据库,以及实体类和映射文件的包路径。
1 # 数据库配置 2 spring.datasource.driverClassName=com.mysql.jdbc.Driver # 改为 com.mysql.cj.jdbc.Driver "com.mysql.jdbc.Driver"已经不再推荐使用(2024.9.27) 3 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf8 4 spring.datasource.username=root 5 spring.datasource.password=root 6 7 # 整合Mybatis 8 # 实体类配置文件的位置 9 mybatis.type-aliases-package=com.lyj.domain 10 # 接口配置文件的位置 11 mybatis.mapper-locations=classpath:mapper/*Mapper.xml
3.4 编写实体类
在实体类文件夹(这里为con.lyj.domain)添加数据库设计的实体类。
1 @Data 2 public class User { 3 private Integer id; 4 private String username; 5 private String password; 6 private String name; 7 private Integer age; 8 private String email; 9 }
注:这里使用了lombok,lombok可以自己寻找学习资料,或者:https://www.cnblogs.com/luyj00436/p/16696742.html 。
如果不习惯,可以将它们写成包含get、set以及toString方法的实体类,也不费事。
3.5 编写Mapper接口
这里,我们以常用的方法:查询所有数据、查询单个数据、添加单个数据、修改单个数据、修改所有数据为例。
在Mapper包(com.lyj.mapper)下创建UserMapper.java接口。
1 @Mapper 2 public interface UserMapper { 3 4 /** 5 * 查询所有用户 6 * @return 7 */ 8 public List<User> queryUserList(); 9 10 /** 11 * 根据Id查询用户 12 * @param Id 13 * @return 14 */ 15 public User queryUserById(int Id); 16 17 /** 18 * 添加用户用户信息 19 * @param user 20 * @return 21 */ 22 public int addUser(User user); 23 24 /** 25 * 更新用户信息 26 * @param user 27 * @return 28 */ 29 public int updatteUser (User user); 30 31 /** 32 * 删除用户信息 33 * @param id 34 * @return 35 */ 36 public int deleteUser (int id); 37 38 }
3.6 编写实现Mapper的配置的具体语句
知道了要做的事情,我们就去实现它,人生如此,Mybatis也是如此。所以,在资源文件(resources/mapper)文件下创建UserMapper对应的xml文件。我们要做的事情就是实现这几个接口的数据库语句。
1 <?xml version="1.0" encoding="utf-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 4 <mapper namespace="com.lyj.mapper.UserMapper"> 5 <select id="queryUserList" resultType="user"> 6 select * from user 7 </select> 8 9 <select id="queryUserById" resultType="user"> 10 select * from user where id =#{id} 11 </select> 12 <insert id="addUser" parameterType="user"> 13 insert into user(username,password,name ,age,email)values(#{username},#{password},#{name},#{age},#{email}) 14 </insert> 15 <update id="updateUser" parameterType="User"> 16 update user set name = #{username},password={password},name=#{name},age=#{age},email = #{email} where id = #{id} 17 </update> 18 <delete id="deleteUser" parameterType="Int"> 19 delete from user where id = #{id} 20 </delete> 21 </mapper>
这样Mybatis就算整合完成了。下一步,我们需要验证它。
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。