<kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

              <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                      <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                              <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                                      <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                                              <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                                                      <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                                                              <kbd id='WRuVGSxi3inVRYq'></kbd><address id='WRuVGSxi3inVRYq'><style id='WRuVGSxi3inVRYq'></style></address><button id='WRuVGSxi3inVRYq'></button>

                                                                  k8凯发娱乐登录_大闹天宫2推荐网(taylorautoelectric.com)最新ag旗舰厅手机版app游戏大全官网下载地址,请登录我们第一大闹天宫2新区视角-最专业的大闹天宫2媒体娱乐门户首页

                                                                  手机阅读

                                                                  m.taylorautoelectric.com

                                                                  MyBatis框架之SQL映射和动态SQL

                                                                  更新日期: 2018-07-12 06:51 来源 :k8凯发娱乐登录

                                                                  8.delete:删除映射语句。

                                                                  9.select:映射查询语句。

                                                                  2.行使select完成单前提查询

                                                                  <select id = "GetUserByName" resultType = "User" parameterType = "string">

                                                                  select * from user where name like concat('%',#{name},'%') //凭证姓名恍惚查询。

                                                                  </select>

                                                                  这是一个id为GetUserByName的映射语句,参数范例为string,返回范例为User。

                                                                  #{参数名}:汇报MyBatis天生的PreparedStatement参数,相对付JDBC,改参数被标识为‘?’。

                                                                  id:定名空间的独一标识符,可以被用来引用这条语句。

                                                                  parameterType:暗示查询语句传入参数的范例和完全限命名或别名。支持基本数据范例和伟大数据范例。上述实例中传入的参数是一个体名,代表String。

                                                                  别名与Java范例映射

                                                                  别名       映射的范例     别名     映射的范例    

                                                                  string   String double Double

                                                                  byte Byte float Float

                                                                  long  Long boolean Boolean

                                                                  short Short date Date

                                                                  int Integer map Map

                                                                  integer Integer hashmap HashMap

                                                                  arraylist ArrayList list List

                                                                  resultType:查询语句返回功效范例的完全限命名或别名。别名行使方法和parameterType是一样的。

                                                                  2.行使select完成多前提查询

                                                                  行使伟大数据范例,把前提参数封装为工具、Map举办入参。

                                                                  不管什么范例的参数,可能几多个参数,都可以封装为一个Map举办入参,通过Map的key举办获取传入的值。

                                                                  3.行使resultMap完成查询功效的揭示

                                                                  resultMap:做自界说映射,实体类属性名和数据库列名纷歧致的环境下,而且可以指定要表现的列,行使机动 应用普及。

                                                                  属性和子节点:

                                                                  id:独一标识,此id值用于select元素resultMap属性的引用。

                                                                  type:标识该resultMap的映射功效范例。

                                                                  result子节点:标识一些简朴属性,个中column属性代表数据库的字段名,property代表查询出来的字段名映射到pojo类的某个属性。   

                                                                  id子节点:与result子节点浸染一样,一样平常暗示数据库的主键列。

                                                                  -------------------------------------------------------------------------------------------------------

                                                                  resultType和resultMap的对好比下 :

                                                                  1.resultType:直接暗示返回范例, 包罗根基数据范例和伟大数据范例。

                                                                  2.resultMap:外部resultMap界说的引用,通过对应的外部resultMap的id,暗示功效映射到哪个resultMap上,一样平常用于字段名和属性名纷歧致的环境,可能必要做伟大的连系查询以便自由节制映射功效。

                                                                  3.两者的关联

                                                                  当举办查询时,查询出来的每个字段城市放在一个Map里,当查询元素返回属性是resultType的时辰,会将键值对取出赋所指定的属性。着实MyBatis的每个查询映射的返回范例都是resultMap,只是当我们行使resultType的时辰,会自动把对应的值赋给所指定的工具属性,当行使resultMap时辰,由于map不是很好的暗示规模,我们就进一步的转化为对应的实体工具。resultMap首要浸染于伟大的连系查询上。

                                                                  留意:resultType和resultMap本质是一样的,都是Map数据布局,可是二者不能同时存在。

                                                                  4.resultMap的自动映射级别:默认级别为PARTIAL,也可以在settings变动值。

                                                                  4.行使MyBatis实现增编削操纵

                                                                  1.行使insert完成增进操纵

                                                                  2.行使update完成修改操纵

                                                                  <update parameterType="User">

                                                                  UPDATE user SET userName= #{userName},userCode= #{userCode} WHERE id = #{id}

                                                                  </update>

                                                                  3.行使delete完成删除操纵

                                                                  元素中的属性:

                                                                  id:与select元素id一样,定名空间的独一标识符。

                                                                  parameterType:传入参数的范例的完全限命名可能别名。

                                                                  对付增编削操纵的留意事项:

                                                                  (1)该范例的操纵自己默认返回执行SQL影响的行数,以是DAO层的接口要领返回值一样平常为int范例,最好不要boolean范例。

                                                                  (2)insert、update、delete元素中均没有resultType属性,只有查询操纵必要对返回功效范例(resultType/resultMap)举办响应的指定。

                                                                  5.行使@param注解实现多参数入参

                                                                  行使注解用来传入多个参数,相等于给该参数重定名,在SQL映射文件中必要行使#{注解名称}来传入参数。 

                                                                  当参数为基本范例时,无论是多参数照旧单参数,都行使@param注解举办参数的转达为好!

                                                                  行使resultMap实现高级功效映射

                                                                  1.association:

                                                                  映射到JavaBean的某个伟大的”数据范例”属性,仅处理赏罚一对一的关联相关。

                                                                  association的属性节点:

                                                                  property:映射数据库列的实体工具属性名。

                                                                  javaType:完备的java类名和限命名。propert所映射的属性的范例。

                                                                  子元素:id:一样平常为映射主键,可以进步机能。

                                                                  result:

                                                                  column:映射的数据库的字段名。

                                                                  property:映射的数据列对应的实体工具属性。2.collection:

                                                                  映射到JavaBean的某个伟大的”数据范例”属性,这个属性是一个荟萃列表,处理赏罚一对多的关联相关。

                                                                  ofType:完备的java类名和限命名。propert所映射的属性的范例。

                                                                  别的和association根基同等。

                                                                  MyBatis缓存

                                                                  1.一级缓存:基于PerpetualCache(MyBatis自带)的HashMap当地缓存。浸染域在Session域内,当session flush可能close之后,该缓存被清空。

                                                                  2.二级缓存:global Cache,超出session范畴之外,可以被全部SqlSession共享。开启它只需在MyBatis的焦点设置文件 settings 配置即可。

                                                                  增补:一级缓存缓存的是SQL语句,二级缓存缓存的是功效工具。

                                                                  3.二级缓存设置:

                                                                  (1)开启二级缓存;

                                                                  (2)mapper文件中配置缓存,默认是没有开启缓存的。浸染域是针对namespace而言的,只在namespace内的查询才气共享这个cache。

                                                                  (3)对个体查询举办缓存,单独配置cache:

                                                                  增补:对MyBatis的缓存相识就可以了,对功效集做缓存并不是MyBatis所善于的,,并且机能也不是很好,它用心做的应该是SQL映射。

                                                                  -----------------------------------------------------------------------------------------------------------------------

                                                                  动态SQL

                                                                  一、行使动态SQL完成多前提查询。

                                                                  动态SQL基于OGNL的表达式,我们可以利便的在SQL语句中实现某些逻辑,用于实现动态SQL元素如下:

                                                                  if:操作if实现简朴的前提选择。

                                                                  choose(when,otherwise):相等于java中的switch语句,凡是与when和otherwise搭配。

                                                                  set:办理动态更新语句。

                                                                  trim:机动的去除多余的要害字。

                                                                  foreach:迭代一个荟萃,凡是用于in前提。

                                                                  二、if+where实现多前提查询

                                                                  where元素可以智能的处理赏罚and 和 or 的多余题目, 不需担忧多余要害字导致语法错误。

                                                                  if元素的test用于判定表达式是否切合,切合则继承拼接SQL语句。

                                                                  三、if+trim+foreach实现多前提查询

                                                                  (1)trim的属性:

                                                                  prefix:前缀: 浸染是通过自动辨认是否有返回值后,在trim包括的内容上加上前缀,如上述示例的where。

                                                                  suffix:后缀: 浸染是在trim包括的内容上加上后缀。

                                                                  prefixOverrides: 对付trim包括内容的首部举办指定内容,(如上述示例的 and | or) 的忽略(去余);

                                                                  suffixOverrides: 对付trim包括内容的首位部举办指定内容的忽略。

                                                                  (2)foreach的属性:

                                                                  item:暗示荟萃中每一个元素举办迭代时的别名。

                                                                  index: 指定一个名称,暗示在迭代的进程中,每次迭代到的位置。

                                                                  open:暗示该语句以什么开始(既然是in前提语句,肯定是 ' ( ' 开始)

                                                                  separator: 暗示每次举办迭代的时辰以什么标记作为脱离符(既然是in前提语句,肯定是 ' , ' 脱离)

                                                                  close: 暗示该语句以什么竣事(既然是in前提语句,肯定是 ' ) ' 竣事)

                                                                  collection:最要害,而且最轻易堕落的属性。需留意,该属性必需指定,差异环境下,该属性值是差异的,首要有三种环境:

                                                                  若传入的参数是单参数且范例为一个List的时辰,属性值为list;

                                                                  若传入的参数是单参数且范例为一个数组的时辰,属性值为array;

                                                                  若传入的参数为多参数时,就必要封装为一个map荟萃举办处理赏罚。属性值为Map的key;

                                                                  行使set更新操纵,相同于上述示例行使要领:

                                                                  三、choose(when、otherwise)

                                                                  when元素:当test属性中的前提满意时,就会输出when元素中的内容,而且当when中一旦有前提满意时,就会跳出choose,以是只有一个前提会被输出。

                                                                  otherwise元素:当when中的全部前提都不满意时,则会输出此元素的内容。

                                                                  四、MyBatis实现分页成果

                                                                  1.行使聚合函数得到总记录数-

                                                                  2.实现分页通过limit(起始位置,页面表现量)

                                                                  增补:起始位置的下标 = (当前页码 - 1 ) * 页面表现量

                                                                  相关文章
                                                                  商务部进行例行消息宣布会 就近期热门
                                                                  商务部进行例行消息宣布会 就近期热门题目做出回应,商务部 热门题目 例行...[详细]
                                                                  上百枚导弹空袭以色列, 以军动员最强
                                                                  出格声明:本文由新颖文化团队原创文章,全网推送,榨取转载剽窃!若有发明,必将严重处理赏罚,感谢。 【新颖军事文化团队第1914期】众所周知,此刻的以色列面对着...[详细]
                                                                  话题:怎么看汉化组帮作者完成画稿变
                                                                  话题:怎么看汉化组帮作者完成画稿变乱...[详细]
                                                                  商务部:关税减让有利于敦促亚洲地区
                                                                  人民网北京6月28日电商务部今天召开例行消息宣布会,有记者问到“国务院公布下调对部门亚太地域国度商品的入口关税”相干题目时,商务部消息讲话人岑岭回应称,...[详细]
                                                                  以色列出动F35空袭叙利亚,叙军毫无察
                                                                  以色列出动F35空袭叙利亚,叙军毫无察觉,盲目发射上百枚导弹,叙利亚 以色列 导弹 叙军 战斗机 萨姆...[详细]
                                                                  以色列对叙动员空袭 俄方:近半以军导
                                                                  原问题:以色列对叙动员空袭,俄方:近半以军导弹被叙拦截[举世网综合报道]俄新社10日报道,俄罗斯国防部宣布动静称,5月10日,以色列以戈兰高地蒙受到来自叙利...[详细]
                                                                  你可能喜欢
                                                                  免责声明:大闹天宫2推荐网所有大闹天宫2新区文字、大闹天宫2媒体图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,本站亦不为其版权负责。大闹天宫2频道相关作品的原创性、文中陈述文字以及内容数据庞杂本站无法一一核实,如果您发现本网站上有侵犯您的合法权益的内容,请联系我们,本网站将立即予以删除!
                                                                  ©Copyright 2014-2018 大闹天宫2推荐网-k8凯发娱乐登录_凯发k8娱乐官网地址_凯发最新登录网址  http://www.taylorautoelectric.com 版权所有