赞
踩
在Web应用程序中,数据库是一个重要的组成部分。而Spring Boot和Mybatis是Java开发中常用的框架和工具,它们可以帮助我们快速、高效地访问和操作数据库。
确保您已经安装了Java开发环境和Maven构建工具,以及MySQL数据库。
首先,我们需要创建一个新的Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)来快速创建一个空项目,选择"Maven Project"、“Java”、“Spring Boot 版本”、"项目依赖(Web, Mybatis, MySQL)"等选项,然后点击"Generate"按钮下载生成的项目。
在使用MyBatis接入MySQL数据库时,需要引入以下依赖:
pom.xml
文件中添加以下依赖:<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
pom.xml
文件中添加以下依赖:<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
打开项目的application.properties
文件(或者是application.yml
文件),在其中添加以下MySQL数据库的配置信息。请将your-database
、your-username
和your-password
替换为实际的数据库名、用户名和密码。
spring.datasource.url=jdbc:mysql://localhost:3306/your-database?useSSL=false&serverTimezone=UTC
spring.datasource.username=your-username
spring.datasource.password=your-password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
创建一个Java类,表示数据库中的某个表。这个类通常称为实体类或模型类。属性和数据库表中的字段对应。例如,下面是定义一个名为User
的实体类的例子:
public class User {
private Long id;
private String name;
private String email;
// 省略getter和setter方法
}
创建一个UserMapper
接口,用于定义对User
表进行操作的方法。该接口使用Mybatis的注解来定义数据库操作。例如,下面是一个简单的UserMapper
接口的例子:
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> findAll();
@Insert("INSERT INTO user(name, email) VALUES(#{name}, #{email})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(User user);
@Update("UPDATE user SET name=#{name}, email=#{email} WHERE id=#{id}")
void update(User user);
@Delete("DELETE FROM user WHERE id=#{id}")
void delete(Long id);
}
创建一个UserService
接口,用于定义业务逻辑相关的方法。然后创建一个实现类UserServiceImpl
,实现UserService
接口,并在该实现类中注入UserMapper
。我们可以在实现类中编写更复杂的业务逻辑。例如,下面是一个简单的UserServiceImpl
的例子:
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> getAllUsers() { return userMapper.findAll(); } @Override public void addUser(User user) { userMapper.insert(user); } @Override public void updateUser(User user) { userMapper.update(user); } @Override public void deleteUser(Long id) { userMapper.delete(id); } }
创建一个UserController
类,用于处理HTTP请求。在其中注入UserService
,并编写对应的请求处理方法。例如,下面是一个简单的UserController
的例子:
@RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping() public List<User> getAllUsers() { return userService.getAllUsers(); } @PostMapping() public void addUser(@RequestBody User user) { userService.addUser(user); } @PutMapping("/{id}") public void updateUser(@PathVariable("id") Long id, @RequestBody User user) { user.setId(id); userService.updateUser(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable("id") Long id) { userService.deleteUser(id); } }
在命令行中,进入项目的根目录,执行mvn spring-boot:run
命令来运行应用程序。或者,直接运行IDE中的启动类。
现在,您已经成功使用Spring Boot和Mybatis来接入MySQL数据库了!您可以使用各种HTTP客户端或浏览器来测试刚刚创建的API。例如,可以使用cURL命令行工具发送HTTP请求,如curl localhost:8080/users
。
我们通常还会使用XML文件进行操作,下面补充这种实现形式。
创建一个名为UserMapper
的Java接口,用于定义对User
表进行操作的方法。然后,创建一个名为UserMapper.xml
的XML文件,用于实现这些方法。
UserMapper接口:
@Mapper
public interface UserMapper {
List<User> findAll();
void insert(User user);
void update(User user);
void delete(Long id);
}
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"> <select id="findAll" resultType="com.example.model.User"> SELECT * FROM user </select> <insert id="insert"> INSERT INTO user(name, email) VALUES(#{name}, #{email}) </insert> <update id="update"> UPDATE user SET name=#{name}, email=#{email} WHERE id=#{id} </update> <delete id="delete"> DELETE FROM user WHERE id=#{id} </delete> </mapper>
注意:要将UserMapper.xml
文件放在与UserMapper
接口相同的包路径下,并确保在application.properties
(或application.yml
)文件中配置了正确的Mybatis配置。
mybatis.mapper-locations=classpath:mapper/**/*.xml
mybatis.type-aliases-package=com.example.model
创建一个名为UserMapperImpl
的类,并实现UserMapper
接口。在该实现类中注入SqlSession
,用来执行SQL语句。
@Repository public class UserMapperImpl implements UserMapper { private final SqlSession sqlSession; public UserMapperImpl(SqlSession sqlSession) { this.sqlSession = sqlSession; } @Override public List<User> findAll() { return sqlSession.selectList("com.example.mapper.UserMapper.findAll"); } @Override public void insert(User user) { sqlSession.insert("com.example.mapper.UserMapper.insert", user); } @Override public void update(User user) { sqlSession.update("com.example.mapper.UserMapper.update", user); } @Override public void delete(Long id) { sqlSession.delete("com.example.mapper.UserMapper.delete", id); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。