Spring Boot整合MyBatis完整攻略
Spring Boot是一个快速开发框架,可以帮助开发人员快速构建Web应用程序。在Spring Boot中,整合MyBatis可以帮助我们更方便地操作数据库。本文将介绍如何在Spring Boot中整合MyBatis,并提供两个示例。
整合MyBatis
在Spring Boot中整合MyBatis需要以下步骤:
- 添加MyBatis和MyBatis-Spring-Boot-Starter依赖。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
- 配置数据源。
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 配置MyBatis。
@Configuration
@MapperScan("com.example.demo.mapper")
public class MyBatisConfig {
@Autowired
private DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate() throws Exception {
return new SqlSessionTemplate(sqlSessionFactory());
}
}
在上面的示例中,我们创建了一个名为MyBatisConfig的类,并使用@Configuration注解标记。在MyBatisConfig类中,我们使用@MapperScan注解指定Mapper接口所在的包。在sqlSessionFactory()方法中,我们创建了一个SqlSessionFactoryBean,并设置数据源。在sqlSessionTemplate()方法中,我们创建了一个SqlSessionTemplate,并注入SqlSessionFactory。
示例一:使用注解方式操作数据库
以下是一个示例,演示如何使用注解方式操作数据库:
- 创建一个名为User的实体类。
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
- 创建一个名为UserMapper的Mapper接口。
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User findById(Long id);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
void save(User user);
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
void update(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void delete(Long id);
}
- 在application.properties文件中添加以下配置。
mybatis.configuration.map-underscore-to-camel-case=true
- 在Service中注入UserMapper,并使用UserMapper操作数据库。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User findById(Long id) {
return userMapper.findById(id);
}
public void save(User user) {
userMapper.save(user);
}
public void update(User user) {
userMapper.update(user);
}
public void delete(Long id) {
userMapper.delete(id);
}
}
在上面的示例中,我们创建了一个名为User的实体类,并使用@Data注解标记。在UserMapper接口中,我们使用@Mapper注解标记,并使用@Select、@Insert、@Update、@Delete注解定义SQL语句。在application.properties文件中,我们添加了mybatis.configuration.map-underscore-to-camel-case=true配置,用于将下划线命名转换为驼峰命名。在UserService中,我们注入了UserMapper,并使用UserMapper操作数据库。
示例二:使用XML方式操作数据库
以下是一个示例,演示如何使用XML方式操作数据库:
- 创建一个名为User的实体类。
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
- 创建一个名为UserMapper的Mapper接口。
public interface UserMapper {
User findById(Long id);
void save(User user);
void update(User user);
void delete(Long id);
}
- 在resources/mapper目录下创建一个名为UserMapper.xml的XML文件。
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findById" resultType="com.example.demo.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="save">
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
<update id="update">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<delete id="delete">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
- 在application.properties文件中添加以下配置。
mybatis.mapper-locations=classpath:mapper/*.xml
- 在Service中注入UserMapper,并使用UserMapper操作数据库。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User findById(Long id) {
return userMapper.findById(id);
}
public void save(User user) {
userMapper.save(user);
}
public void update(User user) {
userMapper.update(user);
}
public void delete(Long id) {
userMapper.delete(id);
}
}
在上面的示例中,我们创建了一个名为User的实体类,并使用@Data注解标记。在UserMapper接口中,我们定义了findById、save、update、delete方法。在resources/mapper目录下,我们创建了一个名为UserMapper.xml的XML文件,并定义了SQL语句。在application.properties文件中,我们添加了mybatis.mapper-locations=classpath:mapper/*.xml配置,用于指定Mapper XML文件所在的目录。在UserService中,我们注入了UserMapper,并使用UserMapper操作数据库。
总结
在本文中,我们介绍了如何在Spring Boot中整合MyBatis,并提供了两个示例。这些技巧可以帮助您更好地理解Spring Boot中如何整合MyBatis,并提高开发效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇超详细的Spring Boot整合Mybatis文章 - Python技术站