美文网首页
搭建MyBatis工作环境(二)

搭建MyBatis工作环境(二)

作者: 喵小姐_王小木 | 来源:发表于2019-01-10 15:55 被阅读0次

继续上一篇搭建MyBatis工作环境(一),开始学习通过Mybatis进行具体的数据操作。

一、模糊查询

1.1、在UserMapper.xml中配置SQL映射

   <select id="findUserByUsername" parameterType="java.lang.String" resultType="cn.com.mybatis.po.User">
      select * from user where username like '%${value}'
    </select>

SQL语句中的${}符号,表示拼接SQL串,将接收到的参数内容不加任何修饰地拼接在SQL中,在该符合内只能使用value代表其中的参数。

1.2、编写查询测试方法

编写测试方法TestFuzzySearch(),来查询所有名称中含有“丽”字的用户信息。

 @Test
    public void TestFuzzySearch() throws IOException {
        SqlSession sqlSession = dataConn.getSqlSession();
       //针对查询结果可能会有多个,这个调用的方法是sqlSession的selectList方法,该方法返回一个数据集合
        List<User> userList = sqlSession.selectList("test.findUserByUsername", "丽");
        for (User user : userList) {
            System.out.println("姓名:" + user.getUsername());
            System.out.println("性别:" + user.getGender());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            System.out.println("生日:" + sdf.format(user.getBirthday()));
            System.out.println("所在地:" + user.getProvince() + user.getCity());
        }
        sqlSession.close();
    }

1.3、测试样例输出结果

image.png

二、插入数据

2.1、在UserMapper.xml中配置SQL映射

  <!--在表中新增数据信息-->
    <insert id="insertUser" parameterType="cn.com.mybatis.po.User">
        INSERT INTO user(username, password, gender, birthday, email, province, city)
        VALUE (#{username}, #{password}, #{gender}, #{birthday,jdbcType=DATE}, #{email}, #{province}, #{city})
    </insert>

由于是新增语句,不需要拿到返回信息,所以这里没有添加返回参数resultType;因为添加的是用户的整体信息,输入参数parameterType为一个JavaBean类,即User实体类。

2.2、编写插入测试方法

  @Test
    public void TestInsert() throws Exception{
        SqlSession sqlSession = dataConn.getSqlSession();
        User user = new User();
        user.setUsername("孙佳佳");
        user.setGender("男");
        user.setPassword("5555");
        user.setEmail("5555@126.com");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        user.setBirthday(sdf.parse("1991-02-16"));
        user.setProvince("湖北省");
        user.setCity("武汉市");
        sqlSession.insert("test.insertUser",user);
        // 提交更新操作
        sqlSession.commit();
        sqlSession.close();
    }

2.3、测试样例输出结果

image.png

三、修改数据

3.1、在UserMapper.xml中配置SQL映射

   <!--修改用户-->
    <update id="updateUserName" parameterType="cn.com.mybatis.po.User">
        UPDATE user SET username=#{username} where id=#{id}
    </update>

3.2、编写修改测试方法

   @Test
    public void TestUpdate() throws Exception{
        SqlSession sqlSession = dataConn.getSqlSession();
        User user = new User();
        user.setId(4);
        user.setUsername("孙丽");
        sqlSession.update("test.updateUserName", user);
        sqlSession.commit();
        sqlSession.close();
    }

3.3、测试样例输出结果

image.png

四、删除数据

4.1、在UserMapper.xml中配置SQL映射

   <!--删除用户-->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        DELETE FROM user WHERE id=#{id}
    </delete>

4.2、编写删除测试方法

   @Test
    public void TestDelete() throws Exception{
        SqlSession sqlSession = dataConn.getSqlSession();
        sqlSession.delete("test.deleteUser",6);
        sqlSession.commit();
        sqlSession.close();
    }

4.3、测试样例输出结果

image.png

五、标签简介

5.1、parameterType

指定输入参数的类型,可以是基本类型(int、float)、包装数据类型(Integer、Double)、用户自己编写的JavaBean封装类。

5.2、resultType

指定数据库返回的信息对应java的数据类型,可以是基本类型(int、float)、包装数据类型(Integer、Double)、用户自己编写的JavaBean封装类。

5.3、selectOne & selectList

在使用查询语句时,如果查询的数据是唯一的,可以使用selectOne方法进行查询,如果查询数据可能多于一条,则可以使用selectList方法进行查询。

5.4、#{} & #{}

${}:拼接SQL语句; #{} :占位符。

相关文章

网友评论

      本文标题:搭建MyBatis工作环境(二)

      本文链接:https://www.haomeiwen.com/subject/hngorqtx.html