Mybatis (二)查询、添加、删除、更改

根据用户名模糊查询多条


映射文件(User.xml\mapper代理XXXMapper.xml)
User.xml


<!-- 根据用户名模糊查询 
resultType:指定的就是多条记录所映射的java对象类型
${value}:表示拼接符号,隐患sql注入,SELECT * FROM USER WHERE uusername LIKE '%' OR 1=1 OR '%'
接受输入参数的内容,如果传入类型是简单类型,${}中只能使用value
-->
<select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE uusername LIKE '%${value}%'
</select>
</mapper>


测试类:
@Test
public void findUserByNameTest() throws IOException{
//同Mybatis(一)
List<User> list = sqlSession.selectList("test.findUserByName","小明");
System.out.println(list);
sqlSession.close();


}


============================================================================================
添加用户:
映射文件(User.xml\mapper代理XXXMapper.xml)
User.xml
<!-- 添加用户
parameterType:指定输入参数类型是pojo(包括用户信息)
#{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值
-->
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<!-- 
将插入数据的主键返回,返回到user对象中
SELECT LAST_INSERT_ID():得到刚insert进去记录的主键,只适用自增主键Mysql
keyProperty:将查询到主键值设置到parameterType指定的对象的那个属性
order:SELECT LAST_INSERT_ID()执行顺序,相对于insert语句来说他的执行顺序
resultType:指定SELECT LAST_INSERT_ID()的结果类型
-->
<selectKey keyProperty="uid" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user(uusername,ubirthday,usex,uaddress) value(#{uusername},#{ubirthday},#{usex},#{uaddress})
</insert>
</mapper>
测试类:
@Test
public void insertUserTest() throws IOException{
//同Mybatis(一)
User user = new User();
user.setUusername("王小");
user.setUbirthday(new Date());
user.setUsex("1");
user.setUaddress("河南");
sqlSession.insert("test.insertUser",user);
//提交事物
sqlSession.commit();
//获取用户信息新增主键
//自增主键返回只有Mysql,在insert之后调用
System.out.println(user.getUid());
sqlSession.close();

}


=========================================================================================
更改和删除用户:
映射文件(User.xml\mapper代理XXXMapper.xml)
User.xml
<!-- 添加用户
parameterType:指定输入参数类型是pojo(包括用户信息)
#{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值
-->
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">
<!-- 
将插入数据的主键返回,返回到user对象中
SELECT LAST_INSERT_ID():得到刚insert进去记录的主键,只适用自增主键Mysql
keyProperty:将查询到主键值设置到parameterType指定的对象的那个属性
order:SELECT LAST_INSERT_ID()执行顺序,相对于insert语句来说他的执行顺序
resultType:指定SELECT LAST_INSERT_ID()的结果类型
-->
<selectKey keyProperty="uid" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user(uusername,ubirthday,usex,uaddress) value(#{uusername},#{ubirthday},#{usex},#{uaddress})
</insert>
<!-- 删除用户 根据id-->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where uid=#{id}

</delete>
<!-- 更新用户
传入id和更新信息
注意:uid=#{uid}这个uid是复杂类型,是根据user提供的,不是简单类型!
-->
<update id="updateUser" parameterType="cn.itcast.mybatis.po.User">
update user set uusername=#{uusername},ubirthday=#{ubirthday},usex=#{usex},uaddress=#{uaddress} 
where uid=#{uid}
</update>
</mapper>
测试类:
//根据id删除
@Test
public void deleteUserTest() throws IOException{
//同Mybatis(一)
sqlSession.delete("test.deleteUser",17);
//提交事物
sqlSession.commit();
sqlSession.close();
}
//根据id,更新用户
@Test
public void updateUserTest() throws IOException{
//同Mybatis(一)
//必须设置id
User user = new User();
user.setUid(15);
user.setUusername("王小x");
user.setUbirthday(new Date());
user.setUsex("2");
user.setUaddress("河南");
sqlSession.update("test.updateUser",user);
//提交事物
sqlSession.commit();
sqlSession.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值