MyBatis的增删改查
CRUD
1:namespace 命名空间
Namespace 中的包名要和Dao/Mapper接口的包名一致
2:Select
选择查询语句:
1: id: 就是对应的namespace中的方法名
2: resultType: Sql语句的返回值
3: paramentType: 参数的类型!
- 编写接口
// 查询全部用户;
List<User> getUserList();
- 编写对应的Mapper语句
<select id="getUserList" resultType="com.kuang.pojo.User">
select * from mybatis.user;
</select>
测试:
@Test
// 查询全部用户;
public void test(){
//获得sqlSession 对象
SqlSession sqlSession = MyBatisUtils.getSqlSession();
//方式一 执行sql
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List<User> userList = userDao.getUserList();
//方法二;
//List<User> objects = sqlSession.selectList("com.kuang.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
//关闭sqlSession
sqlSession.close();
}
1:分别编写一个插入,修改,删除的接口;
// insert into插入一个用户
int addUser(User user);
//修改用户;
int upDateUser(User user);
//删除用户;
int deleteUser(int id);
分别对应的插入,修改,删除的Mapper.xml配置文件;
<!--insert into插入一个用户-->
<insert id="addUser" parameterType="com.kuang.pojo.User" >
insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});
</insert>
<!--修改用户;-->
<update id="upDateUser" parameterType="com.kuang.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>
测试结果:
@Test
// insert into插入一个用户
public void addUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.addUser(new User(4, "狗蛋", "123456"));
if (result > 0){
System.out.println("插入成功!");
}
//提交事务;
sqlSession.commit();
sqlSession.close();
}
//修改用户
@Test
public void upDateUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int result = mapper.upDateUser(new User(4, "狗娃", "654321"));
if(result > 0){
System.out.println("数据修改成功!");
}
//提交事务;
sqlSession.commit();
System.out.println("数据修改成功");
sqlSession.close();
}
//删除用户
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
//提交事务;
sqlSession.commit();
System.out.println("删除成功!");
sqlSession.close();
}
注意: 增删改都需要提交事务的操作。
2:万能Mapper
创建一个接口:
//万能的Map;
int addUser02(Map<String,Object> map);
编写一个实现接口的Mapper.xml文件
<!--map插入一个数据-->
<insert id="addUser02" parameterType="map">
-- map的属性可以和数据库 的属性不是一一对应的
insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{password});
</insert>
测试:
// Map插入用户
@Test
public void addUser02(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId",4);
map.put("userName","狗蛋");
map.put("password","124231");
mapper.addUser02(map);
//提交事务;
sqlSession.commit();
System.out.println("添加成功!");
sqlSession.close();
}
Map传递参数,直接在SQL中取出Key即可;【paramentType=”map”】
对象传递参数,直接在SQL中取对象的属性即可【paramenType=”Object”】
只有一个基本类型参数的类型下,可以直接在SQL中取到;
多个参数用Map,或者注解
3:模糊查询
接口
//模糊查询
List<User> getUserlike(String value);
mapper.xml
<!--select * from mybatis.user where name like "%"#{value } -- "%" % %防止sql注入-->
<select id="getUserlike" resultType="com.kuang.pojo.User">
select * from mybatis.user where name like #{value};
</select>
测试:
@Test
public void getUserlike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserlike("%李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71893.html