SpringBoot 整合 Mybatis
- 一、SpringBoot创建项目
- 二、添加相关依赖
- 2.1打开pom.xml文件 -> 使用EditStarter 插件添加依赖
- 2.2添加的依赖
- 三、配置yml配置文件
- 3.1将.properties配置文件修改成.yml配置文件
- 3.2 配置内容
- 3.3创建目录结构
- 四、创建简单数据库,表
- 4.1使用Navicat For Mysql 可视化工具创建数据库
- 4.2填写数据库名称,选择字符集等
- 4.3创建usertb表,插入简单数据
- 五、创建Controller---dao
- 5.1UserController
- 5.2UserService
- 5.3UserServiceImpl
- 5.4Dao层(写法一:注解方式)
- 5.5Dao层(写法二:.xml映射文件形式)
- 5.5.1首先注释掉UserDao里的Sql语句
- 5.5.2创建UserMapper.xml
- 5.5.3将从官网拷贝的xml文件头复制进来
- 5.5.4指定命名空间
- 5.5.5 select 标签
- 5.5.6整个UserMapper.xml
- 六、访问地址及成功结果
- 七、*mapper.xml中一些常用的标签
- 7.1sql标签
- 7.2include标签
- 7.3where标签
- 7.4if标签
- 7.5 update,select ,delete,insert
- 7.6UserMapper.xml中使用这些标签
- 八、关于Mybatis的学习
- 九、Demo案例的下载地址
一、SpringBoot创建项目
点击前往创建项目教程:点击前往
二、添加相关依赖
2.1打开pom.xml文件 -> 使用EditStarter 插件添加依赖
EditStarter 插件使用教程:点击前往
2.2添加的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
三、配置yml配置文件
3.1将.properties配置文件修改成.yml配置文件
3.2 配置内容
server:
port: 1314
servlet:
context-path: /demo
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf8
username: root
password: zzh980828
mybatis:
mapper-locations: classpath:/mapper/*.xml
configuration:
default-statement-timeout: 60
map-underscore-to-camel-case: true
logging:
level:
com.city: debug
file:
path: d:/demo/log
3.3创建目录结构
四、创建简单数据库,表
4.1使用Navicat For Mysql 可视化工具创建数据库
右键->新建数据库
4.2填写数据库名称,选择字符集等
4.3创建usertb表,插入简单数据
DROP TABLE IF EXISTS `usertb`;
CREATE TABLE `usertb` (
`userid` int NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`usersex` varchar(10) DEFAULT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3;
-- ----------------------------
-- Records of usertb
-- ----------------------------
INSERT INTO `usertb` VALUES ('1', '张三', '男');
INSERT INTO `usertb` VALUES ('2', '李四', '男');
INSERT INTO `usertb` VALUES ('3', '翠花', '女');
INSERT INTO `usertb` VALUES ('4', '桂花', '女');
五、创建Controller—dao
5.1UserController
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/queryUser")
public List<User> queryUsers(){
List<User> users = userService.queryUsers();
for (User user : users){
System.out.println(user);
}
return users;
}
@RequestMapping("/queryUserByUserSex")
public List<User> queryUserByUserSex(String userSex){
List<User> users = userService.queryUsersByUserSex(userSex);
for (User user : users){
System.out.println(user);
}
return users;
}
}
5.2UserService
public interface UserService {
List<User> queryUsers();
List<User> queryUsersByUserSex(String userSex);
}
5.3UserServiceImpl
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;
@Override
public List<User> queryUsers() {
List<User> users = userDao.queryUsers();
return users;
}
@Override
public List<User> queryUsersByUserSex(String userSex) {
List<User> users = userDao.queryUsersByUserSex(userSex);
return users;
}
}
5.4Dao层(写法一:注解方式)
@Mapper
public interface UserDao {
@Select("select * from usertb")
List<User> queryUsers();
@Select("select * from usertb where usersex = #{userSex}")
List<User> queryUsersByUserSex(String userSex);
}
这种方法以注解的方式写Sql语句
5.5Dao层(写法二:.xml映射文件形式)
5.5.1首先注释掉UserDao里的Sql语句
5.5.2创建UserMapper.xml
叫什么无所谓,我们会指定具体和哪一个Dao相对应,即命名空间(namespace)
5.5.3将从官网拷贝的xml文件头复制进来
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="">
</mapper>
5.5.4指定命名空间
将UserDao的包路径拷贝做namespace的值
5.5.5 select 标签
id:指定对应的方法名
resultType:指定返回值类型
在标签内部写sql语句
5.5.6整个UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.city.demo.springbootmybatis.dao.UserDao">
<select id="queryUsers" resultType="com.city.demo.springbootmybatis.pojo.User">
select * from usertb;
</select>
<select id="queryUsersByUserSex" resultType="com.city.demo.springbootmybatis.pojo.User">
select * from usertb where usersex = #{userSex};
</select>
</mapper>
六、访问地址及成功结果
地址一:http://localhost:1314/demo/queryUser
地址二:http://localhost:1314/demo/queryUserByUserSex?userSex=女
七、*mapper.xml中一些常用的标签
7.1sql标签
作用:存放一段想复用的sql。
id:给这段想复用的sql命名,方便引用
7.2include标签
作用:引用你想复用的sql语句
refid:指定你想引用的sql语句
7.3where标签
作用:代替你的where里边存放where条件
7.4if标签
作用:进行判断
test:填写你想存放的判断条件
7.5 update,select ,delete,insert
作用:就是对应的update,select,delet,insert
7.6UserMapper.xml中使用这些标签
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.city.demo.springbootmybatis.dao.UserDao">
<select id="queryUsers" resultType="com.city.demo.springbootmybatis.pojo.User">
select *
<include refid="queryFrom"></include>
</select>
<select id="queryUsersByUserSex" resultType="com.city.demo.springbootmybatis.pojo.User">
select *
<include refid="queryFrom"></include>
<where>
<if test="userSex!='' and userSex!=null">
usersex = #{userSex}
</if>
</where>
</select>
<sql id="queryFrom">
from usertb
</sql>
</mapper>
八、关于Mybatis的学习
本文章只是对Mybatis的入门学习,其实关于Mybatis学习还有很多,可以前往官网进行系统的学习!
九、Demo案例的下载地址
点击前往0积分下载