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

网站的二级页面怎么做闵行区seo快速排名优化哪里好

网站的二级页面怎么做,闵行区seo快速排名优化哪里好,旅游电子商务网站建设规划方案,徐州制作网站软件文章目录 1. NONE关闭自动映射2. PARTIAL非嵌套结果映射3. FULL全自动映射 众所周知mybatis中标签 resultMap 是用来处理数据库库字段与java对象属性映射的。通常java对象属性#xff08;驼峰格式#xff09;与数据库表字段#xff08;下划线形式#xff09;是一 一… 文章目录 1. NONE关闭自动映射2. PARTIAL非嵌套结果映射3. FULL全自动映射 众所周知mybatis中标签 resultMap 是用来处理数据库库字段与java对象属性映射的。通常java对象属性驼峰格式与数据库表字段下划线形式是一 一对应的情况下是不用定义 resultMap 标签的是因为数据库表字段会自动映射到java对象的对应属性上的比如数据库表一个字段为USER_NAMEjava对象对应的属性为userName默认情况下会自动映射的。 数据库表字段为什么会和java对象属性自动映射的什么情况下会自动映射什么情况下不会自动映射实现这种自动映射行为就是通过 settings 标签下的autoMappingBehavior属性控制的。 settingssetting nameautoMappingBehavior valuePARTIAL//settingsautoMappingBehavior指定 MyBatis 应如何自动映射列到字段或属性。 该属性有3种取值NONE, PARTIAL, FULL, NONE 表示关闭自动映射PARTIAL 只会自动映射没有定义嵌套结果映射的字段。 FULL 会自动映射任何复杂的结果集无论是否嵌套。如不配置模式是PARTIAL部分映射的。下面分别看下三种情况是如何映射的 1. NONE关闭自动映射 关闭自动映射后数据库表字段就不会自动映射到java对象属性中此时就得自定义 resultMap 。 下面以查询用户信息为例数据库表为USER对应java类为User package com.lzj.bean; public class User {private int id;private String name;private int age;//省略get/set/toString }对应数据库表USER为 mybatis配置文件中 settings 配置如下所示 settings!--设置打印日志工具--setting namelogImpl valueSTDOUT_LOGGING/--关闭自动映射--setting nameautoMappingBehavior valueNONE//settingsmapper文件对应如下所示 select idselectOne parameterTypeint resultTypecom.lzj.bean.Userselect * from user where id#{id} /select然后通过如下案例执行该mapper对应的SQL public void sqlSessionTest(){SqlSessionFactory factory mybatisUtil.getFactory();SqlSession sqlSession factory.openSession(true); //true表示自动提交ListObject list sqlSession.selectList(com.lzj.dao.UserDao.selectOne, 2);System.out.println(输出结果 list.get(0)); }输出结果如下所示发现该SQL命中了数据库中id2的一条数据但是没有映射到user对象上导致打印出的user对象为null。 Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Cache Hit Ratio [com.lzj.dao.UserDao]: 0.0 Opening JDBC Connection Created connection 671187578.Preparing: select * from user where id? Parameters: 2(Integer)Columns: id, name, ageRow: 2, xiaoli, 26Total: 1 输出结果null那么在关闭自动映射的情况下如何把查到的数据库表数据映射到java对象user中呢可以通过下面自定resultMap标签进行手动映射把mapper文件改成如下方式 resultMap iduserResultMap typecom.lzj.bean.Userresult propertyid columnID/resultresult propertyname columnNAME/resultresult propertyage columnAGE/result/resultMapselect idselectOne parameterTypeint resultMapuserResultMapselect * from user where id#{id}/select然后再执行上述案例输出结果如下所示打印出的user对象已有值说明数据库表中数据映射到了java对象user中。 Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Cache Hit Ratio [com.lzj.dao.UserDao]: 0.0 Opening JDBC Connection Created connection 953253248.Preparing: select * from user where id? Parameters: 2(Integer)Columns: id, name, ageRow: 2, xiaoli, 26Total: 1 输出结果User{id2, namexiaoli, age26}2. PARTIAL非嵌套结果映射 PARTIAL 只会自动映射没有定义嵌套结果映射的字段。什么意思呢不同于上面案例一个库表对应一个简单的java对象如果两个库表对应一个嵌套的java对象如何进行映射的呢 比如查询用户名下的车辆对应的User类为 package com.lzj.bean;import java.util.List;public class User {private int id;private String name;private int age;private ListCar cars;//省略get/set/toString方法 }对应的Car类为 package com.lzj.bean; public class Car {private String name;private String brand;//省略get/set/toString方法 }数据库表USER如下所示 数据库表CAR如下所示 mybatis的配置文件中setting标签改为如下配置 settingssetting namelogImpl valueSTDOUT_LOGGING/setting nameautoMappingBehavior valuePARTIAL//settingsmapper文件改为如下所示 select idselectOne parameterTypeint resultMapuserResultMapselect * from user where id#{id} /select然后运行下面demo public void sqlSessionTest2(){SqlSessionFactory factory mybatisUtil.getFactory();SqlSession sqlSession factory.openSession(true); //true表示自动提交ListObject list sqlSession.selectList(com.lzj.dao.UserDao.select2, 2);System.out.println(输出结果 list.get(0)); }输出结果如下所示输出的user对象中id、name、age都有值唯独cars没有值说明mybatis只自动映射没有定义嵌套结果映射的字段只映射了user对象中最外层的属性的值没有映射嵌套的CAR数据库表中数据到cars对象中。 Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Cache Hit Ratio [com.lzj.dao.UserDao]: 0.0 Opening JDBC Connection Created connection 140778365.Preparing: select u.id,u.name,u.age,c.name,c.brand from user u, car c where u.id? Parameters: 2(Integer)Columns: id, name, age, name, brandRow: 2, xiaoli, 26, xiaoli, BYDTotal: 1 输出结果User{id2, namexiaoli, age26, carsnull}那么这种情况下如何把CAR表中数据映射到嵌套的对象cars中呢也是通过resultMap进行自定义映射mapper改为如下方式 resultMap iduserResultMap2 typecom.lzj.bean.User!--由于设置的是非嵌套自动映射库表USER中数据会自动映射到user对象的id、name、age上所以此处没有再自定义映射只指定CAR表中字段数据是如何映射到cars上面的就可以了。--collection propertycars columnNAME ofTypecom.lzj.bean.Carresult propertyname columnNAME/resultresult propertybrand columnBRAND/result/collection /resultMapselect idselect2 resultMapuserResultMap2select u.id,u.name,u.age,c.name,c.brand from user u, car c where u.id#{id} /select然后重新执行上面demo案例结果如下所示发现user对象中嵌套的cars对象中属性也有值了映射成功。 Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Cache Hit Ratio [com.lzj.dao.UserDao]: 0.0 Opening JDBC Connection Created connection 77215921.Preparing: select u.id,u.name,u.age,c.name,c.brand from user u, car c where u.id? Parameters: 2(Integer)Columns: id, name, age, name, brandRow: 2, xiaoli, 26, xiaoli, BYDTotal: 1 输出结果User{id0, namenull, age0, cars[Car{namexiaoli, brandBYD}]}3. FULL全自动映射 FULL 会自动映射任何复杂的结果集无论是否嵌套。 还是以上面嵌套映射的为例把 settings 配置修改为如下所示 settingssetting namelogImpl valueSTDOUT_LOGGING/setting nameautoMappingBehavior valueFULL//settingsmapper文件修改为如下所示直接返回user对象没有设置resultMap自定义映射 select idselect3 resultTypecom.lzj.bean.Userselect u.id,u.name,u.age,c.name,c.brand from user u, car c where u.id#{id} /select执行上面案例结果输出显示即使没有配置resultMap自定义映射mybatis自动的进行了嵌套结果的映射 Logging initialized using class org.apache.ibatis.logging.stdout.StdOutImpl adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Cache Hit Ratio [com.lzj.dao.UserDao]: 0.0 Opening JDBC Connection Created connection 520082748.Preparing: select u.id,u.name,u.age,c.name,c.brand from user u, car c where u.id? Parameters: 2(Integer)Columns: id, name, age, name, brandRow: 2, xiaoli, 26, xiaoli, BYDTotal: 1 输出结果User{id2, namenull, age26, cars[Car{namexiaoli, brandBYD}]}
http://www.dnsts.com.cn/news/103276.html

