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

个人做电商网站icp搞笑网站模板

个人做电商网站icp,搞笑网站模板,wordpress 漫画主题,做文具的网站文章目录1 准备工作1.1 建表1.2 创建实体类1.3 引出一个问题方案1方案2方案32.完整代码项目结构EmpMapper接口Emp类SqlSessionUtils工具类EmpMapper.xmljdbc.propertieslog4j.xmlmybatis-config.xmlResultMapTest完整代码在后面 1 准备工作 1.1 建表 t_emp 添加测试数据 1.2 创建实体类 在src/main/java/com/rqs/mybatis/pojo下创建Emp类 Emp类 package com.rqs.mybatis.pojo;public class Emp {private Integer eid;private String empName;private Integer age;private String sex;private String email;public Integer getEid() {return eid;}public void setEid(Integer eid) {this.eid eid;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName empName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}public Emp() {}public Emp(Integer eid, String empName, Integer age, String sex, String email) {this.eid eid;this.empName empName;this.age age;this.sex sex;this.email email;}Overridepublic String toString() {return Emp{ eid eid , empName empName \ , age age , sex sex \ , email email \ };} }1.3 引出一个问题 在之前实现查询功能的时候用到的都是resultType来设置默认的映射关系要求字段名数据库表中的字段名和属性名java类中的属性名保持一致例如下图所示字段名和属性名是一致的。 字段名 属性名 但是在本例中出现了字段名和属性名不一致的情况如下图 字段名要求单词与单词之间使用下划线连接 属性名单词与单词之间命名遵循驼峰原则 如下所示在进行查询操作的时候由于无法映射导致empName的查询结果为空 既然字段名和属性名不一致了那么该如何处理映射关系呢 方案1 在EmpMapper.xml的SQL语句中为字段起别名保持和属性名的一致 结果如下所示 方案2 在核心配置文件mybatis-config.xml中设置全局配置将_自动映射为驼峰 !--设置MyBatis的全局配置--!--将_自动映射为驼峰 --settingssetting namemapUnderscoreToCamelCase valuetrue//settings注意MyBatis核心配置文件标签的设置顺序要把settings放在properties和typeAlliases中间 properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?测试结果 方案3 在核心配置文件mybatis-config.xml中通过resultMap逐一设置自定义的映射关系 !--resultMap设置自定义映射关系id唯一标识不能重复type设置映射关系中的实体类类型子标签id专门用来设置主键的映射关系result设置普通字段的映射关系属性property设置映射关系中的属性名必须是type属性所设置的实体类类型中的属性名column设置映射关系中的字段名必须是sql语句查询出的字段名要注意1.属性名和字段名一致的话也要写property和column2.要在select标签中添加resultMap对应resultMap的id--resultMap idempResultMap typeEmpid propertyeid columneid/idresult propertyempName columnemp_name/resultresult propertyage columnage/resultresult propertysex columnsex/resultresult propertyemail columnemail/result/resultMap!--ListEmp getAllEmp();--select idgetAllEmp resultMapempResultMapselect * from t_emp/select测试结果 2.完整代码 项目结构 EmpMapper接口 package com.rqs.mybatis.mapper;import com.rqs.mybatis.pojo.Emp; import org.apache.ibatis.annotations.Param;import java.util.List;public interface EmpMapper {/*** 查询所有的员工信息*/ListEmp getAllEmp();} Emp类 package com.rqs.mybatis.pojo;public class Emp {private Integer eid;private String empName;private Integer age;private String sex;private String email;public Integer getEid() {return eid;}public void setEid(Integer eid) {this.eid eid;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName empName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}public Emp() {}public Emp(Integer eid, String empName, Integer age, String sex, String email) {this.eid eid;this.empName empName;this.age age;this.sex sex;this.email email;}Overridepublic String toString() {return Emp{ eid eid , empName empName \ , age age , sex sex \ , email email \ };} } SqlSessionUtils工具类 package com.rqs.mybatis.utils;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream;public class SqlSessionUtils {public static SqlSession getSqlSession() {SqlSession sqlSession null;try {InputStream inputStream Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);sqlSession sqlSessionFactory.openSession(true);} catch (IOException e) {e.printStackTrace();}return sqlSession;} } EmpMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.rqs.mybatis.mapper.EmpMapper!--resultMap设置自定义映射关系id唯一标识不能重复type设置映射关系中的实体类类型子标签id设置主键的映射关系result设置普通字段的映射关系属性property设置映射关系中的属性名必须是type属性所设置的实体类类型中的属性名column设置映射关系中的字段名必须是sql语句查询出的字段名--resultMap idempResultMap typeEmpid propertyeid columneid/idresult propertyempName columnemp_name/resultresult propertyage columnage/resultresult propertysex columnsex/resultresult propertyemail columnemail/result/resultMap!--ListEmp getAllEmp();--select idgetAllEmp resultMapempResultMapselect * from t_emp/selectselect idgetAllEmpOld resultTypeEmp!--select eid,emp_name empName,age,sex,email from t_emp--select * from t_emp/select/mapperjdbc.properties jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/mybatis jdbc.usernameroot jdbc.passwordrootlog4j.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE log4j:configuration SYSTEM log4j.dtd log4j:configuration xmlns:log4jhttp://jakarta.apache.org/log4j/appender nameSTDOUT classorg.apache.log4j.ConsoleAppenderparam nameEncoding valueUTF-8 /layout classorg.apache.log4j.PatternLayoutparam nameConversionPattern value%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n //layout/appenderlogger namejava.sqllevel valuedebug //loggerlogger nameorg.apache.ibatislevel valueinfo //loggerrootlevel valuedebug /appender-ref refSTDOUT //root /log4j:configuration mybatis-config.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configuration!-- MyBatis核心配置文件标签的顺序properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--properties resourcejdbc.properties/properties!-- lt;!ndash;设置MyBatis的全局配置ndash;gt;settingssetting namemapUnderscoreToCamelCase valuetrue//settings--!--设置类型别名大小写不敏感。如果不设置alias则默认为类名大小写不敏感--typeAliases!--typeAlias: 设置某个类型的别名属性type 设置需要设置别名的类型alias 设置某个类型的别名如果不设置该属性那么该类型拥有默认的类名且不区分大小写--!--typeAlias typecom.rqs.mybatis.pojo.User aliasUser/typeAlias--!--推荐以包为单位将包下所有的类型设置默认的类型别名且不区分大小写--package namecom.rqs.mybatis.pojo//typeAliases!--设置连接数据库的环境--!--每一个environment都是具体连接数据库的环境--!--一个项目中只会用一个环境default用于使用默认使用的环境id表示连接数据库的环境的唯一标识 不能重复--environments defaultdevelopment!--transactionmanager:设置事务管理方式属性typeJDBC/MANAGEDJDBC: 在当前环境中执行sql时使用的时jdbc原声的事务管理方式需要手动的提交和回滚事务MANAGED被管理例如Spring--environment iddevelopmenttransactionManager typeJDBC/!-- dataSource配置数据源属性type设置数据源的类型typePOOLED:表示使用数据库连接池缓存数据库连接UNPOOLED表示不使用数据库连接池JNDI表示使用上下文中的数据源--dataSource typePOOLED!--设置连接数据库的驱动--property namedriver value${jdbc.driver}/!--设置连接地址--property nameurl value${jdbc.url}/!--注意如果在建sql表单的时候选了字符集如utf8这里的value要改成valuejdbc:mysql://localhost:3306/mybatis?characterEncodingutf8--!--用户名和密码--property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environments!--引入映射文件--mappers!--推荐以包为单位引入映射文件要求1。 mapper接口所在的包要和映射文件所在的包一致2。 mapper接口要和映射文件的名字一致--!-- com.rqs.mybatis.mapper创建包时要用/分隔这样才是目录否则这整一个就只是文件夹名字而已--package namecom.rqs.mybatis.mapper//mappers/configuration ResultMapTest package com.rqs.mybatis.test;import com.rqs.mybatis.mapper.EmpMapper; import com.rqs.mybatis.pojo.Emp; import com.rqs.mybatis.utils.SqlSessionUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test;import java.util.List;public class ResultMapTest {/*** 解决字段名和属性名不一致的情况* a为字段起别名保持和属性名的一致* b设置全局配置将_自动映射为驼峰* setting namemapUnderscoreToCamelCase valuetrue/* c通过resultMap设置自定义的映射关系* resultMap idempResultMap typeEmp* id propertyeid columneid/id* result propertyempName columnemp_name/result* result propertyage columnage/result* result propertysex columnsex/result* result propertyemail columnemail/result* /resultMap*/Testpublic void testGetAllEmp(){SqlSession sqlSession SqlSessionUtils.getSqlSession();EmpMapper mapper sqlSession.getMapper(EmpMapper.class);ListEmp list mapper.getAllEmp();list.forEach(emp - System.out.println(emp));}}
http://www.yingshimen.cn/news/23724/

