
本文共 5937 字,大约阅读时间需要 19 分钟。
Spring Boot结合MyBatis入门体验
前言
MyBatis是一个功能强大的 ORM(对象关系映射)框架,能够帮助开发者更高效地与数据库交互。相较于Hibernate等完全自动化的框架,MyBatis的灵活性使其更适合研发人员进行个性化数据库操作。然而,传统的MyBatis应用需要配置大量的xml文件和代码,开发体验较为复杂。随着时间的推移,MyBatis团队逐步推出了生成工具和基于注解的开发模式,以减轻开发负担。特别是在Spring Boot风靡开源项目的背景下,MyBatis推出了Spring Boot增强版mybatis-spring-boot-starter,极大提升了开发效率。
正文:Spring Boot与MyBatis集成
在这个快速开发的项目环境下,选择Spring Boot和MyBatis搭建基础框架是高效的选择。以下将从项目初始化、依赖管理、数据源配置、代码编写到功能实现的各个环节进行详细介绍。
1. 项目初始化
启动一个基于Spring Boot的项目 easiest way to start是一个好选择:访问Spring Boot Initializer,选择要集成的依赖。对于本次项目,基本配置如下:
- Spring Boot Starter Web:提供Spring Boot的Web层功能。
- MyBatis Spring Boot Starter:用于整合MyBatis框架。
- MySQL Connector:配置数据源。
项目初始化完成后,创建一个pom.xml
文件:
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java org.mybatis.springboot mybatis-spring-boot-starter 1.3.1 org.springframework.boot spring-boot-starter-test test
2. 数据源与MyBatis配置
在项目的application.properties
中,添加以下内容,完成数据源和MyBatis的配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydemodbspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. 业务逻辑编写
这一步骤涉及创建实体类、DAO接口及其对应的映射文件。
- 实体类:
public class User { private String id; private String name; private String sex; private int age;}
- DAO接口:
@Mapperpublic interface UserDao { User getUserById(int id); int updateUser(User user); int insertUser(User user); int deleteUserById(int id);}
- Mapper文件:
UPDATE user SET name = #{user.name}, sex = #{user.sex}, age = #{user.age} Where id = #{id} INSERT INTO user (id, name, sex, age) VALUES #{user.id}, #{user.name}, #{user.sex}, #{user.age} DELETE From user Where id = #{id}
4. 扫描与注入
在启动类上开启对DAO接口的扫描,同时注入相应的数据访问对象:
@SpringBootApplication@ComponentScan("com.example.dao")@MapperScan("com.example.dao")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
5. 测试控制器
编写一个简单的RestController,用于测试数据访问:
@RestControllerpublic class HelloController { @Autowired private UserDao userDao; @RequestMapping("/hello") public User hello() { User user = userDao.getUserById(1); System.out.println("Retrieved User: " + user); return user; }}
6. 安装MyBatis Generator
如果需要自动化生成代码,可以集成MyBatis Generator工具。编辑pom.xml
,添加生成工具依赖:
org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 Generate MyBatis Artifacts deploy generate src/main/resources/mybatis-generator/generatorConfig.xml true true mysql mysql-connector-java 5.1.34 org.mybatis.generator mybatis-generator-core 1.3.2 org.springframework.boot spring-boot-maven-plugin exec
7. 生成器配置
创建mybatis-generator/generatorConfig.xml
,并添加以下配置内容:
project=targetresources=target/resources Laudation:基于以上代码配置,您可以通过以下步骤完成数据库表的生成:运行以下命令:```bashmvn mybatis-generator:generate
完成后,项目中会自动生成完整的实体类、DAO接口及对应的MyBatis映射文件(XML或注解形式)。
通过以下步骤添加注解:
@Mapperpublic interface UserAnnotationDao { @Select("SELECT * FROM user WHERE id = #{id}") @Results({ @Result(property = "id", column = "id"), @Result(property = "name", column = "name"), @Result(property = "sex", column = "sex"), @Result(property = "age", column = "age") }) User getUserById(int id); @Select("SELECT * FROM user") @Results({ @Result(property = "id", column = "id"), @Result(property = "name", column = "name"), @Result(property = "sex", column = "sex"), @Result(property = "age", column = "age") }) ListqueryAll(); @Update("UPDATE user SET NAME = #{user.name}, SEX = #{user.sex}, AGE = #{user.age} WHERE ID = #{user.id}") int updateUser(User user); @Insert("INSERT INTO user(id, name, sex, age) VALUES (#{user.id}, #{user.name}, #{user.sex}, #{user.age})") int insertUser(User user); @Delete("DELETE user WHERE ID = #{id}") int deleteUserById(int id);}
以上是基于注解的实现方式,可按需选择适合项目需求的映射方式。
通过以上步骤,您已成功集成Spring Boot和MyBatis,完成了用户数据的 CRUD 操作。在实际项目中,可根据具体需求调整配置,充分发挥MyBatis的灵活性和高效性。
发表评论
最新留言
关于作者
