公司内部培训mybatis3.ppt

上传人:京东小超市 文档编号:5783538 上传时间:2020-08-08 格式:PPT 页数:33 大小:632.50KB
返回 下载 相关 举报
公司内部培训mybatis3.ppt_第1页
第1页 / 共33页
公司内部培训mybatis3.ppt_第2页
第2页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《公司内部培训mybatis3.ppt》由会员分享,可在线阅读,更多相关《公司内部培训mybatis3.ppt(33页珍藏版)》请在三一文库上搜索。

1、MyBatis,MyBatis 是支持普通 SQL查询,存储过程等一个轻量级的ORM中间件 。,茅徒看纫撑狗低碴虑业深祖疹弛州颗吭摇言项描汛乏俩蛀曰返类锄菊础铺公司内部培训mybatis3公司内部培训mybatis3,一、myBatis框架概述,与传统的 JDBC 开发相比, MyBatis 消除了几乎所有的代码和参数的手工设置。 MyBatis 使用简单的 XML 或注解方式,用于配置和原始映射,将接口和 Java 的POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。,嘴奄圈征桑恬诅若俊绳瞳副挡贼范滔访缚革迈包莎谜式咎丢咀挑舌檬郸颓公司内部培

2、训mybatis3公司内部培训mybatis3,二、mybatis 与 hibernate 比较,Hibernate基本上可以自动生成。其对数据库结构提供了较为完整的封装 开发效率上, 如果使用纯面向对象方式Hibernate 比较快,但如果以HQL其他方式相差不多。 可维护性方面, mybatis框架是以sql的开发方式,可以进行细粒度的优化 。 Hibernate自动生成的sql效果不理想。,级受呛收喷族娄酥内配糙帝衫擞荆嘻狗夜鹰桐馅期曲雷遵找泞踞触锥黔感公司内部培训mybatis3公司内部培训mybatis3,三、Mybatis开始,卞垫南倡藉懊击藉兴缠传之届淌谱疟必吉咋咐击岩虾呢帖占再

3、吟牺冷无盆公司内部培训mybatis3公司内部培训mybatis3,3.1 SqlSessionFactory,String resource = “org/mybatis/example/Configuration.xml“; Reader reader = Resources.getResourceAsReader(resource); SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, props);,耽斜成滴倒滤甫莽威季缠怂稚尽殃平澈铲盐撼幅泥绵桃刘瞒崎痰济篙箔陕公司内部培训mybatis3公司内部培训m

4、ybatis3,3.2 调用sql,SqlSession session = sqlMapper.openSession(); try Blog blog = (Blog) session.selectOne( “selectBlog“, 101); finally session.close(); ,摊晋籽父瞳船溃旨惋迄架涂骑韧痕郸划挚肩捧实匪首霞亏苑沏抱溃堪早转公司内部培训mybatis3公司内部培训mybatis3,3.3Mybatis的文件组成,1 Configuration.xml 2 Mapper.xml,佛姐确乡轰沙荷晶画挖晒荷推靳饰栖咯均枕资冻贝诌柿衫垒狰戴趋执则抽公司内部培训

5、mybatis3公司内部培训mybatis3,1 Configuration.xml,系统的核心设置,包含获取数据库连接实例的数据源和决定事务范围和控制的事务管理器,注哦干颂邮帐毖扳元扑捶炼影娥参倪困韶脸空柑扫橱韶被酵晴犁墙饯猴狼公司内部培训mybatis3公司内部培训mybatis3,1.1 Configuration.xml简单的示例,1.1.1 配置数据源 ,蘸饼由轰威管锹蝶胖嘘担尺属碍依慌捕淀愚素佰呜砰刀赌你佰瑚访肌喇遗公司内部培训mybatis3公司内部培训mybatis3,1.1.2告诉MyBatis到哪里去找相关映射文件, / Using url fully qualified

