Mybatis实现增删查改以及Mapper.xml 标签的解析
Posted 我永远信仰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis实现增删查改以及Mapper.xml 标签的解析相关的知识,希望对你有一定的参考价值。
首先需要搭建一个坏境,点击跳转
介绍mybatis中的Mapper.xml 标签的解析
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:绑定一个对应的Dao接口-->
<mapper namespace="com.yong.dao.UserMapper">
<!--id:定位到该类中一个要实现的方法
resultType:要用全类名
-->
<select id="getUserList" resultType="User">
select * from mybatis.user
</select>
<select id="getUserById" parameterType="int" resultType="User">
select * from mybatis.user where id = #{id}
</select>
<!--对象中的属性可以直接取出来-->
<insert id="addUser" parameterType="User" >
insert into mybatis.user(id,name,pwd)value(#{id},#{name},#{pwd});
</insert>
<update id="updateUser" parameterType="com.yong.pojo.User" >
update mybatis.user set name =#{name},pwd=#{pwd} where id=#{id};
</update>
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
</mapper>
1、namespace
值要和Dao/mapper 的接口一致
2、select
id:对应namespace中的方法名
resultType:sql语句执行的返回值!
parameterType:参数类型!
1.编写接口
//根据Id查询用户
public User getUserById(int id);
2.编写对应mapper中的sql语句
<select id="getUserById" parameterType="int" resultType="com.yong.pojo.User">
select * from mybatis.user where id = #{id}
</select>
3.测试
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
3、Insert
<!--对象中的属性可以直接取出来-->
<insert id="addUser" parameterType="com.yong.pojo.User" >
insert into mybatis.user(id,name,pwd)value(#{id},#{name},#{pwd});
</insert>
4、update
<update id="updateUser" parameterType="com.yong.pojo.User" >
update mybatis.user set name =#{name},pwd=#{pwd} where id=#{id};
</update>
5、delete
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
注意点:增删改需要提交事务。
sqlSession.commit();
需要关闭资源
sqlSession.close();
6、万能的map
假设,我们的实体类,或者数据库中表的字段,或者参数过多,我们应当使用Map
//增加一个用户
int addUser2(Map<String,Object> map);
- 参数类型设置为map
- value的值可以自己起名字,比如#{password},不需要与前面的数据库里的对应
<insert id="addUser2" parameterType="map">
insert into mybatis.user (id,name,pwd) values (#{userId},#{userName},#{userPwd});
</insert>
- 新建一个map
- 往map里添加属性,key的值要和前面xml里设置的一样。
@Test
public void addUser2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map=new HashMap<String, Object>();
map.put("userId", 5);
map.put("userName", "小李子");
map.put("userPwd", "999999");
mapper.addUser2(map);
sqlSession.commit();
sqlSession.close();
}
7、模糊查询
1、java代码执行的时候,传递通配符% %
List<User> list = mapper.getUserLike("%小");
2、在sql拼接中使用通配符
select * from mybatis.user where name like "%"#{value}"%"
以上是关于Mybatis实现增删查改以及Mapper.xml 标签的解析的主要内容,如果未能解决你的问题,请参考以下文章