下面是MyBatis后端对数据库进行增删改查等操作实例的详细攻略:
1. 准备工作
在进行MyBatis操作之前,我们需要准备好以下内容:
- 数据库:我们需要在本地或远程服务器上搭建好相应的数据库,并在其中创建好表格。
- MyBatis环境:我们需要使用Maven或Gradle等工具引入MyBatis相关依赖,并在项目中配置好MyBatis的相关信息,如数据库连接信息、Mapper映射文件等。
2. 实现增删改查
下面将分别介绍在MyBatis中如何实现增、删、改、查操作。
2.1 实现插入操作
我们可以通过MyBatis提供的SqlSession
对象的insert
方法来实现数据的插入。插入操作的示例如下:
User user = new User();
user.setName("Tom");
user.setAge(20);
SqlSession sqlSession = MybatisUtil.getSqlSession();
int result = sqlSession.insert("com.example.mapper.insertUser", user);
sqlSession.commit();
sqlSession.close();
注解说明:
- 第1行:创建一个
User
对象,并设置其属性。 - 第2行:调用
MybatisUtil
类中的getSqlSession
方法获得一个SqlSession
对象。 - 第3行:调用
SqlSession
对象的insert
方法进行插入操作,第1个参数为Mapper文件中配置的SQL语句的ID,第2个参数为要插入的对象。 - 第4行:调用
SqlSession
对象的commit
方法提交事务(如果有的话)。 - 第5行:调用
SqlSession
对象的close
方法关闭SqlSession
对象。
在Mapper文件中,我们需要编写相应的插入SQL语句。示例SQL如下:
<insert id="insertUser" parameterType="com.example.model.User">
insert into user(name, age)
values(#{name}, #{age})
</insert>
注解说明:
- 第1行:
id
属性为Mapper文件中操作的ID,必须与Java代码中的insert
方法的第1个参数保持一致。 - 第2行:
parameterType
属性为第1个参数的类型,是从Java代码中获得的。 - 第3-5行:SQL插入语句,其中
#{}
为占位符,可以自动匹配Java代码中对象的属性值。
2.2 实现更新操作
我们可以通过MyBatis提供的SqlSession
对象的update
方法来实现数据的更新。更新操作的示例如下:
User user = new User();
user.setId(1);
user.setName("Tom");
SqlSession sqlSession = MybatisUtil.getSqlSession();
int result = sqlSession.update("com.example.mapper.updateUser", user);
sqlSession.commit();
sqlSession.close();
注解说明:
- 第1行:创建一个
User
对象,并设置其属性(注意:这里必须设置要更新的记录的主键ID)。 - 第2行:调用
MybatisUtil
类中的getSqlSession
方法获得一个SqlSession
对象。 - 第3行:调用
SqlSession
对象的update
方法进行更新操作,第1个参数为Mapper文件中配置的SQL语句的ID,第2个参数为要更新的对象。 - 第4行:调用
SqlSession
对象的commit
方法提交事务(如果有的话)。 - 第5行:调用
SqlSession
对象的close
方法关闭SqlSession
对象。
在Mapper文件中,我们需要编写相应的更新SQL语句。示例SQL如下:
<update id="updateUser" parameterType="com.example.model.User">
update user
set name=#{name}
where id=#{id}
</update>
注解说明:
- 第1行:
id
属性为Mapper文件中操作的ID,必须与Java代码中的update
方法的第1个参数保持一致。 - 第2行:
parameterType
属性为第1个参数的类型,是从Java代码中获得的。 - 第3、4行:SQL更新语句,其中
#{}
为占位符,可以自动匹配Java代码中对象的属性值。
2.3 实现删除操作
我们可以通过MyBatis提供的SqlSession
对象的delete
方法来实现数据的删除。删除操作的示例如下:
SqlSession sqlSession = MybatisUtil.getSqlSession();
int result = sqlSession.delete("com.example.mapper.deleteUserById", 1);
sqlSession.commit();
sqlSession.close();
注解说明:
- 第2行:调用
MybatisUtil
类中的getSqlSession
方法获得一个SqlSession
对象。 - 第3行:调用
SqlSession
对象的delete
方法进行删除操作,第1个参数为Mapper文件中配置的SQL语句的ID,第2个参数为要删除的记录的主键ID。 - 第4行:调用
SqlSession
对象的commit
方法提交事务(如果有的话)。 - 第5行:调用
SqlSession
对象的close
方法关闭SqlSession
对象。
在Mapper文件中,我们需要编写相应的删除SQL语句。示例SQL如下:
<delete id="deleteUserById" parameterType="int">
delete from user where id=#{id}
</delete>
注解说明:
- 第1行:
id
属性为Mapper文件中操作的ID,必须与Java代码中的delete
方法的第1个参数保持一致。 - 第2行:
parameterType
属性为第1个参数的类型,是从Java代码中获得的。 - 第3行:SQL删除语句,其中
#{}
为占位符,可以自动匹配Java代码中对象的属性值。
2.4 实现查询操作
我们可以通过MyBatis提供的SqlSession
对象的selectOne
、selectList
等方法来实现数据的查询。查询操作的示例如下:
SqlSession sqlSession = MybatisUtil.getSqlSession();
User user = sqlSession.selectOne("com.example.mapper.selectUserById", 1);
List<User> userList = sqlSession.selectList("com.example.mapper.selectAllUsers");
sqlSession.close();
注解说明:
- 第2、3行:调用
MybatisUtil
类中的getSqlSession
方法获得一个SqlSession
对象。 - 第4行:调用
SqlSession
对象的selectOne
方法进行查询操作,返回一个单一对象,第1个参数为Mapper文件中配置的SQL语句的ID,第2个参数为查询条件。 - 第5行:调用
SqlSession
对象的selectList
方法进行查询操作,返回一个对象列表,第1个参数为Mapper文件中配置的SQL语句的ID。 - 第6行:调用
SqlSession
对象的close
方法关闭SqlSession
对象。
在Mapper文件中,我们需要编写相应的查询SQL语句。示例SQL如下:
<select id="selectUserById" parameterType="int" resultType="com.example.model.User">
select * from user where id=#{id}
</select>
<select id="selectAllUsers" resultType="com.example.model.User">
select * from user
</select>
注解说明:
- 第1、4行:
id
属性为Mapper文件中操作的ID,必须与Java代码中的selectOne
、selectList
方法的第1个参数保持一致。 - 第2行:
parameterType
属性为第1个参数的类型,是从Java代码中获得的。 - 第3行:
resultType
属性为查询结果的类型,是从Java代码中获得的。 - 第5、7行:SQL查询语句。
至此,我们已经通过MyBatis实现了对数据库的增删改查操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis后端对数据库进行增删改查等操作实例 - Python技术站