默认环境已经配置好
https://blog.csdn.net/qq_45864838/article/details/120934495?spm=1001.2014.3001.5501
注意:
resultType:返回值类型,如果为实体类,则需要写具体位置,如com.he.pojo.User
parameterType为传入参数类型,通过#{ }可以获取。
#{ }可以直接填类的字段#{username},#{pwd}等
也可以用map传参,#{ }填的是map的key值
一.增
1.UserMapper接口里面添加方法
int insertUser(User user);
2.在Mapper.xml中配置映射。
<insert id="insertUser" parameterType="com.he.pojo.User">
insert into mybatis.user(id, username, pwd) VALUES(#{id},#{username},#{pwd})
</insert>
3.Test类中测试
注意要手动提交事务,否则不会持久化进数据库!
//增
@Test
public void insertUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.insertUser(new User(4, "火狐", "123123"));
if(res>0) System.out.println("插入成功");
sqlSession.commit(); //增删改都是事务,需要手动提交!!!!
sqlSession.close();
}
二.删
与增类似,这里只附上配置映射,以及测试代码。
配置:
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
测试:
//删
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
三.改
配置:
<update id="updateUser" parameterType="com.he.pojo.User">
update mybatis.user set username=#{username},pwd=#{pwd} where id=#{id}
</update>
测试:
//改
@Test
public void updateUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"呵呵","157762"));
sqlSession.commit();
sqlSession.close();
}
四.查
配置:
<select id="getUserById" resultType="com.he.pojo.User" parameterType="int">
select * from mybatis.user where id=#{id}
</select>
测试:
//查
@Test
public void getUserById(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
模糊查询:
配置:
<select id="getUserByLastName" parameterType="String" resultType="com.he.pojo.User">
select * from mybatis.user where username like #{value}
</select>
测试:
//模糊查询
@Test
public void getUserByLastName(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserByLastName("李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.commit();
sqlSession.close();
}
五.map的使用。
使用map传参,parameterType里填写map,#{ }里为key值。
配置:
//map的使用
@Test
public void updatePwd(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<>();
map.put("id",1);
map.put("pwd",987561);
mapper.updatePwd(map);
sqlSession.commit();
sqlSession.close();
}
<update id="updatePwd" parameterType="map">
update mybatis.user set pwd=#{pwd} where id=#{id}
</update>
测试:
//map的使用
@Test
public void updatePwd(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<>();
map.put("id",1);
map.put("pwd",987561);
mapper.updatePwd(map);
sqlSession.commit();
sqlSession.close();
}
总结:
环境配置好后,只需要先在接口中添加方法,再在对应的配置文件中配置相应的语句,再在测试类中测试,
测试类模板:
@Test
public void 函数名(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(接口.class);
mapper.接口方法名();
sqlSession.commit();//手动提交
sqlSession.close();//关闭连接
}