三、数据库操作(转)

8 篇文章 0 订阅

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值