使用hibernate自动生成数据库表
使用hibernate自动生成数据库表
使用hibernate自动生成数据库表在hibernate3.2以后有两种方式:
1,使用hbm.xml形式;2,使用注解的形式。
本文介绍第一种方式:
IDE使用的是MyEclipse8.0,数据库使得是mysql5.1,hibernate3.2
1,新建web项目,导入所需的jar包,(此为最关键一步,导入的jar包一定要匹配)。
2,新建实体类User.java
package entity;
public class User {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
super();
}
}
3,User.hbm.xml的编写
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="entity.User" table="user" catalog="mysong">
<id name="id" type="java.lang.Integer">
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
</property>
<property name="password" type="java.lang.String">
</property>
</class>
</hibernate-mapping>
4,hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/mysong</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">com.mysql.jdbc.Driver</property>
<mapping resource="entity/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
5,部署项目,启动tomcat,并打开项目的任何一个页面,此时数据库表已经生成了,赶快查看数据库吧!
Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步。
如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码
Xml代码<property name="hbm2ddl.auto">update</property>
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
PS:数据库要预先建立好,因为hibernate只会建表,不会建库
使用hibernate自动生成数据库表相关推荐
- Hibernate中自动生成数据库表的两种方式
第一种方式:Hibernate中利用工具类自动生成数据库表 1.建好POJO object, XML Mapping File,配置文件(hibernate.cfg.xml). 2.编写工具类 imp ...
- java实体类生成mysql表_springboot+mybatis通过实体类自动生成数据库表的方法
前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 org.mybatis ...
- 自动生成数据库表结构word文档的工具(一)---- DBDocumentGenerator
背景: 项目中需要编写数据库表结构文档,手动编写繁琐,格式难统一,且易出错,有没有自动生成数据库表结构文档的工具 方案 DBDocumentGenerator 数据字典生成工具,用于生成 数据库表 及 ...
- 使用java通过固定的excel模板自动生成数据库表的ddl建表语句
有时候要建很多表或一个表有很多字段,一个个复制字段弄太麻烦了,为了提高点工作效率,写了个小工具通过固定的excel模板自动生成基础的ddl建表语句 maven依赖 <!--核心jar包--> ...
- 根据Excel表的配置,自动生成数据库表的CRUD以及相关的Winform列表和编辑界面程序文件,接上篇(自动生成实体类)
本文仍然属于一个自动生成代码工具. 上一篇我们根据数据库表的信息,自动生成实体类.cs文件.这次我们根据Excel配置,直接生成CRUD以及窗体列表和编辑界面相关的程序源文件. 通过自动生成代码,这样 ...
- python连接mysql,自动生成数据库表对应的word文档(毕设福利)
效果图 运行程序后生成的word文档 所需依赖 安装两个依赖插件 pip install pymysql pip install python-docx python程序 #!/usr/bin/pyt ...
- 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档(转
对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL( ...
- hibernate正向生成数据库表以及配置——hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hib ...
- hibernate正向生成数据库表以及配置——Teacher.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBL ...
最新文章
- 为什么要进行图学习?谈一谈逆势而上的图神经网络
- 【Android NDK 开发】JNI 动态注册 ( 动态注册流程 | JNI_OnLoad 方法 | JNINativeMethod 结构体 | GetEnv | RegisterNatives )
- matlab 连续显示,请教下MATLAB一个问题啊 我想检测一行数据里面出现连续出现0的次数,...
- 安天移动安全:Janus高危漏洞深度分析
- 微信小程序会改变大世界吗?
- C语言代码注释 - C语言零基础入门教程
- java securerandom使用_Java中的SecureRandom nextBytes()方法
- 使用scapy回放wireshark抓到的包
- 使用Windows Server 2003搭建一个asp+access网站
- UEFI开发学习1 - Ubuntu18.04搭建edk2环境
- b2c常用的erp系统
- Nginx搭建文件服务器(解决无法下载文件.txt,.pdf等)
- 新浪微博授权失败,redirect_url与应用注册的网址不一致
- c++中关于设置左对齐和右对齐的问题解决方法
- 浅谈最短路径O(n^3)万(蒟)能(蒻)算法——————Floyd《最短路径·O(n^3)Floyd篇》
- 茅台抢购特产平台(葫芦娃)
- 用css规范php的输出,一段很小但很实用的CSS打印类(附例子及_php
- MuMu模拟器Unity Profiler
- 基于独立分量分析的语音信号盲源分离
- redis事务java_Redis之Redis的事务
热门文章
- 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
- 【Windows 逆向】使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )
- 【字节码插桩】Android 打包流程 | Android 中的字节码操作方式 | AOP 面向切面编程 | APT 编译时技术
- 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )
- 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 源码分析 )
- vue单选,多选,多选的内容显示在页面可删除
- 使用nginx缓存服务器上的静态文件
- Python学习day5作业
- 把 Eclipse 中的工程 Push 到 Github(适用 Windows 平台)
- LeetCode Online Judge 题目C# 练习 - Minimum Path Sum