1.查询
查询单个数据就不说了,说一下查询出列表,也就是返回list, 在我们这个例子中也就是 List<User>
, 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的:
<mapper namespace="com.mybatis.inter.IUserOperation">
< !-- 为了返回list 类型而定义的returnMap -->
<resultMap type="User" id="resultListUser">
<id column="id" property="id"/>
<result column="userName" property="userName"/>
<result column="userAge" property="userAge"/>
<result column="userAddress" property="userAddress"/>
</resultMap>
<select id="selectUserByID" parameterType="int" resultType="User">
select * from `user` where id = #{id}
</select>
<select id="queryAllUsers" resultMap="resultListUser">
select * from user
</select>
</mapper>
在 IUserOperation 接口中增加方法:public List queryAllUsers( );
然后在测试程序里添加如下的方法便可测试:
@Test
public void queryAllUsers() {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
List<User> list = userOperation.queryAllUsers();
System.out.println(list.size());
}
2.增加用户:
在 IUserOperation 接口中增加方法:public void addUser(User user);
在User.xml里添加:
<insert id="addUser" parameterType="User"
useGeneratedKeys="true" keyProperty="id">
insert into user(userName,userAge,userAddress)
values(#{userName},#{userAge},#{userAddress})
</insert>
然后就可以写测试文件进行测试了。注意必须提交事务,否则数据库不会更新。
@Test
public void addUser() {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = new User();
user.setUserName("bb");
user.setUserAge("54");
user.setUserAddress("dsfsfs");
userOperation.addUser(user);
session.commit();
}
3.更新数据
在 IUserOperation 中增加方法:public void updateUser(User user);
在User.xml里面添加:
<update id="updateUser" parameterType="User" >
update user set userName=
#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}
</update>
写测试方法:一定要写commit
@Test
public void updateUser() {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = new User();
user.setId(3);
user.setUserName("sfddsfsdfdsfdsf");
user.setUserAge("54");
user.setUserAddress("dsfsfs");
userOperation.updateUser(user);
session.commit();
}
4.删除数据。
IUserOperation 增加方法:public void deleteUser(int id);
在User.xml里面添加:
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
编写测试程序: 一定要写commit:
@Test
public void deleteUser() {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
userOperation.deleteUser(4);
session.commit();
}