当前位置: 首页 > news >正文

惠州网站关键字优化网站锚点怎么用

惠州网站关键字优化,网站锚点怎么用,wordpress评论显示地址,国外企业档案馆网站的特色SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace#xff0c;一般定义为对应的接口类的路径。写好SQL语句映射文件后#xff0c;需要在MyBAtis配置文件mappers标签中引用#xff0c;例如#xff1a; Xml代码 mappers mapper resource一般定义为对应的接口类的路径。写好SQL语句映射文件后需要在MyBAtis配置文件mappers标签中引用例如   Xml代码   mappers      mapper resourcecom/liming/manager/data/mappers/UserMapper.xml /      mapper resourcecom/liming/manager/data/mappers/StudentMapper.xml /      mapper resourcecom/liming/manager/data/mappers/ClassMapper.xml /      mapper resourcecom/liming/manager/data/mappers/TeacherMapper.xml /  /mappers       当Java接口与XML文件在一个相对路径下时可以不在myBatis配置文件的mappers中声明。   SQL 映射XML 文件一些初级的元素 1. cache – 配置给定模式的缓存2. cache-ref – 从别的模式中引用一个缓存3. resultMap – 这是最复杂而却强大的一个元素了它描述如何从结果集中加载对象4. sql – 一个可以被其他语句复用的SQL 块5. insert – 映射INSERT 语句6. update – 映射UPDATE 语句7. delete – 映射DELEETE 语句8. select  -  映射SELECT语句   2.1 resultMap         resultMap 是MyBatis 中最重要最强大的元素了。你可以让你比使用JDBC 调用结果集省掉90%的代码也可以让你做许多JDBC 不支持的事。现实上要写一个等同类似于交互的映射这样的复杂语句可能要上千行的代码。ResultMaps 的目的就是这样简单的语句而不需要多余的结果映射更多复杂的语句除了只要一些绝对必须的语句描述关系以外再也不需要其它的。 resultMap属性type为java实体类id为此resultMap的标识。    resultMap可以设置的映射 1. constructor – 用来将结果反射给一个实例化好的类的构造器 a) idArg – ID 参数将结果集标记为ID以方便全局调用b) arg –反射到构造器的通常结果 2. id – ID 结果将结果集标记为ID以方便全局调用 3. result – 反射到JavaBean 属性的普通结果 4. association – 复杂类型的结合多个结果合成的类型 a) nested result mappings – 几resultMap 自身嵌套关联也可以引用到一个其它上 5. collection –复杂类型集合a collection of complex types 6. nested result mappings – resultMap 的集合也可以引用到一个其它上 7. discriminator – 使用一个结果值以决定使用哪个resultMap a) case – 基本一些值的结果映射的case 情形 i. nested result mappings –一个case 情形本身就是一个结果映射因此也可以包括一些相同的元素也可以引用一个外部resultMap。     2.1.1 id、result id、result是最简单的映射id为主键映射result其他基本数据库表字段到实体类属性的映射。  最简单的例子   Xml代码   resultMap typeliming.student.manager.data.model.StudentEntity idstudentResultMap      id  propertystudentId        columnSTUDENT_ID javaTypeString jdbcTypeVARCHAR/      result propertystudentName       columnSTUDENT_NAME javaTypeString jdbcTypeVARCHAR/      result propertystudentSex        columnSTUDENT_SEX  javaTypeint jdbcTypeINTEGER/      result propertystudentBirthday   columnSTUDENT_BIRTHDAY  javaTypeDate jdbcTypeDATE/      result propertystudentPhoto  columnSTUDENT_PHOTO javaTypebyte[] jdbcTypeBLOB typeHandlerorg.apache.ibatis.type.BlobTypeHandler /  /resultMap         id、result语句属性配置细节   属性 描述   property 需要映射到JavaBean 的属性名称。   column 数据表的列名或者标签别名。   javaType 一个完整的类名或者是一个类型别名。如果你匹配的是一个JavaBean那MyBatis 通常会自行检测到。然后如果你是要映射到一个HashMap那你需要指定javaType 要达到的目的。   jdbcType 数据表支持的类型列表。这个属性只在insert,update 或delete 的时候针对允许空的列有用。JDBC 需要这项但MyBatis 不需要。如果你是直接针对JDBC 编码且有允许空的列而你要指定这项。   typeHandler 使用这个属性可以覆写类型处理器。这项值可以是一个完整的类名也可以是一个类型别名。       支持的JDBC类型       为了将来的引用MyBatis 支持下列JDBC 类型通过JdbcType 枚举BITFLOATCHARTIMESTAMPOTHERUNDEFINEDTINYINTREALVARCHARBINARYBLOBNVARCHARSMALLINTDOUBLELONGVARCHARVARBINARYCLOBNCHARINTEGERNUMERICDATELONGVARBINARYBOOLEANNCLOBBIGINTDECIMALTIMENULLCURSOR     2.1.2 constructor         我们使用id、result时候需要定义java实体类的属性映射到数据库表的字段上。这个时候是使用JavaBean实现的。当然我们也可以使用实体类的构造方法来实现值的映射这个时候是通过构造方法参数的书写的顺序来进行赋值的。        使用construcotr功能有限例如使用collection级联查询。        上面使用id、result实现的功能就可以改为 Xml代码   resultMap typeStudentEntity idstudentResultMap       constructor          idArg javaTypeString columnSTUDENT_ID/          arg javaTypeString columnSTUDENT_NAME/          arg javaTypeString columnSTUDENT_SEX/          arg javaTypeDate columnSTUDENT_BIRTHDAY/      /constructor  /resultMap             当然我们需要定义StudentEntity实体类的构造方法 Java代码   public StudentEntity(String studentID, String studentName, String studentSex, Date studentBirthday){      this.studentID  studentID;      this.studentName  studentName;      this.studentSex  studentSex;      this.studentBirthday  studentBirthday;  }           2.1.3 association联合 联合元素用来处理“一对一”的关系。需要指定映射的Java实体类的属性属性的javaType通常MyBatis 自己会识别。对应的数据库表的列名称。如果想覆写的话返回结果的值需要指定typeHandler。不同情况需要告诉MyBatis 如何加载一个联合。MyBatis 可以用两种方式加载 1. select: 执行一个其它映射的SQL 语句返回一个Java实体类型。较灵活2. resultsMap: 使用一个嵌套的结果映射来处理通过join查询结果集映射成Java实体类型。   例如一个班级对应一个班主任。 首先定义好班级中的班主任属性 Java代码   private TeacherEntity teacherEntity;       2.1.3.1使用select实现联合  例班级实体类中有班主任的属性通过联合在得到一个班级实体时同时映射出班主任实体。  这样可以直接复用在TeacherMapper.xml文件中定义好的查询teacher根据其ID的select语句。而且不需要修改写好的SQL语句只需要直接修改resultMap即可。  ClassMapper.xml文件部分内容 Xml代码   resultMap typeClassEntity idclassResultMap      id propertyclassID columnCLASS_ID /      result propertyclassName columnCLASS_NAME /      result propertyclassYear columnCLASS_YEAR /      association propertyteacherEntity columnTEACHER_ID selectgetTeacher/  /resultMap    select idgetClassByID parameterTypeString resultMapclassResultMap      SELECT * FROM CLASS_TBL CT      WHERE CT.CLASS_ID  #{classID};  /select        TeacherMapper.xml文件部分内容 Xml代码   resultMap typeTeacherEntity idteacherResultMap      id propertyteacherID columnTEACHER_ID /      result propertyteacherName columnTEACHER_NAME /      result propertyteacherSex columnTEACHER_SEX /      result propertyteacherBirthday columnTEACHER_BIRTHDAY/      result propertyworkDate columnWORK_DATE/      result propertyprofessional columnPROFESSIONAL/  /resultMap    select idgetTeacher parameterTypeString  resultMapteacherResultMap      SELECT *        FROM TEACHER_TBL TT       WHERE TT.TEACHER_ID  #{teacherID}  /select         2.1.3.2使用resultMap实现联合  与上面同样的功能查询班级同时查询器班主任。需在association中添加resultMap在teacher的xml文件中定义好的新写sql查询班级表left join教师表不需要teacher的select。  修改ClassMapper.xml文件部分内容 Xml代码   resultMap typeClassEntity idclassResultMap      id propertyclassID columnCLASS_ID /      result propertyclassName columnCLASS_NAME /      result propertyclassYear columnCLASS_YEAR /      association propertyteacherEntity columnTEACHER_ID  resultMapteacherResultMap/  /resultMap    select idgetClassAndTeacher parameterTypeString resultMapclassResultMap      SELECT *        FROM CLASS_TBL CT LEFT JOIN TEACHER_TBL TT ON CT.TEACHER_ID  TT.TEACHER_ID       WHERE CT.CLASS_ID  #{classID};  /select    其中的teacherResultMap请见上面TeacherMapper.xml文件部分内容中。     2.1.4 collection聚集 聚集元素用来处理“一对多”的关系。需要指定映射的Java实体类的属性属性的javaType一般为ArrayList列表中对象的类型ofTypeJava实体类对应的数据库表的列名称不同情况需要告诉MyBatis 如何加载一个聚集。MyBatis 可以用两种方式加载 1. select: 执行一个其它映射的SQL 语句返回一个Java实体类型。较灵活2. resultsMap: 使用一个嵌套的结果映射来处理通过join查询结果集映射成Java实体类型。   例如一个班级有多个学生。首先定义班级中的学生列表属性 Java代码   private ListStudentEntity studentList;       2.1.4.1使用select实现聚集  用法和联合很类似区别在于这是一对多所以一般映射过来的都是列表。所以这里需要 定义javaType为ArrayList还需要定义列表中对象的类型ofType以及必须设置的select的语句名称需要注意的是这里的查询 student的select语句条件必须是外键classID。   ClassMapper.xml文件部分内容 Xml代码   resultMap typeClassEntity idclassResultMap      id propertyclassID columnCLASS_ID /      result propertyclassName columnCLASS_NAME /      result propertyclassYear columnCLASS_YEAR /      association propertyteacherEntity columnTEACHER_ID  selectgetTeacher/      collection propertystudentList columnCLASS_ID javaTypeArrayList ofTypeStudentEntity selectgetStudentByClassID/  /resultMap    select idgetClassByID parameterTypeString resultMapclassResultMap      SELECT * FROM CLASS_TBL CT      WHERE CT.CLASS_ID  #{classID};  /select         StudentMapper.xml文件部分内容 Xml代码   !-- java属性数据库表字段之间的映射定义 --  resultMap typeStudentEntity idstudentResultMap      id propertystudentID columnSTUDENT_ID /      result propertystudentName columnSTUDENT_NAME /      result propertystudentSex columnSTUDENT_SEX /      result propertystudentBirthday columnSTUDENT_BIRTHDAY /  /resultMap    !-- 查询学生list根据班级id --  select idgetStudentByClassID parameterTypeString resultMapstudentResultMap      include refidselectStudentAll /      WHERE ST.CLASS_ID  #{classID}  /select         2.1.4.2使用resultMap实现聚集  使用resultMap就需要重写一个sqlleft join学生表。 Xml代码   resultMap typeClassEntity idclassResultMap      id propertyclassID columnCLASS_ID /      result propertyclassName columnCLASS_NAME /      result propertyclassYear columnCLASS_YEAR /      association propertyteacherEntity columnTEACHER_ID  resultMapteacherResultMap/      collection propertystudentList columnCLASS_ID javaTypeArrayList ofTypeStudentEntity resultMapstudentResultMap/  /resultMap    select idgetClassAndTeacherStudent parameterTypeString resultMapclassResultMap      SELECT *        FROM CLASS_TBL CT             LEFT JOIN STUDENT_TBL ST                ON CT.CLASS_ID  ST.CLASS_ID             LEFT JOIN TEACHER_TBL TT                ON CT.TEACHER_ID  TT.TEACHER_ID        WHERE CT.CLASS_ID  #{classID};  /select    其中的teacherResultMap请见上面TeacherMapper.xml文件部分内容中。studentResultMap请见上面StudentMapper.xml文件部分内容中。   2.1.5discriminator鉴别器   有时一个单独的数据库查询也许返回很多不同但是希望有些关联数据类型的结果集。鉴别器元素就是被设计来处理这个情况的还有包括类的继承层次结构。鉴别器非常容易理解因为它的表现很像Java语言中的switch语句。 定义鉴别器指定了column和javaType属性。列是MyBatis查找比较值的地方。JavaType是需要被用来保证等价测试的合适类型尽管字符串在很多情形下都会有用。 下面这个例子为当classId为20000001时才映射classId属性。       Xml代码   resultMap typeliming.student.manager.data.model.StudentEntity idresultMap_studentEntity_discriminator      id  propertystudentId        columnSTUDENT_ID javaTypeString jdbcTypeVARCHAR/      result propertystudentName       columnSTUDENT_NAME javaTypeString jdbcTypeVARCHAR/      result propertystudentSex        columnSTUDENT_SEX  javaTypeint jdbcTypeINTEGER/      result propertystudentBirthday   columnSTUDENT_BIRTHDAY  javaTypeDate jdbcTypeDATE/      result propertystudentPhoto  columnSTUDENT_PHOTO javaTypebyte[] jdbcTypeBLOB typeHandlerorg.apache.ibatis.type.BlobTypeHandler /      result propertyplaceId           columnPLACE_ID javaTypeString jdbcTypeVARCHAR/      discriminator columnCLASS_ID javaTypeString jdbcTypeVARCHAR          case value20000001 resultTypeliming.student.manager.data.model.StudentEntity               result propertyclassId columnCLASS_ID javaTypeString jdbcTypeVARCHAR/          /case      /discriminator  /resultMap  转载于:https://www.cnblogs.com/charlexu/archive/2013/03/15/2961118.html
http://wiki.neutronadmin.com/news/114581/

