1、hibernate反向生成数据库表 第一步:添加Hibernate jar包,hibernate.cfg.xml写好数据源. hibernate.cfg.xml: jdbc:mysql://localhost/te
2、st
3、roperty>
4、ing uName; private Date hirDate; private int zStoreNum; private int zBranchNum; private int zTradNum; private int sStoreNum; private int sBranchNum; private int sTradNum; private int bStoreNum; private int bBranchNum; private int bTradNum; private int totalNum; private String home; publ
5、ic Business() { super(); } public Integer getuId() { return uId; } public void setuId(Integer uId) { this.uId = uId; } public String getuName() { return uName; } public void setuName(String uName) { this.uName = uName; } public Date getHirDate() { return hirDate; } public void setH
6、irDate(Date hirDate) { this.hirDate = hirDate; } public int getzStoreNum() { return zStoreNum; } public void setzStoreNum(int zStoreNum) { this.zStoreNum = zStoreNum; } public int getzBranchNum() { return zBranchNum; } public void setzBranchNum(int zBranchNum) { this.zBranchNum = zBranc
7、hNum; } public int getzTradNum() { return zTradNum; } public void setzTradNum(int zTradNum) { this.zTradNum = zTradNum; } public int getsStoreNum() { return sStoreNum; } public void setsStoreNum(int sStoreNum) { this.sStoreNum = sStoreNum; } public int getsBranchNum() { return sBranch
8、Num; } public void setsBranchNum(int sBranchNum) { this.sBranchNum = sBranchNum; } public int getsTradNum() { return sTradNum; } public void setsTradNum(int sTradNum) { this.sTradNum = sTradNum; } public int getbStoreNum() { return bStoreNum; } public void setbStoreNum(int bStoreNum) {
9、 this.bStoreNum = bStoreNum; } public int getbBranchNum() { return bBranchNum; } public void setbBranchNum(int bBranchNum) { this.bBranchNum = bBranchNum; } public int getbTradNum() { return bTradNum; } public void setbTradNum(int bTradNum) { this.bTradNum = bTradNum; } public int get
10、TotalNum() { return totalNum; } public void setTotalNum(int totalNum) { this.totalNum = totalNum; } public String getHome() { return home; } public void setHome(String home) { this.home = home; } } 第三步:编写实体类映射文件; HomeBusiness.hbm.xml < !DOCTYPE hib
11、ernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"
< hibernate-mapping package="com.bc.bean">
12、id>
14、id main(String[] args) { //读取hibernate.cfg.xml文件 Configuration cfg = new Configuration().configure(); SchemaExport export = new SchemaExport(cfg); export.create(true, true); } } 按照以上步骤,即可反向生成! 使用Hibernate生成或还原数据库表 利用MyEclipse可以很容易的根据数据库表生成Hibernate mapping file和实体类。 同时反过来,利用生成的Hibernate
15、mapping file和实体类也可以生成数据库表,这样就可以免去部署项目时建立数据库表的过程,也可以利用这种方法从一种数据库导入到另一种数据库。
在使用前一定要确保Hibernate在应用中可以正常访问数据库。
自动生成只适用于数据库的表,数据库没有的话,需要自已手工建立。
方法有两种:
1.hibernate.cfg.xml配置文件中添加属性:
16、以代码的形式实现: Configuration cfg = new Configuration().configure(); SchemaExport schemaExport= new SchemaExport(cfg); schemaExport.create(false, true); 我在测试不同数据库之间导入数据时出现错误,从SQLServer建立的映射无法还原到MySQL数据库,对比了一下,发现SQLServer在Hibernate mapping file里多了一个schema="dbo",把每个mapping file里的schema="dbo"去掉,就可以成功还原了。
17、
使用Hibernate在多种数据库之间切换时,也会出现这种问题,解决办法就是在mapping file里不要指定schema,如果像SQLServer需要指定schema的话,可以在Hibernate配置文件hibernate.cfg.xml里指定默认schema:
18、 无效的标识符
这个错误是因为有些Oracle关键字被用于字段名,导致错误,比如Comment,Share,Remark,Level。解决办法比较笨,字段名中加入双引号,手工建表。
Hibernate自动根据映射创建数据库表
方案一
在hibernate.cfg.xml中添加:
1






