用户自定义ID Generator的例子

转载 2004年07月16日 10:10:00

PO

package com.dsii.hibernate.po; 
public class Company { 
   private String id; 
   private String name; 
   private String year; 
   public Company() { } 
   public String getId() { return id; } 
   public void setId(String id) { this.id = id; } 
   public String getName() { return name; } 
   public void setName(String name) { this.name = name; } 
   public String getYear() { return year; } 
   public void setYear(String year) { this.year = year; } 
} 

XML

<?xml version="1.0"?> uid_table next_hi_value_column C 

Customized Id Generator

package com.dsii.hibernate.po; 
import java.io.Serializable; 
import java.sql.SQLException; 
import java.util.Properties; 
import net.sf.hibernate.HibernateException; 
import net.sf.hibernate.dialect.Dialect; 
import net.sf.hibernate.engine.SessionImplementor; 
import net.sf.hibernate.type.Type; 
import net.sf.hibernate.util.PropertiesHelper; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
import net.sf.hibernate.id.TableGenerator; 
public class CustomizedIdGenerator extends TableGenerator { 
   private String prefix; 
   private static final Log log = LogFactory.getLog(CustomizedIdGenerator.class); 
   public void configure(Type type, Properties params, Dialect d) { 
      super.configure(type, params, d); 
      prefix = params.getProperty("prefix") == null ? "Pre" : params.getProperty("prefix"); 
   } 
   public synchronized Serializable generate(SessionImplementor session, Object obj) throws SQLException, HibernateException { 
      Integer integer = (Integer)super.generate(session, obj); 
      return prefix+integer; } 
   } 

Bean

package com.dsii.hibernate.po; 
import net.sf.hibernate.*; 
import net.sf.hibernate.cfg.Configuration; 
import net.sf.hibernate.tool.hbm2ddl.SchemaExport; 
public class TestCompany { 
   private static SessionFactory _sessions = null; 
   static { 
      try { 
         Configuration cfg = new Configuration(); 
         cfg.addClass(Company.class); 
         SchemaExport dbExport = new SchemaExport(cfg); 
         dbExport.create(true, true); 
         _sessions = cfg.buildSessionFactory(); 
      } catch (MappingException e) { 
         e.printStackTrace(); 
      } catch (HibernateException e) { 
         e.printStackTrace(); 
      } 
   } 
public static void main(String[] args) throws HibernateException { 
   System.out.println("----------------begin"); 
   Company c1 = new Company(); 
   c1.setName("dsii"); 
   c1.setYear("2004");   
   Company c2 = new Company(); 
   c2.setName("dsii"); 
   c2.setYear("2004"); 
   Session session = _sessions.openSession(); 
   Transaction tx = null; 
   try { 
      tx = session.beginTransaction(); 
      session.save(c1); 
      session.save(c2); 
      tx.commit(); 
   } catch (HibernateException he) {
      if (tx != null) { tx.rollback(); } throw he; 
   } finally { session.close(); } 
   System.out.println("----------------end"); 
   } 
} 

mybatis-generator扩展教程系列 -- mapper xml文件增加自定义sql

今天我教大家如何在mapper.xml文件里增加我们自定义的sql节点,还是老规矩沿用之前的项目用例,如有看不懂的同学可以翻看下上几篇的教程1.打开IntrospectedTable.java找到en...
  • shadowsick
  • shadowsick
  • 2016年12月19日 09:52
  • 4717

Mybatis学习笔记九:自定义Generator Plugin

上一章中知道了如何使用Mybatis Generator Plugin自动生成Mapper、Model和相关配置文件。但是在实际使用情况中,可能会遇到不同的个性化需求,那么就需要Generator的自...
  • zsy3313422
  • zsy3313422
  • 2016年11月16日 19:36
  • 7376

通用 Mapper UUID 简单示例

通用 Mapper UUID 简单示例不可回写的 UUID通用 Mapper 中对 UUID 的用法主要提到了一种专有的写法,如下写法:@GeneratedValue(generator = "UUI...
  • isea533
  • isea533
  • 2016年11月02日 20:28
  • 6738

Windows Phone 用户和自定义控件例子程序

  • 2014年09月06日 03:43
  • 98KB
  • 下载

JAVA用户自定义事件监听完整例子

很多介绍用户自定义事件都没有例子,或是例子不全,下面写了一个完整的例子,并写入了注释以便参考,完整的实例源代码如下: package demo; import java.util.Even...
  • liupengfei123456
  • liupengfei123456
  • 2011年12月27日 15:23
  • 151

JAVA用户自定义事件监听完整例子

很多介绍用户自定义事件都没有例子,或是例子不全,下面写了一个完整的例子,并写入了注释以便参考,完整的实例源代码如下: package demo; import java.util.Even...
  • qq_26562641
  • qq_26562641
  • 2016年02月15日 11:30
  • 303

odoo10-report 引入自定义CSS inherit_id report.minimal_layout

  • 2017年11月22日 19:43
  • 6KB
  • 下载

一个简单的自定义ID 生成器IDGenerator

  • 2010年10月15日 09:40
  • 4KB
  • 下载

mybatis-generator自定义注释生成以及下面generatorConfig文件配置

项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人...
  • wwd0501
  • wwd0501
  • 2017年08月03日 13:51
  • 1112

Mybatis-generator修改源代码实现自定义方法,返回List对象(一)

Mybatis-generator修改源代码实现自定义方法,返回Lsit对象,本文结合网上的诸多教程,详细介绍通过修改Mybatis-generator的源代码, 在自动生成dao层和XML文件时,添...
  • hji7365039
  • hji7365039
  • 2017年07月28日 17:44
  • 272
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用户自定义ID Generator的例子
举报原因:
原因补充:

(最多只允许输入30个字)