excel表格如何设置关键词进行排序(excel如何按关键字排序)
586
2022-05-30
Mybatis – SelectKey
属性 -描述:
① keyProperty : selectKey 语句结果应该被设置的目标属性。
② resultType:结果的类型。MyBatis 通常可以算出来,但是写上也没有问题。MyBatis 允许任何简单类型用作主键的类型,包括字符串。
③ order: 这可以被设置为 BEFORE 或 AFTER。如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用。
④ statementType:和前面的相同,MyBatis 支持 STATEMENT ,PREPARED 和CALLABLE 语句的映射类型,分别代表PreparedStatement 和CallableStatement 类型。
Mapper文件详解
可配置标签:
select : 映射查询语句
insert: 映射插入语句
update:映射更新语句
delete:映射删除语句
sql:可被其他语句引用的可重用语句 (与
resultMap:最复杂也是最强大的元素,用来描述如何从结果集中加载对象
cache:给命名空间的缓存配置(不用了)
cache-ref:其他命名空间缓存配置的引用(已经不用了)
parameterMap:已经废弃,老式风格的参数映射
标签的属性描述:
1)id:命名空间中唯一的标识符,可以来引用该条语句 也是接口的方法名称
2)parameterType:这里设置传入该条语句的参数类的完全限定名或者普通java类型
3)resultType:返回结果的类的完全限定名或者普通java类型
4)resultMap:外部resultMap的命名引用,结果集的映射是Mybatis最强大的特性
5)flushCache:如果设置为true,则任何时候该语句被调用,都会导致本地缓存和二级缓存都被清空。默认是false
6)useCache:如果设置为true,将会导致本条语句的结果被二级缓存。默认是true
7)timeout:抛出异常之前,驱动程序等待数据库返回请求结果的秒数
Mybatis动态SQL
1:
2:
3:
4:foreach
foreach 也就是遍历迭代,在SQL中通常用在 in 这个关键词的后面
foreach元素的属性主要有 item,index,collection,open,separator,close。
分别代表:
item表示集合中每一个元素进行迭代时的别名,
index用于表示在迭代过程中,每次迭代到的位置,
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔 符,
close表示以什么结束
而最为重要的就是collection属性了,既然是迭代就表示传入的参数是多个,这时候传入的参数就有以下几种可能:
1. list
2. array
3. map
注: collection的值为ids,是传入的参数Map的key
TypesAlises
高级结果映射
多对一
注:在查询语句中添加主键字段(
多对一
一对多
多对多
同类技术对比
注意事项及小甜点
总结
1、工作原理:
2、优点:
1、简单易学
mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
2、灵活
mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
3、解除sql与程序代码的耦合
通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
4、提供映射标签,支持对象与数据库的orm字段关系映射
5、提供对象关系映射标签,支持对象关系组建维护
6、提供xml标签,支持编写动态sql。
缺点:
1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
2、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
3、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。
4、二级缓存机制不佳
MyBatis SQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。