Spring Boot 整合持久层之MyBatis
介绍
在Spring Boot中,我们可以通过整合MyBatis,来实现对数据库的访问。本篇文章将会介绍如何使用Spring Boot来整合MyBatis,完成对数据库的访问。
第一步:配置pom.xml文件
在我们的应用中配置MyBatis,需要添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
第二步:配置application.properties文件
在这一步中,我们需要配置MyBatis的数据库信息。在application.properties
文件中,添加以下配置:
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
第三步:配置MyBatis
在这一步中,我们需要配置MyBatis。我们需要在Spring Boot应用启动时,自动加载MyBatis的配置。这可以通过在启动类上添加@MapperScan
注解来实现。例如:
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在这个例子中,我们将@MapperScan
注解添加到了启动类上,指示Spring来扫描指定包中的Mapper接口。
第四步:编写Mapper接口
在这一步中,我们需要编写Mapper接口。Mapper接口的作用是定义对于表的操作方法。例如,在这个例子中,我们定义了两个方法:
public interface UserMapper {
List<User> findAll();
User findOne(String id);
}
第五步:编写Mapper.xml文件
在这一步中,我们需要为每个Mapper接口编写XML文件。XML文件将会定义SQL操作。例如,在这个例子中,我们针对上述两个方法编写了以下两个XML文件:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findAll" resultType="User">
select * from user
</select>
<select id="findOne" resultType="User">
select * from user where id = #{id}
</select>
</mapper>
第六步:测试
在这个例子中,我们编写了以下测试方法:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void findAll() {
List<User> userList = userMapper.findAll();
for (User u : userList) {
System.out.println(u);
}
}
@Test
void findOne() {
User user = userMapper.findOne("1");
System.out.println(user);
}
}
以上的测试代码中,我们注入了UserMapper接口,并且对Mapper中定义的方法进行了调用。你可以根据自己的使用需求编写相应的测试方法。
示例:
示例1:查询指定表中的所有数据
在UserMapper接口中定义findAll方法:
public interface UserMapper {
List<User> findAll();
}
在UserMapper.xml文件中实现findAll方法:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findAll" resultType="User">
select * from user
</select>
</mapper>
在测试类中注入UserMapper,测试findAll方法:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void findAll() {
List<User> userList = userMapper.findAll();
for (User u : userList) {
System.out.println(u);
}
}
}
示例2:查询指定表中的一条数据
在UserMapper接口中定义findOne方法:
public interface UserMapper {
User findOne(String id);
}
在UserMapper.xml文件中实现findOne方法:
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findOne" resultType="User">
select * from user where id = #{id}
</select>
</mapper>
在测试类中注入UserMapper,测试findOne方法:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void findOne() {
User user = userMapper.findOne("1");
System.out.println(user);
}
}
结语
通过以上步骤,我们成功的将MyBatis整合进Spring Boot应用中,实现了对数据库的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 整合持久层之MyBatis - Python技术站