在转载的第一篇博客中已经写了利用mybatis-generator自动生成映射的包(http://blog.csdn.net/zyf2333/article/details/77623537),这里继续来看看其生成的数据库操作以及mapper.xml。然后我们自己添加一些方法,为下一篇的“注册登录”打下基础
参考并转载的出处:(http://blog.csdn.net/lxfhahaha/article/details/67776108)
首先看看它自动生成的mapper.xml,很容易,都是mybatis的基础内容(不清楚用法的小伙伴可以看看我以前的学习笔记http://blog.csdn.net/zyf2333/article/details/77676090)
那么接下来,就让我们手动添加测试代码(一定要去做,后面的“注册登录”内容会要用到这些自己写的代码)
1)准备工作
首先修改之前创立的user表。设计图如下,设计好了后自己随便添加点内容就好了,用来测试
2)添加三个功能
我们手动添加三个功能, 分别是:查询数据表中的数据总量,准确查询记录,模糊查询记录
修改UserMapper.xml
<!--数量查询-->
<select id="getCount" resultType="java.lang.Integer">
select count(*)from user
</select>
<!--准确查询-->
<select id="selectSelective" resultMap="BaseResultMap" parameterType="com.springmvc.entity.User" >
select
<include refid="Base_Column_List" />
from user
<where>
<if test="id != null" >
id = #{id,jdbcType=INTEGER}
</if>
<if test="name != null" >
AND name = #{name,jdbcType=VARCHAR}
</if>
<if test="pw != null" >
AND pw = #{pw,jdbcType=VARCHAR}
</if>
<if test="createtime != null" >
AND createtime = #{createtime,jdbcType=TIMESTAMP}
</if>
</where>
</select>
<!--模糊查询-->
<select id="selectLike" resultMap="BaseResultMap" parameterType="com.springmvc.entity.User">
select
<include refid="Base_Column_List"/>
from user
<where>
<if test="id != null and id != ''">
AND id LIKE concat('%',#{id},'%')
</if>
<if test="name != null and name != ''">
AND name LIKE concat('%',#{name},'%')
</if>
<if test="pw != null and pw != ''">
AND pw LIKE concat('%',#{pw},'%')
</if>
<if test="createtime != null and createtime != ''">
AND createtime LIKE concat('%',#{createtime},'%')
</if>
</where>
</select>
如图:
修改UserMapper.java
添加对应的三个方法,如图:
修改User.java
由于我们修改了数据表,所以要加上Pw和createtime的setter和getter,并且要重写toString,不然后面测试时候可能没法输出
package com.springmvc.entity;
import java.util.Date;
public class User {
private Integer id;
private String name;
private String pw;
private Date createtime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pw='" + pw + '\'' +
", createtime=" + createtime +
'}';
}
}
进入UserMapperTest进行测试
代码如下:
//查询数量
@Test
public void getCount() throws Exception{
System.out.println(userMapper.getCount());
}
//准确查询
@Test
public void selectSelective() throws Exception{
User user=new User();
//此处的setPw("565")即查询我数据表中,密码为565的那一列,你可以自己查询id或者名字
user.setPw("565");
ArrayList<User> list=userMapper.selectSelective(user);
for (User a:list){
System.out.println(a);
}
}
//模糊查询,查询Name中包含了2的数据
@Test
public void selectLike() throws Exception{
User user=new User();
user.setName("2");
ArrayList<User> list=userMapper.selectLike(user);
for (User a:list){
System.out.println(a);
}
}
如图:
最后自己利用JUnit测试即可,让我们看看效果:
首先是查询数量:可见,有十条数据
接下来看看准确查询,我是查询密码为“565”的数据:
最后看看模糊查询