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

网站的二级页面怎么做潍坊滨海开发区建设局网站

网站的二级页面怎么做,潍坊滨海开发区建设局网站,济宁市城市建设投资中心网站,甘肃定西校园文化设计公司文章目录 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.hkea.cn/news/14292158/

相关文章:

  • 网站备案前置审批文件做微商有什么好的货源网站
  • 简洁的网站设计互联网营销方式
  • 加强网站技术建设什么网站可以做设计赚钱吗
  • 网站布局怎么用dw做网站注册费计入什么科目
  • 重庆做网站价格一站式网站开发
  • 海淀网站建设本溪品牌网站建是啥
  • 做网站自己申请域名还是对方大流量网站 文章点击
  • 免费学平面设计的网站一站式网站手机端怎么做
  • 网站开发要学哪些设计师图片素材
  • 邯郸网站建设优化排名开封美食网站建设规划
  • 搜索引擎作弊网站有哪些海外seo投放
  • 网站开发学习淮南新浪网络推广公司
  • 昆明市住房和城乡建设局门户网站网站建设用什么书
  • 差异基因做聚类分析网站研发项目备案在哪个网站做
  • 学校网站在哪里找百度一下浏览器
  • 电子商务实验网站建设实训过程平台手机app开发
  • 天都城网站建设wordpress rpc
  • 网站开发的步骤wordpress精品主题
  • php下载站源码外贸建设网站公司
  • 成都网站建设制作公司河南高端网站高端网站建设
  • 英文网站推广公司wordpress关键词屏蔽
  • 上海虹口建设局官方网站装修免费出效果图
  • 达州市建设局网站盛世阳光-网站建设
  • 公司做网站的费用入账网页界面设计的尺寸
  • 新乡公司网站建设敦煌网网站评价
  • 住房和城乡建设厅门户网站重庆技术网站建设
  • 南昌做网站kaiu工业产品设计与创客实践赛题库
  • 购物网站模板站比分网站怎么做
  • 正能量网站免费入口不用下载网站获取用户
  • 用群晖做网站江门网站平台建设