相关文章:

  • 高质量网站外链平台捕鱼网站开发
  • 湖南中虹羽建设工程有限公司网站asp网站301
  • 站内搜索工具网页qq登录网址
  • 深圳网站建设现网站建设岗位将来有什么发展
  • 优化网站及商品排名怎么做宣城哪里做网站
  • 韩国网站如何切换中文郑州seo哪家好
  • 北海网站建设公司网站横幅怎么做
  • 江西省城乡建设厅网站广州专业的网站开发公司
  • 襄阳城乡建设局网站首页免费网站正能量app应用大全
  • 手机网站建设推广自己做的博客网站吗
  • 招商网站建设的必要性什么网站专门做自由行的
  • 钓鱼网站制作视频教程最近时政新闻10条
  • 扁平式网站淘宝网页版电脑版登录淘宝网
  • 网站域名空间管理东莞招聘网有哪些比较好
  • 网站建设公司哪家好 在线磐石网络nas服务器可以做网站吗
  • 徐州云建站模板织梦模板可以在wordpress用
  • 如何投诉做网站的公司建设部网站上查不到资质的企业
  • 外贸网站仿牌主机怎么找wordpress模板代码
  • 网站做权重的好处昆明响应式网站制作
  • 常州做网上废品收购网站做网站数据存在哪里
  • 一流的盐城网站建设室内设计师可以自学吗
  • 私人网站建设成本python在线观看
  • 国外做做网站怎么做网站dns加速
  • 兰州网站建设企业名录前端开发工具哪个好
  • 网站建设 创业网站建设投标书范本
  • 旅游网站开发系统分析app开发的价值
  • 手机登录网站后台网络营销托管服务商指的是
  • 怎样在工商局网站做公示深圳网络设计公司
  • 哪个网站可以做自己的网页刷粉网站推广快点
  • 图书管理系统网站开发个人律师网站模板