_
***配套文档:***↓↓↓
mybatis – MyBatis 3 | 简介
二、CRUD(增删改查)
实现功能需要改变的文件(接第一节结尾处)
- UserMapeer.java接口
- UserMapper.xml配置文件
- 测试类
1、mapper.xml参数
-
namespace中包名和Mapper接口的包名一致
-
id:对应namespace中方法名
-
parameterType:参数类型
-
resultType:Sql语句执行的返回值
2、select
- 编写接口
// 按id查询用户
User getUserById(int id);
- 编写对应mapper中sql语句
<select id="getUserById" parameterType="int" resultType="com.pf.pojo.User">
select * from mybatis.user where id = #{id}
</select>
- 测试
// 按id查询用户
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user.getName());
sqlSession.close();
}
3、insert
增删改需要提交事务
//提交事务
sqlSession.commit();
- 编写接口
// 添加用户
int addUser(User user);
- 编写对应mapper中sql语句
<!--对象中的属性可以直接取出-->
<insert id="addUser" parameterType="com.pf.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
- 测试
/**增删改需要提交事务*/
// 添加用户
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int res = userMapper.addUser(new User(4,"昊丹","123456"));
if (res >0){
System.out.println("插入成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
4、update
<update id="updateUser" parameterType="com.pf.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd}where id = #{id};
</update>
其他代码:略
5、delete
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id};
</delete>
其他代码:略
6、使用map封装对象
- 编写接口
// 使用map封装对象添加用户
int addUser2(Map<String,Object> map);
- 编写对应mapper中sql语句
<insert id="addUser2" parameterType="map">
insert into mybatis.user (id,pwd) values (#{userid},#{userpwd})
</insert>
- 测试
// 添加用户(map对象)
@Test
public void addUser2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
HashMap<String,Object> map = new HashMap<String, Object>();
map.put("userid",6);
map.put("userpwd","123456");
int res = userMapper.addUser2(map);
if (res >0){
System.out.println("插入成功2");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
7、模糊查询
模糊查询需要"通配符%%"
方法一:在java代码中传递通配符:userMapper.getUserByLike("%李%");
方法二:在sql拼接中使用通配符:where name like “%”#{value}"%"
- 编写接口
// 模糊查询
List<User> getUserByLike(String like);
- 编写对应mapper中sql语句
<select id="getUserByLike" resultType="com.pf.pojo.User">
select * from mybatis.user where name like "%"#{value}"%"
</select>
- 测试
// 模糊查询
@Test
public void getUserByLike(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userLike = userMapper.getUserByLike("李");
for(User user : userLike){
System.out.println(user);
}
sqlSession.close();
}
👆👆👆以上实现mybatis简单的增删改查功能