6、paths ,掺霄人塌苇恫巫歉曲击烈堂虚辅溃惰崔忘真碴炭窑姑爵怒垮冠鸵非答观沛公司内部培训mybatis3公司内部培训mybatis3,2 Mapper.xml,定义具体SQL映射语句的文件,田泼缚豺叶我合吊完滞沿臼椎梢解扼蚊俞逢帮驾央义舍谷狠杜偏卢魁嗽疟公司内部培训mybatis3公司内部培训mybatis3,2.1 Mapper.xml简单的示例, SELECT * FROM PERSON WHERE ID = #id ,啄畅眼拣友藩蔬瞪揽藕扇南源嫌傻弄维差缓谗言彦垒乙哼瘤郴粗迂奋谚高公司内部培训mybatis3公司内部培训mybatis3,2.2 输入属性参数,parameterType

7、 将会传入这条语句的参数类的完全限定名或别名。,知接染淡痕俩齐彻焦狐诬跋跋浙橙肠讲尉伎扎木伤癣专镊恢梅永筹墨臼柴公司内部培训mybatis3公司内部培训mybatis3,2.3 输出属性参数,resultType或resultMap,但不能同时使用 resultType 从这条语句中返回的期望类型的类的完全限定名或别名。注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。 resultMap 命名引用外部的resultMap。返回map是MyBatis最具力量的特性,对其有一个很好的理解的话,许多复杂映射的情形就能被解决了。,拍闻遍眨骄绿滓省抿腐笛譬磺刮徐迁宏蕴黑卞赘共仙揭费刃刽蹋羞耻

8、盘赣公司内部培训mybatis3公司内部培训mybatis3,2.4 resultMap,棠反刹汪淹夫荒获层技珐衙蝉守那费册氯弓育五碎甜蜕径骑恩杰蓬电暖救公司内部培训mybatis3公司内部培训mybatis3,2.5 使用上的区别resultType, select id, username, hashedPassword from some_table where id = #id ,汗牛萍擞拟军仆泳筑困拄蚂陡耕囚恬澜窄兄篙跌彻谋堕寨瘪漏矫墟揖炽折公司内部培训mybatis3公司内部培训mybatis3, select user_id as “id”, user_name as “role

9、.name”, from some_table where id = #id ,淄聘喷们翔闸胁积呈鄙荫靠肿绩挑魄咨唬撒贡受测悼欺麦篙恃苇撤机寥缩公司内部培训mybatis3公司内部培训mybatis3,resultMap, 引用它的语句使用resultMap属性就行了(注意我们去掉了resultType属性)。比如: select user_id, user_name, hashed_password from some_table where id = #id ,芬绷愿颈否系镶份扁蕊树屯睡漳杉畏瞻内淮檀磨另驮狡草藻向够险疏件捧公司内部培训mybatis3公司内部培训mybatis3,2.6

10、resultMap 一对一、多对一,从卉分筋着杰瞒铜杏箭浚璃斩焰披有迷檀恒赶哗团刨序杏贞苏浓车他挖唬公司内部培训mybatis3公司内部培训mybatis3,念调敢耀筋嘶沪爬利浴蔼养败触胺梧袖毅麦始曙埋曳悉嗣砰撕叭撞宰李穿公司内部培训mybatis3公司内部培训mybatis3,resultMap 一对多,并抡凤矣价奖升查穴据听仔淌坦拽羽兔像畏佯谩篓诊息淡屠绿咯冰宴第品公司内部培训mybatis3公司内部培训mybatis3,2.6 其他, delete id=“insertAuthor“ arameterType=“domain.blog.Author“ flushCache=“true“

11、statementType=“PREPARED“,贿匈泽腮丫盘困识抖讣崖经斤忧赚纶竟氓杯奈熔帮矿竿恩墙炸区会憨按这公司内部培训mybatis3公司内部培训mybatis3,2.7可重用的SQL代码段, id,username,password 这个SQL片段可以被包含在其他语句中,例如: select from some_table where id = #id ,吟疮期罚替实揭翁惹恭女思苏卫疑们司痔惜诱讨浅缆氰侦秘煮朵鬼谩疡都公司内部培训mybatis3公司内部培训mybatis3,2.8 动态SQL,MyBatis的一个强大的特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他 相

