Mybatis 操作数据库 2

1. 动态SQL

1.1 <if> 标签

注册分为两种字段: 必填字段非必填字段,那如果在添加用户的时候有不确定的字段传入,程序改如何实现?

这个时候就需要使用动态标签来判断了,比如添加性别 gender非必填字段,

1) 方法定义

2) 方法实现 

3) 运行

有 gender 的

 运行结果

没有gender

运行结果

  已经实现 动态SQL

1.2 <trim>标签

之前的插入用户功能,只是有一个 gender 字段是选填项,如果有多个字段,一般考虑标签结合标签,对多个字段都采取动态生成的方式。

标签中有如下属性:

  • prefix: 表示整个语句块,以prefix的值作为前缀
  • suffix: 表示整个语句块,以suffix的值作为后缀
  • prefixOverrides: 表示整个语句块要去除掉的前缀
  • suffixOverrides: 表示整个语句块要去除掉的后缀

调整后的语句为:

1.3 <where>标签

看下面这个场景,系统会根据我们的筛选条件,动态组装where 条件

没优化之前的代码

添加 where 标签优化后的代码

1.4 <set> 标签

需求: 根据传⼊的⽤户对象属性来更新⽤户数据,可以使用标签来指定动态内容.
接口定义: 根据传⼊的⽤户id属性,修改其他不为null的属性

代码:

利用 set 标签优化后

1.5 <foreach> 标签

对集合进行遍历时可以使用该标签. 标签有如下属性:

  • collection: 绑定方法参数中的集合,如 List, Set, Map 或数组对象
  • item: 遍历时的每一个对象
  • open: 语句块中开头的字符串
  • close: 语句块中结束的字符串
  • separator: 每次遍历之间间隔的字符串

 

 1.6 <include> 标签

在xml映射文件配置SQL,有时会存在很多重复的片段, 此时就会存在很多冗余的代码.如图

我们可以对重复的代码片段进行抽取,将其通过 <sql> 标签封装到一个SQL片段,然后通过 <include> 标签进行引用

  • <sql> 定义可重复使用的SQL片段
  • <include> : 通过属性refid, 指定 定义好的SQL 片段

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MyBatis 是一个开源的持久层框架,它可以帮助开发者简化数据库操作。下面是使用 MyBatis 操作数据库的一般步骤: 1. 配置数据库连接:在 MyBatis 的配置文件中,设置数据库连接信息,包括数据库驱动、URL、用户名和密码等。 2. 定义数据模型:创建 Java 类来表示数据库中的表,每个类对应一个表,类的属性对应表的列。 3. 编写 SQL 映射文件:创建一个 XML 文件,定义 SQL 语句和映射关系。在文件中,可以使用 MyBatis 提供的标签来编写 SQL 语句,还可以使用动态 SQL 来实现条件查询等功能。 4. 配置 SQL 映射文件:在 MyBatis 的配置文件中,引入 SQL 映射文件,告诉 MyBatis 哪些 SQL 语句对应哪些方法。 5. 创建 SqlSessionFactory:通过 MyBatis 提供的 SqlSessionFactoryBuilder 类,读取配置文件并创建 SqlSessionFactory 对象。SqlSessionFactory 是一个线程安全的类,用于创建 SqlSession。 6. 创建 SqlSession:通过 SqlSessionFactory 的 openSession 方法创建 SqlSession 对象。SqlSession 是一个用于执行 SQL 语句的接口,它提供了多种方法来操作数据库。 7. 执行 SQL 语句:通过 SqlSession 对象调用相应的方法,执行 SQL 语句。例如,可以使用 selectOne 方法执行查询操作,使用 insert、update 或 delete 方法执行增删改操作。 8. 提交事务和关闭资源:在操作完成后,需要调用 SqlSession 的 commit 方法提交事务,并调用 close 方法关闭资源。 以上是使用 MyBatis 操作数据库的一般步骤,具体的实现方式可以根据项目的需求进行调整和扩展。希望对你有帮助!如果有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值