接着上篇Mybatis使用xml方式配置,这里扩充mapper的增删改查功能:
扩充UserDao
接口:
package com.weizu.dao;
import com.weizu.pojo.UserInfo;
import java.util.List;
public interface UserDao {
List<UserInfo> getAllUsers();
UserInfo findUserInfoByID(int userid);
int addUser(UserInfo userInfo);
int deleteUserByID(int userid);
int updateUserInfo(UserInfo userInfo);
List<UserInfo> fuzzyQueryByUserName(String name);
}
然后,在对应的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.weizu.dao.UserDao">
<select id="getAllUsers" resultType="com.weizu.pojo.UserInfo">
select * from userinfo
</select>
<select id="findUserInfoByID" parameterType="int" resultType="com.weizu.pojo.UserInfo">
select * from userinfo where userid = #{userid}
</select>
<insert id="addUser" parameterType="com.weizu.pojo.UserInfo">
insert into userinfo (username, userid, passwd) values (#{username},#{userid},#{passwd})
</insert>
<delete id="deleteUserByID" parameterType="int">
delete from userinfo where userid = #{userid}
</delete>
<update id="updateUserInfo" parameterType="com.weizu.pojo.UserInfo">
update userinfo set username=#{username}, passwd=#{passwd} where userid=#{userid}
</update>
<select id="fuzzyQueryByUserName" parameterType="string" resultType="com.weizu.pojo.UserInfo">
select * from userinfo where username like "%"#{name}"%"
</select>
</mapper>
测试:
import com.weizu.dao.UserDao;
import com.weizu.pojo.UserInfo;
import com.weizu.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class Test {
@org.junit.Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<UserInfo> allUsers = mapper.getAllUsers();
for(UserInfo userInfo: allUsers){
System.out.println(userInfo);
}
}
@org.junit.Test
public void find(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
// 查找,传入基本类型
UserInfo userInfoByID = mapper.findUserInfoByID(123);
System.out.println(userInfoByID); // success
}
@org.junit.Test
public void add(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
// 新增数据
int res = mapper.addUser(new UserInfo("张三", 234, "123"));
sqlSession.commit(); // 增删改需要commit事务
}
@org.junit.Test
public void delete(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
// 删除数据
int res = mapper.deleteUserByID(123);
sqlSession.commit(); // 增删改需要commit事务
}
@org.junit.Test
public void update(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
// 删除数据
int res = mapper.updateUserInfo(new UserInfo("张三", 234, "aaaa"));
sqlSession.commit(); // 增删改需要commit事务
}
@org.junit.Test
public void fuzzyQuery(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
// 模糊查询
List<UserInfo> allUsers = mapper.fuzzyQueryByUserName("张");
for(UserInfo userInfo: allUsers){
System.out.println(userInfo);
}
}
}
说明,其余配置查看上篇即可,这里不再赘述。