继续上一篇搭建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语句; #{} :占位符。
网友评论