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

php 企业网站开发实例萝岗手机网站建设

php 企业网站开发实例,萝岗手机网站建设,平面设计网上接单赚钱,北京到安阳大巴车几个小时jpa 参数绑定布尔类型ANSI SQL 1999标准引入了BOOLEAN数据类型#xff08;尽管遗憾的是仅作为可选功能#xff09;。 但是到目前为止#xff0c;大多数主要的数据库系统仍未实现它。 结果#xff0c;布尔列以各种方式实现。 例如#xff0c;包含“ Y”或“ N”的CHAR列尽管遗憾的是仅作为可选功能。 但是到目前为止大多数主要的数据库系统仍未实现它。 结果布尔列以各种方式实现。 例如包含“ Y”或“ N”的CHAR列或使用BIT列。 随后JPA无法提供将实体的布尔字段映射到数据库列的标准化方法。 Hibernate为使用包含“ Y”或“ N”字符的CHAR1列的布尔实现提供了一个自定义YesNoType。 但是对于其他实践您基本上必须提供自己的解决方案。 幸运的是Hibernate提供了创建自己的自定义UserType的可能性。 在此博客条目中我将提供一个这样的自定义布尔UserType的示例。 最近我遇到了一个荷兰传统数据库架构其中“ Y”表示“是”和“ N”表示“否”分别由“ J”“ ja”和“ N”“ nee”表示 分别。 这排除了使用Hibernate的YesNoType。 更复杂的是其中有些列使用CHAR1另一些使用带有填充空间的CHAR2–不要问为什么 因此我最终编写了一个自定义UserType使我基本上可以转换以下内容… 起点 Entity Table(name FOO_BAR) public class FooBar implements Serializable {Column(name FOO_ INDICATOR)private String fooIndicator;Column(name BAR_ INDICATOR, length 2)private String barIndicator;// … } 进入... 理想情况 Entity Table(name FOO_BAR) TypeDefs({TypeDef(name JaNeeType.NAME, typeClass JaNeeType.class) }) public class FooBar implements Serializable {Column(name FOO_INDICATOR)Type(type JaNeeType.NAME)private Boolean fooIndicator;Column(name BAR_INDICATOR, length 2)Type(type JaNeeType.NAME, parameters { Parameter(name length, value 2) })Type(type JaNeeType.NAME)private Boolean barIndicator;// … } 编码自定义类型被证明是相当简单的。 我只需要实现org.hibernate.usertype.UserType接口。 要处理不同的列长度需要添加“ length”参数这需要实现第二个接口org.hibernate.usertype.ParameterizedType。 下面给出的是我所做的最终结果。 JaNeeType package it.jdev.examples.persistence.hibernate;import java.io.Serializable; import java.lang.invoke.MethodHandles; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.Properties;import org.apache.commons.lang3.StringUtils; import org.hibernate.HibernateException; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.usertype.ParameterizedType; import org.hibernate.usertype.UserType; import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** A type that maps between {link java.sql.Types#VARCHAR CHAR(1) or CHAR(2)} and {link Boolean} (using J and N ).* p* Optionally, a parameter length can be set that will result in right-padding with spaces up to the* specified length.*/ public class JaNeeType implements UserType, ParameterizedType {public static final String NAME ja_nee;private static final Logger LOGGER LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());private int length 1;Overridepublic int[] sqlTypes() {return new int[] { Types.VARCHAR };}SuppressWarnings(rawtypes)Overridepublic Class returnedClass() {return Boolean.class;}Overridepublic boolean equals(final Object x, final Object y) throws HibernateException {if (x null || y null) {return false;} else {return x.equals(y);}}Overridepublic int hashCode(final Object x) throws HibernateException {assert (x ! null);return x.hashCode();}Overridepublic Object nullSafeGet(final ResultSet rs, final String[] names, final SessionImplementor session, final Object owner) throws HibernateException, SQLException {final String s rs.getString(names[0]);if (StringUtils.isBlank(s)) {return false;}if (J.equalsIgnoreCase(s.trim())) {return Boolean.TRUE;}return Boolean.FALSE;}Overridepublic void nullSafeSet(final PreparedStatement st, final Object value, final int index, final SessionImplementor session) throws HibernateException, SQLException {String s Boolean.TRUE.equals(value) ? J : N;if (this.length 1) {s StringUtils.rightPad(s, this.length);}st.setString(index, s);}Overridepublic Object deepCopy(final Object value) throws HibernateException {return value;}Overridepublic boolean isMutable() {return true;}Overridepublic Serializable disassemble(final Object value) throws HibernateException {return (Serializable) value;}Overridepublic Object assemble(final Serializable cached, final Object owner) throws HibernateException {return cached;}Overridepublic Object replace(final Object original, final Object target, final Object owner) throws HibernateException {return original;}Overridepublic void setParameterValues(final Properties parameters) {if (parameters ! null !parameters.isEmpty()) {final String lengthString parameters.getProperty(length);try {if (StringUtils.isNotBlank(lengthString)) {this.length Integer.parseInt(lengthString);}} catch (final NumberFormatException e) {LOGGER.error(Error parsing int lengthString, e);}}}}翻译自: https://www.javacodegeeks.com/2015/06/custom-boolean-user-type-with-hibernate-jpa.htmljpa 参数绑定布尔类型
http://www.sadfv.cn/news/324580/

相关文章:

  • 仿牌网站安全石家庄做网站排名公司
  • 自建商城网站有哪些平台徐州市徐州市城乡建设局网站首页
  • 网站内容策略东莞做网站哪家最好
  • 网站开发实例视频高端视觉网站
  • 网站备案名称更换电子商务网站开发人员要求
  • 网站图片怎么优化什么是网站的空间
  • 金光华网站建设网站模版怎么上传到空间
  • 只做自己网站网站在线开发
  • 芜湖做网站电商设计工资多少钱一个月
  • 建一个网站需要什么资料收录好的网站
  • 免费公司网站模版ios开发者账号有什么用
  • 网站建设与维护实训wordpress home index
  • 制作网页的过程上海搜索排名优化
  • 赣州网站开发公司it类网站
  • 延庆精神文明建设的门户网站汕头网站建设制作方案
  • 怎样策划一个营销型网站重庆网站seo好不好
  • 免费建网站 高校社团官方网站做不规则几何图形的网站
  • 网络营销图片威海网站优化
  • 网站建设主要问题及建议嘉峪关外包网络推广
  • 如何做话费卡回收网站wangz网站建设
  • wordpress表单 慢合肥网站seo费用
  • 深圳做网站网络营销公司排名专业团队表情包张伟
  • 怎样提交网站百度收录做外贸采购都是用什么网站
  • 做淘宝详情的网站深圳美容网站建
  • 人力资源公司网站建设wordpress 餐饮
  • 外网设计网站大型电商网站开发方案
  • 云南省住房和建设执业资格注册中心网站零售管理系统哪个软件好
  • 资阳网站推广阿里巴巴网站开发是谁
  • 做一的同志小说网站有哪些晋江怎么交换友情链接
  • 网站的信息容量网站设计师和网页设计师的区别