Fluent Mybatis是一个基于Mybatis框架的ORM(对象关系映射)库,它提供了一种更加流畅、直观的方式来操作数据库。下面是完整的Fluent Mybatis快速入门攻略:
安装和配置
- 在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot.version}</version>
</dependency>
<dependency>
<groupId>cn.org.atool.fluent.mybatis</groupId>
<artifactId>fluent-mybatis</artifactId>
<version>${fluent-mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
其中的${mybatis-spring-boot.version}
和${fluent-mybatis.version}
需要替换成实际的版本号。
- 在
application.yml
文件中配置数据源和Mybatis:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_example
username: user
password: password
mybatis:
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package: com.example.model
其中的com.example.model
应替换成你的实际的实体类所在的包名。
创建实体类和Mapper接口
- 创建实体类,例如:
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
其中的@Data
注解是Lombok提供的,用于生成getter、setter和toString等方法。
- 创建Mapper接口,例如:
public interface UserMapper extends IBaseMapper<User> {
}
IBaseMapper
是Fluent Mybatis提供的一个基本的Mapper接口,用于提供一些基本的CRUD(创建、读取、更新和删除)操作。
创建数据表和Mapper XML
在数据库中创建名为user
的表,并在src/main/resources/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">
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="BaseResultMap" type="User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
</resultMap>
<sql id="Base_Column_List">
id, name, age
</sql>
<select id="list" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/> FROM user
</select>
<insert id="save" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
<select id="getById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/> FROM user WHERE id = #{id}
</select>
<update id="updateById">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<delete id="deleteById">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
使用Fluent Mybatis进行CRUD操作
现在我们已经完成了所有的准备工作,下面我们来看看如何使用Fluent Mybatis进行CRUD操作。
- 首先,在Spring Boot的启动类中添加
@MapperScan
注解,用于扫描Mapper接口:
@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 然后,在需要进行CRUD操作的地方注入
IWrapper
接口的实例,并调用其相应的方法即可。例如:
@RestController
public class UserController {
@Autowired
private IWrapper<User> userWrapper;
@GetMapping("/users")
public List<User> list() {
return userWrapper.lambdaQuery().list();
}
@PostMapping("/users")
public void save(@RequestBody User user) {
userWrapper.save(user);
}
@GetMapping("/users/{id}")
public User getById(@PathVariable Long id) {
return userWrapper.lambdaQuery().eq(User::getId, id).one();
}
@PutMapping("/users/{id}")
public void update(@PathVariable Long id, @RequestBody User user) {
user.setId(id);
userWrapper.updateById(user);
}
@DeleteMapping("/users/{id}")
public void deleteById(@PathVariable Long id) {
userWrapper.deleteById(id);
}
}
其中,userWrapper
是IWrapper
接口的实例,它提供了一些方便的方法来进行CRUD操作。list()
方法用于查询所有记录,save()
方法用于新增记录,lambdaQuery()
方法用于创建一个LambdaQueryWrapper对象,用于构造查询条件。其他方法的用法类似。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Fluent Mybatis快速入门详细教程 - Python技术站