公司内部培训mybatis3_第1页
公司内部培训mybatis3_第2页
公司内部培训mybatis3_第3页
公司内部培训mybatis3_第4页
公司内部培训mybatis3_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、mybatismybatis 是支持普通 sql查询,存储过程等一、一、mybatis框架概述框架概述n与传统的 jdbc 开发相比, mybatis 消除了几乎所有的代码和参数的手工设置。nmybatis 使用简单的 xml 或注解方式,用于配置和原始映射,将接口和 java 的pojos(plan old java objects,普通的 java对象)映射成数据库中的记录。 二、二、mybatis 与与 hibernate 比较比较nhibernate基本上可以自动生成。其三、三、mybatis开始开始3.1 sqlsessionfactory nstring resource = or

2、g/mybatis/example/configuration.xml; nreader reader = resources.getresourceasreader(resource); nsqlsessionfactory factory = nsqlsessionfactorybuilder.build(reader, props); 3.2 调用调用sqlnsqlsession session = sqlmapper.opensession(); ntry nblog blog = (blog) session.selectone( nselectblog, 101); n final

3、ly nsession.close(); n 3.3mn1 configuration.xmln2 mapper.xml1 configuration.xmln系统的核心设置,包含获取数据库连接实例的数据源和决定事务范围和控制的事务管理器1.1 configuration.xml简单的示例n1.1.1 配置数据源n n n n1.1.2告诉告诉mybatis到哪里到哪里去找相关映射文件去找相关映射文件n n n n n n/ using url fully qualified paths n n n n n 2 mapper.xmln定义具体sql映射语句的文件2.1 mapper.xml简单

4、的示例n nselect * from person where id = #id n 2.2 输入属性参数输入属性参数nparametertype 将会传入这条语句的参数类的完全限定名或别名。 2.3 输出属性参数输出属性参数nresulttype或resultmap,但不能同时使用nresulttype 从这条语句中返回的期望类型的类的完全限定名或别名。注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。nresultmap 命名引用外部的resultmap。返回map是mybatis最具力量的特性,对其有一个很好的理解的话,许多复杂映射的情形就能被解决了。2.4 resultma

5、p 2.5 使用上的区别使用上的区别resulttypen nselect id, username, hashedpassword nfrom some_table nwhere id = #id n n nselect nuser_id as “id”, nuser_name as “”, nfrom some_table nwhere id = #id n resultmapn n n n n n引用它的语句使用resultmap属性就行了(注意我们去掉了resulttype属性)。比如: n nselect user_id, user_name, hashed_pas

6、sword nfrom some_table nwhere id = #id n 2.6 resultmapnn n n n n n n n n n n n n n n n n resultmapn n n n n 2.6 其他其他n n ndelete id=insertauthor arametertype=domain.blog.author flushcache=true statementtype=prepared2.7可重用的sql代码段n id,username,password n这个sql片段可以被包含在其他语句中,例如: n nselect nfrom some_table

7、 nwhere id = #id n 2.8 动态sqlnmybatis的一个强大的特性之一通常是它的动态sql能力。如果你有使用jdbc或其他n相似框架的经验,你就明白条件地串联sql字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态sql可以彻底处理这种痛苦。 n通常使用动态sql不可能是独立的一部分,mybatis当然使用一种强大的动态sql语言来改进这种情形,这种语言可以被用在任意映射的sql语句中。 例子例子n nselect * from blog nwhere state = active n nand title like #title n n 处理了一个臭

8、名昭著的动态sql问题n n nstate = #state n n nand title like #title n n nand title like # n n 四四 缓存机制缓存机制 id=”getuserlist” resultmap=userresult cachemodel=”user-cache” n select * from user n n n n使用其他缓存机制使用其他缓存机制n五五 事务机制事务机制nsqlsessionfactory nsqlsessionfactory有六个方法可以用来创建sqlsession实例。通常来说,如何决定是你选择下

9、面这些方法时: nsqlsession opensession(executortype exectype) nsqlsession opensession(executortype exectype, boolean autocommit) nsqlsession opensession(executortype exectype, connection connection) nconfiguration getconfiguration(); n默认的opensession()方法没有参数,它会创建有如下特性的sqlsession: n 会开启一个事务(也就是不自动提交) n 连接对象会从由活动环境配置的数据源实例中得到。 n 事务隔离级别将会使用驱动或数据源的默认设置。 n 预处理语句不会被复用,也不会批量处理更新。 n这些方法大都可以自我解释的。开启自动提交,传递“true”给可选的autocommit参数。提供自定义的连接,传递一个connection实例给connection参数。注意没有覆盖同时设置connection和autocommit两者的方法,因为mybatis会使用当前connection对象提供的设置。mybatis为事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论