目录
1 在pom.xml中引入相关依赖
2 对数据库进行配置
2.1 配置application.yml
2.2 idea连接数据库 (3.2.1有用到)
3 Mybatis的使用
3.1 测试文件的引入
3.2 使用
3.2.1 使用注解(有小技巧(✪ω✪))
3.2.2 使用动态sql
1 在pom.xml中引入相关依赖
<dependencies>
<!-- web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--下面两个为数据库和MySQL的依赖,上面两个为项目运行/测试所需依赖-->
<!-- mysql驱动依赖-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
</dependencies>
2 对数据库进行配置
测试数据库的创建如下:
create database test;
use test;
CREATE TABLE user
(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50)
);
INSERT INTO user (username)
VALUES ('user1');
INSERT INTO user (username)
VALUES ('user2');
INSERT INTO user (username)
VALUES ('user3');
INSERT INTO user (username)
VALUES ('user4');
INSERT INTO user (username)
VALUES ('user5');
2.1 配置application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver #固定的
url: jdbc:mysql://localhost:3306/test #连接的是测试用的test数据库
username: root #用户名
password: 11235813 #密码
2.2 idea连接数据库 (3.2.1有用到)
3 Mybatis的使用
3.1 测试文件的引入
创建文件结构如下:
相关代码如下:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
}
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
}
public interface UserService {
List<User> list();
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> list() {
return userMapper.list();
}
}
@Mapper
public interface UserMapper {
List<User> list();
}
3.2 使用
3.2.1 使用注解(有小技巧(✪ω✪))
在UserMapper中书写如下内容:
@Mapper
public interface UserMapper {
@Select("select * from user")
List<User> list();
}
运行可以在浏览器看到:
这里有个小技巧:
当我们不使用这个技巧的时候,注解中的语句没有提示只能自己敲,而如果我们让idea连接了数据库 ,并按如下方法进行配置,就会有提示,操作如下:
3.2.2 使用动态sql
①在resource下建立同样的目录结构并创建xml文件,比如:你之前的UserMapper.class在com.itheima.mapper下,你的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">
//这里的com.itheima.mapper.UserMapper,为该xml的对应文件UserMapper.class的位置
//如果换了其它的Mapper,namespace中的内容也要改
<mapper namespace="com.itheima.mapper.UserMapper">
</mapper>
③完善内容
<?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.itheima.mapper.UserMapper">
<!--动态SQL-->
<!--这里的id为UserMapper.class文件中对应的方法名-->
<!--这里的resultType为返回的数据类型,这里返回User-->
<select id="list" resultType="com.itheima.pojo.User">
<!--这只是一种比较粗浅的用法,仅用于举例,动态SQL配合专门标签食用更佳-->
<!--比如:<where>、<if>等等,这里不做赘述-->
select * from user
</select>
</mapper>
测试结果同上