MyBatis 对数据库进行CRUD操作
2023-09-11 14:14:33 时间
1.update修改
uodate修改也可以使用之前的机制在配置文件中直接编写sql
但是update语句的set字句中是根据传入的值决定的,
此时可以通过Mybatis提供的标签实现判断动态拼接update语句:
<!-- update修改 --> <update id="updateOne"> update user <set> <if test="name != null">name = #{name},</if> <if test="age != 0">age = #{age},</if> </set> where id = #{id} </update>
测试类:
// 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * update操作 */ @Test public void test07(){ User user = new User(); user.setId(3); user.setName("sss"); user.setAge(12); // 1.创建sqlSession SqlSession session = factory.openSession(); // 2.执行操作 session.update("cn.tedu.mybatis.beans.UserMapper.updateOne",user); // 3.提交事务 session.commit(); }
2.select查询
select查询也可以使用之前的机制在配置文件中直接编写sql
但是select语句的where字句中拼接哪些查询字段是根据传入的值决定的
此时可以通过MyBatis提供的标签实现判断,动态拼接select语句:
<!-- select查询 --> <select id="queryMany" resultType="cn.tedu.mybatis.beans.User"> select * from user <where> <if test="id != 0">id = #{id}</if> <if test="name != null">and name = #{name}</if> <if test="age != 0">and age = #{age}</if> </where> </select>
测试类:
// 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * select操作 */ @Test public void test08(){ User user = new User(); user.setId(3); user.setName("sss"); user.setAge(12); // 1.创建sqlSession SqlSession session = factory.openSession(); // 2.执行操作 User userx = session.selectOne("cn.tedu.mybatis.beans.UserMapper.queryMany",user); // 3.遍历结果 System.out.println(userx); } // 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * select操作 */ @Test public void test08(){ User user = new User(); user.setId(3); user.setName("sss"); user.setAge(12); // 1.创建sqlSession SqlSession session = factory.openSession(); // 2.执行操作 User userx = session.selectOne("cn.tedu.mybatis.beans.UserMapper.queryMany",user); // 3.遍历结果 System.out.println(userx); }
3.insert操作
insert插入也可以使用之前的机制在配置文件中直接编写sql
但是insert语句的参数和值的列表拼接哪些字段是根据差u纳入的值决定的
此时可以通过MyBatis提供的标签实现判断,动态拼接insert语句:
<!-- insert操作 --> <insert id="insertOne"> insert into user <trim prefix="(" suffix=")" suffixOverrides=","> id, <if test="name != null">name,</if> <if test="age != 0">age,</if> </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> id, <if test="name != null">#{name},</if> <if test="age !=0">#{age},</if> </trim> <!-- insert into user (id,name,age) values (null,#{name},#{age}) --> </insert>
trim:去掉字符串两端的多余的空格
测试类:
// 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * insert操作 */ @Test public void test09(){ User user = new User(); user.setName("hhh"); user.setAge(33); // 1.创建SqlSession SqlSession session = factory.openSession(); // 2.执行操作 session.insert("cn.tedu.mybatis.beans.UserMapper.insertOne",user); // 3.提交事务 session.commit(); }
4.delet操作
delete删除也可以使用之前的机制在配置文件中直接编写sql
但是delete语句的删除条件、拼接哪些字段,是根据传入的值决定的
此时可以通过MyBatis提供的标签实现判断,动态拼接delete语句:
<!-- delete 操作 --> <delete id="deleteOne"> delete from user <where> <if test="id != 0">id = #{id}</if> <if test="name != null">and name = #{name}</if> <if test="age != 0">and age = #{age}</if> </where> </delete>
<!-- delete 操作2 --> <delete id="deleteOne2"> delete from user where id in <foreach collection="list" open="(" close=")" separator="," item="id"> #{id} </foreach> </delete>
测试类:
// 根据配置文件创建sqlSessionFactory private SqlSessionFactory factory = null; @Before public void before() throws Exception{ //1.读取MyBatis核心配置文件 InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml"); //2.根据配置文件创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); } /** * delete操作 */ @Test public void test10(){ User user = new User(); user.setId(8); // user.setName("cjj"); user.setAge(24); // 1.创建SqlSession SqlSession session = factory.openSession(); // 2.执行操作 session.insert("cn.tedu.mybatis.beans.UserMapper.deleteOne",user); // 3.提交事务 session.commit(); } /** * delete操作2 */ @Test public void test11(){ // 0.准备数据 List<Integer> list = new ArrayList<Integer>(); list.add(3); list.add(6); list.add(10); // 1.创建SqlSession SqlSession session = factory.openSession(); // 2.执行操作 session.insert("cn.tedu.mybatis.beans.UserMapper.deleteOne2",list); // 3.提交事务 session.commit(); }
相关文章
- mysql中显示当前数据库下的所有表,包括视图。
- 【Java】数据库连接池技术
- Introduction to MyBatis Generator Mybatis代码生成介绍
- Mybatis整合达梦数据库
- 《OpenGL ES 3.x游戏开发(上卷)》一2.3 手机自带数据库——SQLite
- 使用MyBatis搭建一个访问mysql数据库的简单示例
- Mybatis数据库连接报错:对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
- MyBatis if 和多数据库支持
- Qt数据库应用17-通用数据库请求
- Qt数据库应用1-数据导入导出csv
- Java学习-067-Mybatis 输出数据库SQL日志信息
- 《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
- 从零开发分布式数据库中间件 二、构建MyBatis的读写分离数据库中间件
- mybatis使用记录:#{}与${}区别、缓存机制、传递数组参数和List参数时if-test判空和判断长度的写法、Mybatis查询数据返回基本类型数组
- Microsoft Jet 数据库引擎找不到输入表或查询. 确定它是否存在如何解决
- hibernate配置数据库
- Mybatis通用操作数据库方法类总结
- 【数据库】数据库索引、数据库事务的隔离级别
- 软考-数据库与标准化和知识产权
- ECS连接内网RDS数据库注意事项 (原)
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件+SpringBoot整合Mybatis-plus