MyBatis是一种持久层框架,它可以简化 Java 开发人员与
数据库之间的交互。
MyBatis提供了一种将 SQL 语句与 Java 代码分离的方法,使得代码更加易于维护和升级。下面,我将
详细介绍
MyBatis如何
实现数据库的
增删改查操作。
首先,需要在项目中引入
MyBatis的依赖。可以在 Maven 中添加以下依赖:
```xml
<dependency>
<groupId>org.
mybatis</groupId>
<artifactId>
mybatis</artifactId>
<version>3.5.6</version>
</dependency>
```
接下来,需要配置
MyBatis的配置文件,这个配置文件包括了
数据源、事务管理器、mapper 映射文件等信息。
MyBatis的配置文件通常命名为 `
mybatis-config.xml`,示例配置如下:
```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="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml" />
</mappers>
</configuration>
```
上述配置中,定义了
数据源的信息,包括
数据库驱动、URL、用户名和密码。同时,还定义了一个 `UserMapper.xml` 文件,该文件用于映射 SQL 语句。
然后,就可以创建一个 mapper 接口,使用注解或 XML 文件映射 SQL 语句,示例代码如下:
```java
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(int id);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int addUser(User user);
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
int updateUser(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
int deleteUser(int id);
}
```
上述代码定义了一个 `UserMapper` 接口,其中使用了 `@Select`、`@Insert`、`@Update` 和 `@Delete` 四个注解,分别对应查询、插入、更新和删除操作。注解中的 SQL 语句可以直接写在注解中,也可以使用 XML 文件来映射 SQL 语句。
最后,在代码中使用 `SqlSessionFactory` 和 `SqlSession` 对象来执行 SQL 语句,示例代码如下:
```java
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("
mybatis-config.xml"));
SqlSession session = sessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setName("张三");
user.setAge(25);
userMapper.addUser(user);
session.commit();
User user2 = userMapper.getUserById(user.getId());
System.out.println(user2);
user.setName("李四");
user.setAge(30);
userMapper.updateUser(user);
session.commit();
userMapper.deleteUser(user.getId());
session.commit();
session.close();
```
上述代码中,首先创建了一个 `SqlSessionFactory` 对象,然后调用 `openSession()` 方法创建一个 `SqlSession` 对象。接着,通过 `session.getMapper(UserMapper.class)` 方法获取到一个 `UserMapper` 对象,然后就可以使用 `UserMapper` 接口中定义的方法执行 SQL 语句。
最后,需要调用 `session.commit()` 方法提交事务,并通过 `session.close()` 方法关闭 `SqlSession` 对象。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/33616.html