相关文章:

  • windows7建设网站网页设计模板html代码怎么学
  • 网站的速度诊断怎么做网络推广优化招聘
  • 网站飘落怎么做礼品兑换网站怎么做
  • 有了域名建设网站韩国优秀网站设计
  • 子商务网站建设的一般流程软文标题和内容
  • 个人建设网站流程图公司在百度做网站找谁
  • 网站备案所需材料专业宣传片制作拍摄公司
  • 免费手机建网站平台关于seo关键词选择有哪些方法
  • 网站设计说明书800字店铺设计用什么软件
  • 北京模板网站建设全包Wordpress 标签无用
  • 网站建设的技术wordpress随机文章代码
  • 加拿大pc网站搭建好的网站设计作品
  • 做网站销售有前景wordpress搜索不了中文linux
  • 有没有做英语题的网站中国营销策划第一人
  • 网站开发项目的需求分析建筑服务网站企业
  • 网站有冒号怎么打开模版之家
  • 做免费嗳暧视频网站视频生成链接网站
  • 可以在手机建网站的家具东莞网站建设技术支持
  • 中国建设银行网上银行官方网站wordpress 煎蛋网插件
  • 锦州网站seo网站鼠标悬停动态效果代码
  • 扬州品牌网站设计做贸易 公司网站放哪里
  • 小米商城网站建设哪有培训网站开发
  • 现在网站开发模式帝国cms地方门户网站模板
  • 建网站有多少种方式wordpress外链自动保存
  • 网站建设 化工通辽网站建设tlyltd
  • 三网合一网站模板郑州百度推广开户
  • 做asp网站需要的实验报告单免费网页代理的推荐
  • 网站的规划与建设课程设计如何免费做一个网站攻略
  • 口碑好的南京网站建设汕头澄海邮编
  • 用自己的电脑建设网站php网站开发背景