oracle存储过程 根据表名生成hibernate实体
2013-06-30 15:11
141 查看
CREATE OR REPLACE PROCEDURE MakeEntity(tablename IN VARCHAR2) Authid Current_User IS cursor cur is select a.column_name as colname, a.data_type as coltype, f.comments as colcomments from user_tab_columns a, user_col_comments f where a.table_name = f.table_name and a.column_name = f.column_name and a.table_name = tablename; var_colname varchar2(30); var_coltype varchar2(50); var_colcomments varchar2(200); var_temp varchar2(200); BEGIN dbms_output.enable(90000); /**************生成类信息*******************/ dbms_output.put_line('package com.neusoft.education.sis.entity.xxx;'); dbms_output.put_line(''); dbms_output.put_line('import java.io.Serializable;'); dbms_output.put_line('import java.sql.Timestamp;'); dbms_output.put_line('import java.sql.Clob;'); dbms_output.put_line('import java.sql.Date;'); dbms_output.put_line('import javax.persistence.Column;'); dbms_output.put_line('import javax.persistence.Entity;'); dbms_output.put_line('import javax.persistence.GeneratedValue;'); dbms_output.put_line('import javax.persistence.GenerationType;'); dbms_output.put_line('import javax.persistence.Id;'); dbms_output.put_line('import javax.persistence.SequenceGenerator;'); dbms_output.put_line('import javax.persistence.Table;'); dbms_output.put_line('import com.neusoft.unieap.riaclient.model.UniPOJO;'); dbms_output.put_line(''); dbms_output.put_line('/**'); select ' * Created on ' || to_char(Sysdate, 'yyyy-mm-dd') into var_temp from dual; dbms_output.put_line(var_temp); dbms_output.put_line(' * Title: XXX项目_' || tablename || 'Entity</p>'); dbms_output.put_line(' * Description: ' || tablename || 'Entity'); dbms_output.put_line(' * Copyright: Copyright (c) 2010'); dbms_output.put_line(' * Company: XXX公司'); dbms_output.put_line(' * Department:XXX部门'); dbms_output.put_line(' * @author:'); dbms_output.put_line(' * @version 1.0'); dbms_output.put_line(' */'); dbms_output.put_line(''); dbms_output.put_line('@Entity'); dbms_output.put_line('@Table(name = "' || tablename || '")'); dbms_output.put_line('public class XXXXEntity extends UniPOJO implements Serializable {'); dbms_output.put_line(''); dbms_output.put_line(' /**'); --dbms_output.put_line(' * '); dbms_output.put_line(' */'); dbms_output.put_line(' private static final long serialVersionUID = 1L;'); dbms_output.put_line(''); open cur; loop fetch cur into var_colname, var_coltype, var_colcomments; exit when cur%notfound; /**************生成字段信息*******************/ dbms_output.put_line(' //' || var_colcomments); var_temp := ' String '; if var_colname = 'RESOURCE_ID' then var_temp := ' long '; end if; if var_coltype = 'DATE' then var_temp := ' Timestamp '; end if; if var_coltype = 'CLOB' then var_temp := ' Clob '; end if; dbms_output.put_line(' private' || var_temp || lower(var_colname) || ';'); dbms_output.put_line(''); end loop; close cur; open cur; loop fetch cur into var_colname, var_coltype, var_colcomments; exit when cur%notfound; /**************生成get set 方法信息*******************/ if var_colname = 'RESOURCE_ID' then dbms_output.put_line(' /**'); dbms_output.put_line(' * Description:[RESOURCE_ID]'); --dbms_output.put_line(' * '); dbms_output.put_line(' * @return long resourceID.'); dbms_output.put_line(' */'); dbms_output.put_line(' @Id'); dbms_output.put_line(' @Column(name = "RESOURCE_ID")'); dbms_output.put_line(' @SequenceGenerator(name = "SIS_RESOURCE", sequenceName = "SEQ_SIS_RESOURCE_ID")'); dbms_output.put_line(' @GeneratedValue(generator = "SIS_RESOURCE", strategy = GenerationType.SEQUENCE)'); dbms_output.put_line(' public long getResource_id() {'); dbms_output.put_line(' return resource_id;'); dbms_output.put_line(' }'); dbms_output.put_line(''); dbms_output.put_line(' /**'); dbms_output.put_line(' * Description:[resourceID]'); --dbms_output.put_line(' * '); dbms_output.put_line(' * @param resourceID'); dbms_output.put_line(' * The resourceID to set.'); dbms_output.put_line(' */'); dbms_output.put_line(' public void setResource_id(long resourceID) {'); dbms_output.put_line(' this.resource_id = resourceID;'); dbms_output.put_line(' }'); dbms_output.put_line(''); else var_temp := ' String '; if var_coltype = 'DATE' then var_temp := ' Timestamp '; end if; if var_coltype = 'CLOB' then var_temp := ' Clob '; end if; dbms_output.put_line(' /**'); dbms_output.put_line(' * Description:[' || var_colname || '的get方法]'); --dbms_output.put_line(' * '); dbms_output.put_line(' * @return' || var_temp || lower(var_colname) || '.'); dbms_output.put_line(' */'); dbms_output.put_line(' @Column(name = "' || var_colname || '")'); dbms_output.put_line(' public' || var_temp || 'get' || INITCAP(substr(var_colname,1,1))||substr(lower(var_colname),2,length('proc_instance_id')) || '() {'); dbms_output.put_line(' return ' || lower(var_colname) || ';'); dbms_output.put_line(' }'); dbms_output.put_line(''); dbms_output.put_line(' /**'); dbms_output.put_line(' * Description:[' || var_colname || '的set方法]'); --dbms_output.put_line(' * '); dbms_output.put_line(' * @param ' || lower(var_colname) || '.'); dbms_output.put_line(' */'); dbms_output.put_line(' public void set' || INITCAP(substr(var_colname,1,1))||substr(lower(var_colname),2,length('proc_instance_id')) || '(' || var_temp || lower(var_colname) || ') {'); dbms_output.put_line(' this.' || lower(var_colname) || ' = ' || lower(var_colname) || ';'); dbms_output.put_line(' }'); dbms_output.put_line(''); end if; end loop; close cur; dbms_output.put_line('}'); END;
相关文章推荐
- 【IntelliJ Idea】idea下hibernate反向生成工具,根据数据表生成实体
- hibernate(jpa)根据实体动态生成查询条件,并实现分页问题的解决方案
- hibernate根据实体自动生成表的设置
- 根据hibernate.cfg.xml配置文件和相应实体类及其.hbm.xml文件生成对应的数据库表
- 根据Hibernate实体对象,自动生成数据字典
- Hibernate根据实体生成数据库表
- Hibernate 根据实体映射文件自动生成表
- myeclipse通过数据表生成jpa或hibernate实体
- eclipse使用jpa实现数据库反向生成Hibernate实体
- Java反射机制根据实体生成SQL
- hibernate 根据对象关系表生成 数据库
- 根据Hibernate 实体类配置的xml 生成数据库表代码
- Myeclipse 8.5 集成 hibernate3.0连接mySQL数据库生成实体配置时报错:org.hibernate.exception.GenericJDBCException: Getting database metadata
- hibernate之生成的和默认的属性值(使用generated刷新实体) .
- hibernate生成实体时对应的映射文件中主键的生成策略
- Myeclipse反向生成hibernate实体映射
- Hibernate生成实体类(带图)
- 在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,根据hbm文件自动生成pojo和数据库脚本
- Hibernate 实体不生成表的原因
- MyEclipse 2015 逆向工程之根据数据库生成实体和数据访问层