相关文章:

  • 广州公司建站天津建设工程信息网络
  • 在线设计logo的网站房价成交数据官网查询
  • 网站建设的开发方式知乎网站二级域名解析
  • 建设机械网站怎么做网站的广告
  • 沈阳网站制作方法微信小程序超市平台
  • 铜川泰士公馆建设网站网站开发与维护介绍
  • 谷歌上怎样做网站网络公司起名
  • espcms易思企业网站管理系统破解seo移动端排名优化
  • 做服装行业网站国际论坛网站模板
  • 网站开发都用什么软件小米公司的网络营销工具
  • 网站图片比例重庆市建设工程信息网联系电话
  • 如何搭建钓鱼网站天津关键词排名提升
  • 网站在谷歌怎么做排名邯郸外贸网站建设
  • 网站免费建站o百度网站建设费用怎么做账
  • 寻乌建设局网站临夏网站建设公司
  • 网站制作问题 图片版权装饰公司办公室图片
  • 彩票销信 网站怎么做建设工程现行标准查询网站
  • 电商网站建设的内容cms系统首页
  • 网站的管理和维护互联网信息投诉平台入口
  • 成都企业网站建设那家好十大手游平台app排行榜
  • 免费带后台的网站模板淘宝流量助手平台
  • 天津建设工程协会网站蛋糕行业网站建设方案
  • 长春做网站推广的公司青岛建手机网站公司
  • 最简单的网站设计大批量刷关键词排名软件
  • 企业做网站的必要性dw软件可以做哪些网站
  • 企业网站建设 骆诗设计网站建设的整体流程
  • 公司如何做网站一般多少钱自己怎么做网站卖东西
  • 山东省城市建设管理协会网站企业网站建站流程
  • cnzz统计代码如何添加到网站上去钓鱼网站建设
  • 手机版网站怎么上传南阳优化网站排名