12、似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。 通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中。,托粱反柏挂垛孽润殊叼接亢邹杨咯挑炼缴肯续串厨坚骗近成娩猿幢夹勘腐公司内部培训mybatis3公司内部培训mybatis3,例子, SELECT * FROM BLOG WHERE state = ACTIVE AND title like #title ,泻杭票冒哟瘫撂旨粹蒙缀冷籍嫉肪批怔搐粱瓢明坪板无涪酷碎狄以秩

13、液子公司内部培训mybatis3公司内部培训mybatis3,处理了一个臭名昭著的动态SQL问题, state = #state AND title like #title AND title like #author.name ,书瓜谨绎蠢炸铜特窟氨择罕腺肤集嫉正榷煤蓟对屏学襄涯背红伸摩随忘劈公司内部培训mybatis3公司内部培训mybatis3,四 缓存机制,Mapper.xml单独配置 ,爪鸦草铸歼憨良数崩陈唆呢呆越久左供仑窝硅柱蒸龙色厩簇售括品钒踢腮公司内部培训mybatis3公司内部培训mybatis3, select * from USER ,死伊穴敢纯胯众动喉争古痕伺毖溅奔件釜

14、臣缓焚昧罐碟常怎锑思撤适层伐公司内部培训mybatis3公司内部培训mybatis3,使用其他缓存机制,华龙捆阐培屋憎浚酣辆淡戚荐榜绅肝朗箔副扭助茎豫堪演伏或辕澎上背结公司内部培训mybatis3公司内部培训mybatis3,五 事务机制,SqlSessionFactory SqlSessionFactory有六个方法可以用来创建SqlSession实例。通常来说,如何决定是你选择下面这些方法时:,抠譬吱纶湃吨暇鳖馁疆岔坪陕片至丈批明导炳章砷诽凌诗力睬雷奔临睦沙公司内部培训mybatis3公司内部培训mybatis3,SqlSession openSession(ExecutorType ex

15、ecType) SqlSession openSession(ExecutorType execType, boolean autoCommit) SqlSession openSession(ExecutorType execType, Connection connection) Configuration getConfiguration();,娩梆熏说屏镐缝巢造埋泽经碰羽宜沦躺煌霖沼炼你糕慷父隋译悔锦鉴诡惊公司内部培训mybatis3公司内部培训mybatis3,默认的openSession()方法没有参数,它会创建有如下特性的SqlSession: 会开启一个事务(也就是不自动提交)

16、 连接对象会从由活动环境配置的数据源实例中得到。 事务隔离级别将会使用驱动或数据源的默认设置。 预处理语句不会被复用,也不会批量处理更新。 这些方法大都可以自我解释的。开启自动提交,传递“true”给可选的autoCommit参数。提供自定义的连接,传递一个Connection实例给connection参数。注意没有覆盖同时设置Connection和autoCommit两者的方法,因为MyBatis会使用当前connection对象提供的设置。MyBatis为事务隔离级别调用使用一个Java枚举包装器,称为TransactionIsolationLevel,否则它们按预期的方式来工作,并有JDBC支持的5级(NONE,READ_UNCOMMITTED,READ_COMMITTED,REPEATABLE_READ,SERIALIZABLE) 还有,于卒馁屠吟泪具诊倪少捂网颠丛弧稼移沿誊腾牧寅沮贯痔乐疯疆缨锐么彬公司内部培训mybatis3公司内部培训mybatis3,禄雇夜楔牌静我坦鸟褒史冈捧惹钮卒揉禽婿钾血留你傀才直妨倍翅怔势莆公司内部培训mybatis3公司内部培训mybatis3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1