myBatis

1、编写MyBatis配置文件:
配置属性 以在外部进行配置,并可以进行动态替换。
如果一个属性在不只一个地方进行了配置,那么,MyBatis将按照下面的顺序来加载:
1、首先读取在 properties 元素体内指定的属性。
2、然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定 的路径读取属性文件,并覆盖之前读取过的同名属性。
3、最后读取作为方法参数传递的属性,
4、后面加载的覆盖之前读取过的同名属性。
MyBatis支持多种配置:
尽管可以配置多个环境,但每个SqlSessionFactory 实例只能选择一种环境。 所以,如果你想连接两个数据库,就需要创建两个SqlSessionFactory实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推 default属性配置默认的环境配置id
在MyBatis中有两种类型的事务管理器
JDBC –这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理 事务作用域。
MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的 整个生命周期(比如 JEE 应用服务器的上下文
type数据源类型,有三种内建的数据源类型:
UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库 连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据 库来说,使用连接池并不重要,这个配置就很适合这种情形
POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的 连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。
JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或 在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。
最重要的还是配置映射器,告诉 MyBatis 到哪里去找到这些语句
单表查询和多表查询:
参数是单个时:

  1. @Param 注解可以省略不写
  2. 不写 @Param 注解时,形参的名称可以不和Mapper.xml中的 #{} 获取变量名一致。不建议
  3. 写 @Param 注解时,注解中的参数名称必须和Mapper.xml中的 #{} 获取变量名一致。
    参数是多个时:
    1. 每个参数前必须添加 @Param 注解
  4. 注解中的参数名称必须和Mapper.xml中的 #{} 获取变量名一致。
  5. 注解中的参数名称与方法的参数名称可以不一致。
    拼接字符串:
    1. 使用CONCAT 函数
  6. 使用 KaTeX parse error: Expected 'EOF', got '#' at position 7: {} 代替 #̲{} ;不推荐,{} 没有注入检查,容易出现SQL注入问题
    3.通过拼接字符串比较安全,拼接顺序不一定

myBatis的SQL的编写:
需要编写一个映射器,两个映射器需要用到extend的链接
有多种方式配置resultMap,可以使用构造器的方式配置
编写的SQL有一个id值,必须与dao的值的名称一模一样
动态的SQL新增(有选择性的)语句配置prefix与suffix , suffixoverrides
动态SQL修改(有选择性的)语句配置SET可以剔除追加到条件末尾的任何不相关的逗号
动态SQL查询参数配置: collection:用于获取接口的参数名, item:迭代项, index:索引 open:开始符号 close:结束符号 separator:分割符
namespace中的包名要和Dao/Mapper接口一致。否则指定的路径会报错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值