文档章节

Hibernate4实体映射自动生成数据库表结构

k
 kjzhang
发布于 2015/08/28 14:27
字数 516
阅读 35
收藏 0

实体映射关系建立之后,不需要再花时间到数据库去建立数据表结构。可以由Hibernate直接生成后台。



Userinfo.java

package org.kj.hibernate.bean;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "userinfo", schema = "dbo", catalog = "MySQL")
public class Userinfo {

	private int id;
	private String uname;
	private String cellphone;
	private String password;
	private List<Role> role;
	
	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	@Column(name ="uname")
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	
	@Column(name ="password")
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	@OneToMany(cascade = {CascadeType.ALL},fetch = FetchType.LAZY,mappedBy = "user")
	public List<Role> getRole() {
		return role;
	}
	public void setRole(List<Role> role) {
		this.role = role;
	}
	
	@Column(name ="cellphone")
	public String getCellphone() {
		return cellphone;
	}
	public void setCellphone(String cellphone) {
		this.cellphone = cellphone;
	}
	
	
}

Role.java

package org.kj.hibernate.bean;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "role", schema = "dbo", catalog = "MySQL")
public class Role {

	private int id;
	private int rid;
	private String rname;
	private Userinfo user;
	
	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	@Column(name ="rid")
	public int getRid() {
		return rid;
	}
	public void setRid(int rid) {
		this.rid = rid;
	}
	
	@Column(name ="rname")
	public String getRname() {
		return rname;
	}
	public void setRname(String rname) {
		this.rname = rname;
	}
	
	@ManyToOne(cascade = {CascadeType.ALL})
	@JoinColumn(name = "uid")
	public Userinfo getUser() {
		return user;
	}
	public void setUser(Userinfo user) {
		this.user = user;
	}
	
	
}

配置文件:hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="connection.url">jdbc:sqlserver://localhost:1433;</property>
        <property name="connection.username">sa</property>
        <property name="connection.password">Admin123</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="myeclipse.connection.profile">sqlserver://localhost//MySQL</property>
    
    	<property name="show_sql">true</property>
    	<property name="hbm2ddl.auto">update</property>
    	<!-- <property name="hbm2ddl.auto">create</property> -->
		<!-- <property name="hibernate.hbm2ddl.auto">validate</property> -->
		
		<property name="hibernate.current_session_context_class">thread</property>
		<property name="javax.persistence.validation.mode">none</property> 
		
		
		
		 <!-- 映射文件引入 -->
		 <mapping class="org.kj.hibernate.bean.Userinfo" />
		 <mapping class="org.kj.hibernate.bean.Role" />
		 
		  
    </session-factory>

</hibernate-configuration>

Test文件:ClassToDB.java

package org.kj.test;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ClassToDB {
	public static void main(String[] args) {
		Configuration config = null;
		Session session = null;
		Transaction tx = null;
		SessionFactory sessionFactory;
		try {
			config = new Configuration().configure();// 默认找文件hibernate.hbm.xml
			
			//Hibernate4.0新增接口
			//sessionFactory = config.buildSessionFactory();
			ServiceRegistry serviceRegistry =  new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
			sessionFactory = config.buildSessionFactory(serviceRegistry);
            //session = sessionFactory.openSession();       

            /*System.out.println("Creating tables...");

			session = sessionFactory.openSession();
			tx = session.beginTransaction();

			SchemaExport schemaExport = new SchemaExport(config);
			schemaExport.create(true, true);

			System.out.println("Table created.");

			tx.commit();*/

		} catch (HibernateException e) {
			e.printStackTrace();
			try {
				tx.rollback();
			} catch (HibernateException e1) {
				e1.printStackTrace();
			}
		} finally {

		}
	}
}


© 著作权归作者所有

k
粉丝 0
博文 1
码字总数 516
作品 0
昆明
私信 提问
hibernate4框架的增删查改(包含hql)数据等功能方法

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/53388869 本次程序测试的是hibernate4框架的增加、修改、删除、查询等方法,每种...

尘光掠影
2016/11/29
0
0
Hibernate4实战 之第六部分:基本实现原理

整体流程 1:通过configuration来读cfg.xml文件 2:得到SessionFactory 工厂 3:通过SessionFactory 工厂来创建Session实例 4:通过Session打开事务 5:通过session的api操作数据库 6:事务提...

jinnianshilongnian
2012/06/29
75
0
(2)预期+思考【利用objective-c的runtime特性,结合FMDB实现轻量级的ORM】

版权声明:本文为博主原创文章,未经博主允许不得转载。 (本ORM的源码已经上传到github上 (https://github.com/helloclq/BCSqliteORMFMDB),大家可以下载测试,如发现什么问题或意见,欢迎大...

辉兔狼
2015/09/10
298
0
hibernate4使用注解

借用官方的demo稍加改编进行分析, 1.pom.xml配置参考http://my.oschina.net/u/555061/blog/506049 2.hibernate.cfg.xml配置实体关系表, <?xml version='1.0' encoding='utf-8'?><!DOCTYPE ......

阿宇_
2015/09/14
1K
2
前言 -- 数据库准备、一些名词准备

前言 本系列整理自EF 实体框架入门 。 数据库准备 该系列用到的数据库为 school,使用SQL Server。如果没有安装,可以使用VS附带的SQL Express。步骤省略,不清楚的可以使用“靠谱的”搜索引...

月影南溪
2015/10/20
20
0

没有更多内容

加载失败,请刷新页面

加载更多

队列-顺序(c/c++实现)

队列是在线性表功能稍作一改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。 队列(顺序)实现的三个步骤: 定义所需的功能(...

白客C
11分钟前
5
0
安装tomcat部署网站/nginx代理tomcat/tomcat部署多个网站

来源:https://blog.csdn.net/Powerful_Fy 安装jdk: Oracle官方下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html yum安装openjdk: 1.查找可使用的jdk包: [roo......

asnfuy
19分钟前
3
0
Linux 安装 Android studio

官网下载linux 版本 android xxxxx-xxxx.tar.gz 然后 找到它 解压缩 得到 android-studio文件夹 执行 [root@monkey java]# mv ./android-studio /opt [root@monkey java]# cd /opt/android-s......

MrLins
22分钟前
5
0
VMware vSphere虚拟机的迁移

VMware vSphere 6.7下,虚拟机的迁移按照移动的内容,可以分为4种: 1)冷迁移(cold migration) 2)热迁移(vMotion) 3)存储热迁移(storage vMotion) 4)完全热迁移(shared-nothing ...

大别阿郎
22分钟前
4
0
SpringCloud——Docker部署eureka集群

Docker部署eureka集群 一、环境准备 1.docker环境 centos7下的安装:https://www.jianshu.com/p/ec02810d6a2b docker常用命令:https://www.jianshu.com/p/af7977b1075c 没有用过docker的最好......

devils_os
22分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部