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

南昌做网站公司有哪些在线公司网站查询

南昌做网站公司有哪些,在线公司网站查询,专门做娱乐场所的设计网站,媒体网站推广方法From: https://blog.csdn.net/fighterandknight/article/details/51520595 前言 在上一篇博客#xff0c;mybatis枚举自动转换实现#xff0c;已经介绍自动转换的实现步骤#xff0c;并通过例子告诉大家如何实现枚举的自动转换了。 那么在博客的最后想到#xff0c;定义一…From: https://blog.csdn.net/fighterandknight/article/details/51520595 前言 在上一篇博客mybatis枚举自动转换实现已经介绍自动转换的实现步骤并通过例子告诉大家如何实现枚举的自动转换了。 那么在博客的最后想到定义一个万能的枚举转换处理器具体怎么实现呢相信大神们也应该有思路了使用泛型实现没错就是使用泛型实现具体请看下面例子。 mybatis万能枚举转换处理器 定义枚举接口 为什么要定义枚举的接口呢定义接口的好处其实主要目的是为了在万能枚举转换器中方便泛型的使用而且还可以规范枚举类的实现。 package net.itaem.less;           /**      * author Fighter168      */     public interface BaseEnumE extends Enum?, T {         public T getValue();         public String getDisplayName();     } 实现枚举接口定义枚举 实现BaseEnum接口定义PersonType枚举 package net.itaem.less;           import java.util.HashMap;     import java.util.Map;           /**      * author Fighter168      */     public enum PersonType implements BaseEnumPersonType, String{         student(1,学生),         teacher(2,教师);                  private String value;         private String displayName;                  static MapString,PersonType enumMapnew HashMapString, PersonType();         static{             for(PersonType type:PersonType.values()){                 enumMap.put(type.getValue(), type);             }         }                  private PersonType(String value,String displayName) {              this.valuevalue;              this.displayNamedisplayName;         }                  public String getValue() {             return value;         }         public void setValue(String value) {             this.value value;         }         public String getDisplayName() {             return displayName;         }         public void setDisplayName(String displayName) {             this.displayName displayName;         }                  public static PersonType getEnum(String value) {             return enumMap.get(value);         }     } 定义万能枚举转换处理器 package net.itaem.handler;           import java.sql.CallableStatement;     import java.sql.PreparedStatement;     import java.sql.ResultSet;     import java.sql.SQLException;           import net.itaem.less.BaseEnum;           import org.apache.ibatis.type.BaseTypeHandler;     import org.apache.ibatis.type.JdbcType;           /**      * author Fighter168      */     public final class UniversalEnumHandlerE extends BaseEnum extends BaseTypeHandlerE {               private ClassE type;         private E [] enums;                  /**          * 设置配置文件设置的转换类以及枚举类内容供其他方法更便捷高效的实现          * param type 配置文件中设置的转换类          */         public UniversalEnumHandler(ClassE type) {             if (type null)                 throw new IllegalArgumentException(Type argument cannot be null);             this.type type;             this.enums type.getEnumConstants();             if (this.enums null)                 throw new IllegalArgumentException(type.getSimpleName()                         does not represent an enum type.);         }                  Override         public void setNonNullParameter(PreparedStatement ps, int i, E parameter,                 JdbcType jdbcType) throws SQLException {             //BaseTypeHandler已经帮我们做了parameter的null判断             ps.setObject(i,(String)parameter.getValue(), jdbcType.TYPE_CODE);         }               Override         public E getNullableResult(ResultSet rs, String columnName)                 throws SQLException {             // 根据数据库存储类型决定获取类型本例子中数据库中存放String类型             String i rs.getString(columnName);             if (rs.wasNull()) {                 return null;             } else {                 // 根据数据库中的value值定位PersonType子类                 return locateEnumStatus(i);             }         }               Override         public E getNullableResult(ResultSet rs, int columnIndex)                 throws SQLException {             // 根据数据库存储类型决定获取类型本例子中数据库中存放String类型             String i rs.getString(columnIndex);             if (rs.wasNull()) {                 return null;             } else {                 // 根据数据库中的value值定位PersonType子类                 return locateEnumStatus(i);             }         }               Override         public E getNullableResult(CallableStatement cs, int columnIndex)                 throws SQLException {             // 根据数据库存储类型决定获取类型本例子中数据库中存放String类型             String i cs.getString(columnIndex);             if (cs.wasNull()) {                 return null;             } else {                 // 根据数据库中的value值定位PersonType子类                 return locateEnumStatus(i);             }         }                /**          * 枚举类型转换由于构造函数获取了枚举的子类enums让遍历更加高效快捷          * param value 数据库中存储的自定义value属性          * return value对应的枚举类          */         private E locateEnumStatus(String value) {             for(E e : enums) {                 if(e.getValue().equals(value)) {                     return e;                 }             }             throw new IllegalArgumentException(未知的枚举类型 value ,请核对 type.getSimpleName());         }     } 测试            接下来我们就修改原来的例子上一篇博客的例子mybatis枚举自动转换实现只需修改typeHandler修改成 typeHandler handlernet.itaem.handler.UniversalHandler                 javaTypenet.itaem.less.PersonType jdbcTypeCHAR/ 然后我们再次运行测试用例会发现我们的查询得到的结果还是一样这样我们就不需要为每一个枚举创建一个Handler去自动转换数据库中的枚举了。 自动扫描枚举注册想法              做到这里或许我们又想了要是我们一个项目特别大有几十个甚至是上百个枚举呢那怎么办难道我要一个个在typeHandler里面去加加一百几十行个人觉得非常麻烦影响我们的开发速度so能不能实现我们想要的像扫描下枚举的所在的包目录就可以注册的枚举做自动转换呢具体怎么实现下篇博客我会教大家如何实现。
http://wiki.neutronadmin.com/news/261173/

相关文章:

  • 凯里网站设计制作网站入门
  • 建一个外贸网站要多少钱php怎么创建网站
  • 宁波制作网站公司携程做网站的流程
  • 餐饮系统网站建设利用店铺网站做灰色优化
  • 获取网站开发语言遵义工作网招聘信息网
  • 某公司网站建设策划网络结构设计
  • 东莞网站建设工作seo优化排名教程
  • 网站开发源码售卖合同c 网站开发需要学什么
  • 重庆建设网站公司登别的网站应怎么做
  • 嘉盛建设集团官方网站网页设计代码基础模板
  • 石家庄模板建站系统建筑工程造价网
  • 资金盘做网站万网官网域名注册多少钱
  • 郑州网站建设详细内容推荐网站建设方案ppt模板
  • 品牌网站设计步骤建设个人网站用到的技术
  • 多肉建设网站前的市场分析三只松鼠网站怎样做
  • 温州电商网站建设asp 企业网站
  • 那些做网站的那些软件都叫啥手机怎么制作图文广告
  • 云信网站建设莆田网站建设建站系统
  • 合川做网站宁波seo公司网站推广
  • 做网站撘框架注册公司费用流程
  • 官方网站welcomewordpress 3.7.1 漏洞
  • 网站内容不收录asp.net企业网站
  • 开一个网站需要多少钱哈尔滨商城网站建设
  • 中国网站优化公司厦门网站设计大概多少钱
  • 临西县建设网站品牌推广的方式有哪些
  • 衡阳网站定制自助建站平台源码
  • 平台类网站做多久手机下载工具app
  • 成都网站设计施工企业成本核算方法
  • 橫山区建设局网站程序定制开发
  • 舟山市规划建设局网站企业查询天眼查免费