hibernate可以通过配置文件在数据库生成相应的数据库信息。也可以把数据库的信息生成相应的代码(实体类操作类和映射文件)

下面是通过代码默认对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"> <hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/guesswhat?useUnicode=true&amp;characterEncoding=utf8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1234</property>
<mapping resource="com/us/google/domains/TUser.hbm.xml"/>
<mapping resource="com/us/google/domains/TUrl.hbm.xml"/>
</session-factory>
</hibernate-configuration>

hibernate.cfg.xml

列出一个表的单独配置信息

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.us.google.domains">
<class name="TUser" table="t_user">
<id name="id" column="id">
<generator class="identity"></generator>
</id>
<property name="username" column="username"></property>
<property name="password" column="password"></property>
</class>
</hibernate-mapping>

TUser.hbm.xml

执行操作

 package com.us.google.util;

 import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport; public class GenerateSql { public static void main(String[] args) { //默认读取hibernate.cfg.xml
Configuration cfg = new Configuration().configure(); //生成并输出sql到文件(当前目录)和数据库
SchemaExport export = new SchemaExport(cfg); //true 在控制台打印sql语句,true 导入sql语句到数据库,即可执行
export.create(true, true);
}
}

GenerateSql

运行截图如下,在控制台打印出了执行的sql语句(建立表)

即在数据生成了信息。但是这样比较麻烦,等下说建好表如何生成代码

发现上面的写法过时了 现在是hibernate5 推荐下面的写法

ServiceRegistry serviceRegistry = (ServiceRegistry) new StandardServiceRegistryBuilder()
.configure().build();
MetadataImplementor metadataImplementor = (MetadataImplementor) new MetadataSources(
serviceRegistry).buildMetadata();
SchemaExport export = new SchemaExport(serviceRegistry,
metadataImplementor);
export.create(true, true);

Test.java

最新文章

  1. python 正则
  2. [iOS-UI]点击清空按钮,却会有提交的感觉
  3. 从js的repeat方法谈js字符串与数组的扩展方法
  4. 修饰符(static、final、abstract)第一篇
  5. huhamhire-hosts必备神器!
  6. android96 内存创建图片副本,画画板
  7. [Cycle.js] Generalizing run() function for more types of sources
  8. Debian 使用杂记(一)
  9. 老李推荐:第6章3节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令翻译类
  10. 网络协议 12 - HTTP 协议:常用而不简单
  11. 调用Bytom Chrome插件钱包开发Dapp
  12. Caused by: java.io.FileNotFoundException: velocity.log (No such file or directory)
  13. Javascript 字符串(一)常见函数使用
  14. mysql主从复制--重置操作reset master, reset slave
  15. 修改查看MYSQL字符集(charset)
  16. 全网最详细的Git学习系列之介绍各个Git图形客户端(Windows、Linux、Mac系统皆适用ing)(图文详解)
  17. input标签获取焦点时文本框内提示信息清空背景颜色发生变化
  18. Dubbo之旅--注册中心
  19. python数据类型三(字典)
  20. 用MysQL语句怎么进行远程连接数据库

热门文章

  1. PHP学习之数据库操作
  2. 关于Apple Pay,一篇让你不看就会后悔的文章
  3. String类的实现,内部采用字符数组实现
  4. JAVA实现字符串反转,借助字符数组实现
  5. CentOS修改系统默认语言与编码
  6. 如何在一个工作站里创建多个工程(同一个xcode下面创建多个工程)
  7. FTP创建与操作
  8. shell查看并修复网络连接
  9. git代码提交流程
  10. javascript--时钟