MyBatis(三) 简单的 CRUD
来源:互联网 发布:程序员的数学 线性代数 编辑:程序博客网 时间:2024/05/22 02:11
写好了前面的入门程序,现在我们来开始写简单的 增删改查:
添加用户前面已经写了,下面为了测试我们就多插入几条数据。
进入正题
1、’删’ ‘改’ ‘查’ 用户,首先在原来的 User.xml 表中添加下面的 代码:
注意事项:
- 这里需要说明的是:parameterType 代表传入参数类型,:resultType代表返回数据类型
- 如果修改需要传入多个参数时,可以传入一个对象作为参数。
<?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"><mapper namespace="user"> <!-- 增加 #{}表示 占位符, 等价于原始写法的 ?--> <insert id="insert" parameterType="com.zll.TestMyBatis.bean.User"> insert into user(parentId,sonId,name,birthday) value(#{parentId},#{sonId},#{name},#{birthday}) </insert> <!-- 增加用户并返回 id --> <insert id="insertReteunId" parameterType="com.zll.TestMyBatis.bean.User"> <selectKey keyProperty="id" order="AFTER" resultType="int"> <!-- sql语句,获取最近插入数据的id --> select last_insert_id(); </selectKey> insert into user(parentId,sonId,name,birthday) value(#{parentId},#{sonId},#{name},#{birthday}) </insert> <!-- 增加 如果返回的是 uuid (这里没有测试,下路可以自己测试)--> <insert id="insertReteunUId" parameterType="com.zll.TestMyBatis.bean.User"> <selectKey keyProperty="id" order="BEFORE" resultType="string"> select uuid; </selectKey> insert into user(parentId,sonId,name,birthday) value(#{parentId},#{sonId},#{name},#{birthday}) </insert> <!-- 删除 --> <delete id="deleteById" parameterType="int"> delete from user where id=#{id} </delete> <!-- 更新 --> <update id="updateById" parameterType="com.zll.TestMyBatis.bean.User"> update user set parentId=#{parentId},sonId=#{sonId},name=#{name},birthday=#{birthday} where id=#{id} </update> <!-- 模糊查询 ${}符号表示sql使用拼接方式,这样会参数sql注入露点,所以大家要注意 --> <!-- 模糊查询 ${}符号表示sql使用拼接方式,这样会参数sql注入露点,所以建议大家使用 #{value} 需要模糊查询是可以使用 %xxx% --> <select id="findByName" parameterType="string" resultType="com.zll.TestMyBatis.bean.User"> <!-- select * from user where name like "%${value}%" --> select * from user where name like #{value} </select></mapper>
进入测试代码:
插入用户并返回id:
public void insertUserRetrunId() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); User user = new User(); user.setName("小红"); user.setBirthday(new Date()); session.insert("user.insertReteunId", user); session.commit(); //注意前面没有设置id,这里返回的是我们刚插入数据的id System.out.println("这是刚插入的数据id = "+user.getId()); session.close(); }
测试结果查看控制台
模糊查询:
public void findUser() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); //模糊查询 "%#{}%" //List<User> list = session.selectList("user.findByName", "小"); //模糊查询 推荐方式 List<User> list = session.selectList("user.findByName", "%小%"); for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); } session.close(); }
执行结果
修改操作
//修改了小明为 小明明 并设置parentid为3 public void updateUser() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); User user = new User(); user.setId(4); user.setParentId(3); user.setName("小明明"); user.setBirthday(new Date()); session.update("user.updateById", user); session.commit(); session.close(); }
执行结果:
删除操作
//删除了小红 public void deleteUser() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); session.delete("user.deleteById", 7); session.commit(); session.close(); }
执行结果:
这里我们都使用junit 测试,下一章我们会进入实际开发中,看看实际开发中是如何使用 MyBatis的
0 0
- MyBatis(三) 简单的 CRUD
- MyBatis入门简单的CRUD
- MyBatis的注解实现简单的CRUD
- 用mybatis实现简单的CRUD
- mybatis入门及简单的crud
- mybatis 简单CRUD
- mybatis简单crud
- mybatis简单crud
- mybatis 完整的CRUD
- mybatis的CRUD操作
- MyBatis的CRUD
- Mybatis的CRUD操作
- MyBatis 的CRUD 功能
- mybatis的动态CRUD
- MyBatis的CRUD
- mybatis的CRUD操作
- spring + mybatis 的 crud
- Mybatis 简单的CRUD 基于XML文件配置
- PHP人性化时间显示,实现多少秒前,多少分钟前,多少小时前
- 第30篇 一对多自由控制语音(九)及PHP XML DOM
- UDP协议
- linux buffer 与 cache 的区别
- 蓝桥杯 历届试题 最大子阵
- MyBatis(三) 简单的 CRUD
- 算法训练 数字三角形
- Oracle收购Apiary来加强其API集成云
- 资源文件无法识别
- day03
- asp.net 使用Ueditor过程中出现的问题及解决办法
- mapReduce大量小文件的优化策略
- OPENSSL库的使用-AES篇
- Spring4.3.x 浅析xml配置的解析过程(6)——解析context命名空间之property-placeholder和property-override标签