mybatis <= 怎么写
时间: 2024-08-15 21:07:13 浏览: 47
MyBatis是一个基于Java的持久层框架,它支持配置和原始映射,简化了SQL语句的操作,并且能够实现复杂的数据库查询(如自定义SQL、存储过程等)。它结合了SQL映射文件和Java类型的简单封装,使得它可以非常容易地进行数据库访问。以下是关于 MyBatis 的基本使用介绍:
### 安装与引入依赖
为了开始使用 MyBatis,你需要在项目中添加相应的依赖。如果你使用的是 Maven,可以在 `pom.xml` 文件中加入下面的依赖信息:
```xml
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
```
### 配置 mybatis-config.xml
创建一个 `mybatis-config.xml` 文件用于配置 MyBatis 的核心设置,例如设置日志级别、初始化环境、加载全局配置等。
```xml
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 设置环境属性,此处一般为空 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC"/>
<property name="username" value="your_username"/>
<property name="password" value="your_password"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="com.example.mapper.YourMapper.java"/>
</mappers>
</configuration>
```
### 定义实体类(Entity)
创建代表表中每一列的 Java 类,并添加 getter 和 setter 方法。
```java
public class User {
private int id;
private String name;
private String email;
// 构造函数、getter 和 setter 省略
}
```
### 编写 SQL 映射文件(MyBatis Mapper)
创建 `.mapper` 目录,并在其中创建对应的 SQL 映射文件(比如 `UserMapper.xml`),用于存放 DML(数据操纵语言)、DDL(数据定义语言)和自定义 SQL 查询。
```xml
<mapper namespace="com.example.mapper.UserMapper">
<!-- 插入用户 -->
<insert id="insertUser">
INSERT INTO user (name, email)
VALUES (#{name}, #{email})
</insert>
<!-- 查询所有用户 -->
<select id="selectAllUsers" resultType="User">
SELECT * FROM user
</select>
<!-- 其他自定义查询或更新操作 -->
</mapper>
```
### 使用 MyBatis 进行 CRUD 操作
在业务层或 DAO 层,你可以注入 `SqlSessionFactory` 或 `SqlSession` 接口的实现类,并调用其方法来进行数据交互。
```java
@Service
public class UserService {
private final SqlSession sqlSession;
@Autowired
public UserService(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public int addUser(User user) {
return sqlSession.getMapper(UserMapper.class).insertUser(user);
}
public List<User> getAllUsers() {
return sqlSession.selectList("com.example.mapper.UserMapper.selectAllUsers");
}
// 其他增删改查方法
}
```
### 总结
MyBatis 提供了一种声明式的方式来处理数据库交互,同时保持了代码的简洁性和可维护性。以上步骤涵盖了从基本配置到实际操作数据库的全过程。通过这种方式,你可以高效地完成数据库相关的任务,同时减少大量的 JDBC 手动编码工作。
阅读全文