请简述 MyBatis 的操作大致步骤。
时间: 2023-06-19 17:04:57 浏览: 282
MyBatis 的操作大致步骤如下:
1. 编写 SQL 映射文件:在该文件中定义 SQL 语句、参数映射和结果映射等信息。
2. 编写实体类:实体类是数据库表的映射对象,需要与 SQL 映射文件中的结果映射一一对应。
3. 编写 MyBatis 配置文件:该文件中配置了数据库连接信息、SQL 映射文件的位置和参数等信息。
4. 创建 SqlSessionFactory 对象:通过 MyBatis 提供的 SqlSessionFactoryBuilder 类来构建 SqlSessionFactory 对象,该对象是 MyBatis 的核心对象,用于创建 SqlSession 对象。
5. 创建 SqlSession 对象:SqlSession 对象是 MyBatis 中用于执行 SQL 语句的核心对象,可以通过 SqlSessionFactory 对象的 openSession() 方法创建。
6. 执行 SQL 语句:通过 SqlSession 对象的 selectOne()、selectList()、insert()、update()、delete() 等方法来执行 SQL 语句,其中参数是 SQL 映射文件中定义的 SQL 语句的 id 和参数对象。
7. 关闭 SqlSession 对象:执行完 SQL 语句后,需要调用 SqlSession 对象的 close() 方法来关闭会话,释放资源。
相关问题
请简述 MyBatis 的操作大致步骤,试编程举例加以说明。
MyBatis 的操作大致步骤如下:
1. 定义数据源和连接池:在 MyBatis 中,我们需要先定义数据源和连接池。数据源用于连接数据库,连接池用于管理连接。
2. 定义 SQL 映射文件:SQL 映射文件定义了 SQL 语句和 Java 对象之间的映射关系。这里需要注意的是,MyBatis 支持动态 SQL 语句。
3. 配置 SQL 映射文件:在 MyBatis 的配置文件中,我们需要配置 SQL 映射文件的路径以及其他一些属性。
4. 创建 SqlSessionFactory:SqlSessionFactory 是 MyBatis 的核心,它是一个线程安全的对象,用于创建 SqlSession。
5. 创建 SqlSession:SqlSession 是 MyBatis 的一个接口,它提供了许多操作数据库的方法,包括插入、更新、查询和删除等。
6. 执行 SQL 语句:在 SqlSession 中,我们可以执行 SQL 语句,并将结果映射为 Java 对象。
下面是一个示例程序,演示了如何使用 MyBatis 进行数据库操作:
1. 定义 User 实体类:
```java
public class User {
private int id;
private String name;
private int age;
// 省略 getter 和 setter 方法
}
```
2. 定义 SQL 映射文件 user.xml:
```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.dao.UserDao">
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="addUser" parameterType="com.example.entity.User">
INSERT INTO user(name, age) VALUES (#{name}, #{age})
</insert>
</mapper>
```
3. 定义 UserDao 接口:
```java
public interface UserDao {
User getUserById(int id);
void addUser(User user);
}
```
4. 在 MyBatis 的配置文件中配置数据源和 SQL 映射文件的位置:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/dao/user.xml"/>
</mappers>
</configuration>
```
5. 创建 SqlSessionFactory:
```java
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
```
6. 创建 SqlSession:
```java
SqlSession sqlSession = sqlSessionFactory.openSession();
```
7. 执行 SQL 语句:
```java
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.getUserById(1);
System.out.println(user.getName());
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
userDao.addUser(newUser);
sqlSession.commit();
```
在上面的示例中,我们首先通过 SqlSessionFactory 创建了 SqlSession,然后通过 SqlSession 的 getMapper 方法获取了 UserDao 接口的实例,并调用了 getUserById 和 addUser 方法。最后,我们使用 sqlSession.commit() 提交了事务。
简述MyBatis利用注解开发步骤
MyBatis通过注解可以简化持久层代码的编写,其利用注解开发步骤主要包括以下几步:
1. **引入依赖**:首先,在项目中添加MyBatis及其支持注解的依赖,如mybatis-annotation。
2. **创建Mapper接口**:在Java接口中定义SQL操作,每个方法对应一条数据库查询或更新操作。例如:
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUser(int id);
}
```
这里`@Mapper`注解表示这是个Mapper接口,`@Select`用于标记查询方法。
3. **映射文件**:在resources目录下创建mapper文件夹,并在其中生成XML文件(MyBatis的传统方式),或者在对应的mappers包下创建XML文件,配置SQL与接口方法的对应关系。
4. **配置MyBatis**:在Spring Boot项目中,通常在application.properties或yml文件中配置MyBatis的相关属性,比如数据源、mapper扫描路径等。
5. **注入Mapper**:在需要使用的业务模块中,通过@Autowired或者SqlSession工厂的方式注入对应的Mapper接口实例。
6. **调用Mapper方法**:在代码中可以直接调用接口方法执行SQL操作,无需手动拼接SQL。
阅读全文