hibernate 5.3.17 + mysql 8.0.13 自动创建表

学习hibernate下载了最新最稳定的版本,配置完了一运行才发现爆了很多异常,网上一查才发现是版本的问题,Hibernate更新的很快。直接进入正题:

项目目录:

1,创建项目,然后导入hibernate的jar包:

右键项目:Build Path-->Configure Build Path--> Libraries-->选择右边的Add External JARs-->找到自己存放hibernate源文件的位置hibernate-release-5.3.7.Final-->lib-->required-->全部jar包选上-->apply-->apply and close.

还是上面同样的方法找到本地电脑中的mysql的jar包,导入进项目中

下面解释下hibernate的一些jar包:

antlr-2.7.7.jar  ->Hibernate利用它从HQL到SQL的转换。

byte-buddy01.8.17.jar  ->基于动态类型的超类名称来随机生成类名

dom4j-2.1.1.jar  解析XML配置文件和XML映射文件

hibernate-commons-annotations-5.0.4.Final.jar.    Hibernate注解包

hibernate-core-5.3.7.Final.jar    Hibernate 核心包

 jandex-2.0.5.Final.jar      用来索引Anotation的

javassist-3.23.1-GA.jar     Hibernate用它来实现PO字节码的动态生成

javax.persistence-api-2.2.jar    持久化api

jboss-logging-3.3.2.Final.jar   日志服务通用库

jboss-transaction-api_1.2_spec-1.1.1.Final.jar    JTA规范包

 

2,在项目src目录下新增一个hibernate的核心文件,文件名:hibernate.cfg.xml

<!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later. ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. -->
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory> <!-- 数据库的链接 -->
 <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
 <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
  <property name="connection.username">root</property> 
  <property name="connection.password">你数据库的密码</property> 
  <!--hibernate可选项 --> 
  <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
   <property name="format_sql">true</property> 
  <property name="show_sql">true</property>
<!--hbm文件 --> 
<mapping resource="com/siggy/pojo/Score.hbm.xml"/> 
</session-factory>
</hibernate-configuration>

 3,创建Score类在com.siggy.pojo包下,代码如下:

package com.siggy.pojo;

public class Score {
	private int Id;
	private String stuId;
	//学生编号
	private String subjectId;
	//学科编号
	private String result;
	//成绩
	public int getId() {return Id;}
	public void setId(int id) {Id = id;}
	public String getStuId() {return stuId;}
	public void setStuId(String stuId) {this.stuId = stuId;}
	public String getSubjectId() {return subjectId;}
	public void setSubjectId(String subjectId) {this.subjectId = subjectId;}
	public String getResult() {return result;}
	public void setResult(String result) {this.result = result;}
	}

4,创建Score类的Score.hbm.xml文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-12-3 11:54:01 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="com.siggy.pojo.Score" table="SCORE">
        <id name="Id" type="int">
            <column name="ID" />
            <generator class="assigned" />
        </id>
        <property name="stuId" type="java.lang.String">
            <column name="STUID" />
        </property>
        <property name="subjectId" type="java.lang.String">
            <column name="SUBJECTID" />
        </property>
        <property name="result" type="java.lang.String">
            <column name="RESULT" />
        </property>
    </class>
</hibernate-mapping>

 5,编写测试类Hibernate:

package com.siggy.pojo;

import java.util.EnumSet;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
import org.junit.Test;

public class Hibernate { 
	@Test public void testCreateDB(){
		//注意这里的写法跟hibernate4.x的写法有很大的不同
		ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); 
		Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata(); 
		SchemaExport schemaExport = new SchemaExport(); 
		schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata); 
	}
}

6,运行程序,控制台输出:

7,进入mysql:   输入指令:/usr/local/mysql/bin/mysql -u root -p 然后输入密码, 密码不显示的。

进入hibernate数据库:  use hibernate;

查看表:desc score;

至此,hibernate自动创建表就完成了。继续学习!!!!  加油,没有做不到的事 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值