一小时迅速入门Mybatis之增删查改篇
Mybatis是一款优秀的ORM框架,其简单易用,功能强大,得到了广大开发者的喜爱。本文将为大家介绍使用Mybatis进行增删查改的完整攻略。
1. 环境准备
Mybatis需要依赖JDBC驱动和数据库连接池,建议使用Maven进行管理。这里我们以MySQL为例,展示如何配置环境。
首先在pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
</dependencies>
其中,mysql-connector-java是MySQL的JDBC驱动,druid是连接池库,mybatis是Mybatis的核心依赖。
接着在resources文件夹下创建mybatis-config.xml配置文件,配置Mybatis的核心参数,如数据库连接信息、映射文件等。
<?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="mysql">
<environment id="mysql">
<transactionManager type="JDBC" />
<dataSource type="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&useSSL=false" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/> <!-- 映射文件 -->
</mappers>
</configuration>
对于上述配置文件,需要根据具体情况自行修改数据库连接信息等参数。
2. 新建实体类
在项目的src/main/java目录下创建entity/User.java文件,该文件用于描述数据库中的User表对应的Java对象,示例如下:
public class User {
private Integer id;
private String name;
private Integer age;
// 省略getters/setters方法
}
代码中的字段需要与数据库中的列名一一对应。
3. 创建Mybatis映射文件
在resources/mapper目录下创建UserMapper.xml文件,用于描述User表的增删查改操作。示例如下:
<?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="getUserById" resultType="com.example.entity.User" parameterType="int">
SELECT id, name, age FROM user WHERE id = #{id}
</select>
<!-- 新增用户信息 -->
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
<!-- 修改用户信息 -->
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET name=#{name}, age=#{age} WHERE id = #{id}
</update>
<!-- 删除用户信息 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id=#{id}
</delete>
</mapper>
通过以上配置文件,定义了4个操作:查询用户信息、新增用户信息、修改用户信息、删除用户信息。其中,每个操作对应一个id和SQL语句。指定了输入参数类型和输出结果类型。
4. 编写Mybatis核心代码
在项目中创建一个测试类来运行MyBatis程序,示例代码如下:
public class UserMapperTest {
private SqlSessionFactory sqlSessionFactory;
@Before
public void setup() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void test() {
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
// 新增用户信息
User user = new User();
user.setName("张三");
user.setAge(18);
userMapper.insertUser(user);
// 查询用户信息
User user2 = userMapper.getUserById(user.getId());
System.out.println(user2.getName() + ":" + user2.getAge());
// 修改用户信息
user2.setName("李四");
user2.setAge(20);
userMapper.updateUser(user2);
// 查询用户信息
User user3 = userMapper.getUserById(user.getId());
System.out.println(user3.getName() + ":" + user3.getAge());
// 删除用户信息
userMapper.deleteUser(user.getId());
// 查询用户信息
User user4 = userMapper.getUserById(user.getId());
Assert.assertNull(user4);
} finally {
session.close();
}
}
}
通过SqlSessionFactoryBuilder创建SqlSessionFactory实例,拿到SqlSession的实例,然后就可以使用UserMapper接口中定义的方法实现对User表的增删查改。
5. 运行程序
最后运行UserMapperTest中的单元测试,测试通过则Mybatis的增删查改功能已经可以正常使用。
示例1:查询用户信息
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user.getName() + ":" + user.getAge());
} finally {
session.close();
}
示例2:新增用户信息
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = new User();
user.setName("张三");
user.setAge(18);
int result = userMapper.insertUser(user);
session.commit();
} finally {
session.close();
}
以上为Mybatis的增删查改操作的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一小时迅速入门Mybatis之增删查改篇 - Python技术站