1. UserMapper
public interface UserMapper {
// 查询用户列表
List<User> getUserList();
// 通过id查询用户
User getUserById(Long id);
// 通过用户名称模糊查询
List<User> getUserByUserCode(String userCode);
// 修改用户信息
boolean updateUserInfo(User user);
// 增加用户信息
boolean addUser(User user);
// 通过map增加用户
boolean addUser2(Map<String, Object> map);
// 删除用户
boolean deleteUser(User user);
}
2. UserMapper.xml
<?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.yang.dao.UserMapper">
<select id="getUserList" resultType="com.yang.pojo.User">
select * from smbms_user where id = 1;
</select>
<select id="getUserById" parameterType="Long" resultType="com.yang.pojo.User">
select * from smbms_user where id = #{id};
</select>
<select id="getUserByUserCode" parameterType="String" resultType="com.yang.pojo.User">
select * from smbms_user where userCode like #{userCode};
</select>
<update id="updateUserInfo" parameterType="com.yang.pojo.User" >
update smbms_user
set userName = #{userName}, userPassword = #{userPassword}
where id = #{id};
</update>
<insert id="addUser" parameterType="com.yang.pojo.User">
insert into smbms_user (id, userCode, userName, userPassword) values (#{id}, #{userCode}, #{userName}, #{userPassword})
</insert>
<insert id="addUser2" parameterType="map">
insert into smbms_user (id, userCode, userPassword) values (#{userId}, #{userCode}, #{password})
</insert>
<delete id="deleteUser" parameterType="com.yang.pojo.User">
delete from smbms_user where id = #{id}
</delete>
</mapper>
3. Test
public class UserMapperTest {
@Test
public void getUserList(){
SqlSession session = MyBatisUtils.getSQLSession();
UserMapper mapper = session.getMapper(UserMapper.class);
// List<User> userList = mapper.getUserList();
// for (User user : userList) {
// System.out.println(user);
// }
User user = mapper.getUserById(6L);
System.out.println(user);
session.close();
}
@Test
public void getUserByUserCode(){
SqlSession sqlSession = MyBatisUtils.getSQLSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserByUserCode("%y%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession session = MyBatisUtils.getSQLSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = new User();
user.setId(6L);
user.setUserName("yang");
user.setUserPassword("123456");
boolean isSuccess = mapper.updateUserInfo(user);
System.out.println(isSuccess);
session.close();
}
@Test
public void addUser(){
SqlSession sqlSession = MyBatisUtils.getSQLSession();
User user = new User();
user.setId(3L);
user.setUserCode("yang2");
user.setUserName("yang2");
user.setUserPassword("123456");
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
boolean b = mapper.addUser(user);
System.out.println(b);
sqlSession.commit();
sqlSession.close();
}
@Test
public void addUser2(){
SqlSession sqlSession = MyBatisUtils.getSQLSession();
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId", 5L);
map.put("userCode", "yang2");
map.put("password", "1234567");
System.out.println(map);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
boolean b = mapper.addUser2(map);
System.out.println(b);
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSQLSession();
User user = new User();
user.setId(3L);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
boolean b = mapper.deleteUser(user);
System.out.println(b);
sqlSession.commit();
sqlSession.close();
}
}
注意:增删改需要提交事务
sqlSession.commit();
4. 万能的map
当需要传递多个参数时,可以使用map实现
parameterType="map"
1569





