三、数据库操作(转)

来源:互联网 发布:韩国网络电视直播 编辑:程序博客网 时间:2024/06/11 10:16

在转载的第一篇博客中已经写了利用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”的数据:
这里写图片描述
最后看看模糊查询
这里写图片描述

原创粉丝点击