下面我为您介绍一下"SpringBoot MyBatis简单快速入门例子"的完整攻略。
1. 概述
Spring Boot 是一种快速开发应用程序的框架,它可以通过简单的配置来启动 Web 应用程序和服务。MyBatis 是一种 Java 持续层框架,它简化了数据库操作的过程。
在本文中,我们将讨论如何在 Spring Boot 中使用 MyBatis 进行数据库交互。
2. 准备工作
首先,您需要安装以下软件:
- JDK 1.8 或更高版本
- Maven
- MySQL 数据库
接下来,我们要创建一个 Spring Boot 项目,可以使用 Spring Boot CLI 或使用 Spring Initializr 在线服务创建项目。为了使用 MyBatis,还需要添加以下依赖项:
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
3. 编写代码
3.1 配置数据源
在 application.properties
文件中,配置 MySQL 数据库连接信息:
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_sample?&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
3.2 编写实体类
在 src/main/java
目录下创建一个实体类:
public class User {
private Integer id;
private String name;
private String email;
private String password;
// 省略 get/set 方法
}
3.3 编写 Mapper 接口和对应的 XML 文件
在 src/main/resources
目录下创建一个 mapper/UserMapper.xml
文件,然后编写 SQL 语句:
<?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.mybatisdemo.mapper.UserMapper">
<select id="findAll" resultType="com.example.mybatisdemo.entity.User">
select * from user
</select>
<insert id="insert" parameterType="com.example.mybatisdemo.entity.User">
insert into user(name, email, password) values (#{name}, #{email}, #{password})
</insert>
</mapper>
接下来创建一个 Mapper 接口 src/main/java/com/example/mybatisdemo/mapper/UserMapper.java
:
@Mapper
public interface UserMapper {
@Select("select * from user")
List<User> findAll();
@Insert("insert into user(name, email, password) values (#{name}, #{email}, #{password})")
int insert(User user);
}
3.4 配置 MyBatis
创建一个 MybatisConfig.java
类,配置 MyBatis。
@Configuration
@MapperScan("com.example.mybatisdemo.mapper")
public class MybatisConfig {
@Autowired
private DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sessionFactory.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
return sessionFactory.getObject();
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource);
}
}
在 @MapperScan
中,指定扫描 Mapper 接口包的路径。
3.5 创建启动类
编写一个启动类 src/main/java/com/example/mybatisdemo/MybatisDemoApplication.java
。
@SpringBootApplication
public class MybatisDemoApplication implements CommandLineRunner {
@Autowired
private UserMapper userMapper;
public static void main(String[] args) {
SpringApplication.run(MybatisDemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println("==== findAll ====");
List<User> users = userMapper.findAll();
users.forEach(System.out::println);
System.out.println("==== insert ====");
User user = new User();
user.setName("Alice");
user.setEmail("alice@example.com");
user.setPassword("123456");
int rows = userMapper.insert(user);
System.out.println("rows: " + rows);
}
}
在 run
中,我们使用 UserMapper
接口中定义的方法,查询所有用户信息,然后插入一条记录。
4. 运行程序
运行 MybatisDemoApplication
类,然后在控制台看到以下输出:
==== findAll ====
User(id=1, name=Tom, email=tom@example.com, password=123456)
User(id=2, name=Jerry, email=jerry@example.com, password=654321)
==== insert ====
rows: 1
5. 示例
5.1 查询所有用户信息
在 UserMapper.xml
中添加以下 SQL 语句:
<select id="findAll" resultType="com.example.mybatisdemo.entity.User">
select * from user
</select>
在 UserMapper
接口中添加方法:
List<User> findAll();
在 MybatisDemoApplication
类的 run
方法中添加以下代码:
System.out.println("==== findAll ====");
List<User> users = userMapper.findAll();
users.forEach(System.out::println);
5.2 插入一条记录
在 UserMapper.xml
中添加以下 SQL 语句:
<insert id="insert" parameterType="com.example.mybatisdemo.entity.User">
insert into user(name, email, password) values (#{name}, #{email}, #{password})
</insert>
在 UserMapper
接口中添加方法:
int insert(User user);
在 MybatisDemoApplication
类的 run
方法中添加以下代码:
System.out.println("==== insert ====");
User user = new User();
user.setName("Alice");
user.setEmail("alice@example.com");
user.setPassword("123456");
int rows = userMapper.insert(user);
System.out.println("rows: " + rows);
6. 总结
到此,我们已经完成了 Spring Boot 中使用 MyBatis 进行数据库交互的简单快速入门例子。希望本文能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot MyBatis简单快速入门例子 - Python技术站