Hibernate
Posted zhengmengen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate相关的知识,希望对你有一定的参考价值。
来自CSDN的学习:http://blog.csdn.net/aboy123/article/details/10085635
1. 理论
Hibernate的核心是“关系对象模型-ORM”,以操作对象的形式进行数据的存取。
2. 主要文件
2.1 实体类 User.java
普通的Java文件,是用户的实体类,包含用户的各项属性。
2.2 实体类的映射文件 User.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"> <hibernate-mapping> <class name="com.example.hibernate.User"> <!-- 实体类的物理路径 --> <id name="id"> <generator class="uuid"/> </id> <property name="username"/> <property name="password"/> <property name="createTime"/> <property name="expireTime"/> </class> </hibernate-mapping>
2.3 核心配置文件 hibernate.cfg.xml
<hibernate-configuration> <session-factory > <!-- mysql数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- mysql数据库名称 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property> <!-- 数据库的登陆用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库的登陆密码 --> <property name="hibernate.connection.password">root</property> <!-- 方言:为每一种数据库提供适配器,方便转换 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <span style="color:#ff0000;"><mapping resource="com/example/hibernate/User.hbm.xml"/></span> </session-factory> </hibernate-configuration>
3. 主要步骤
3.1 在mysql控制台生成数据库
3.2 编写工具类,以生成与 User 对应的数据表
该步即是由 hbm 生成 ddl。工具类名为ExportDB.java
import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; /** * 将hbm生成ddl * @author BCH * */ public class ExoprtDB { public static void main(String[] args) { //默认读取hibernate.cfg.xml文件 Configuration cfr = new Configuration().configure(); SchemaExport export = new SchemaExport(cfr); export.create(true, true); } }
3.3 向表中添加数据
以上是关于Hibernate的主要内容,如果未能解决你的问题,请参考以下文章
使用反射在外部JAR / CLASS上调用包含Hibernate事务的方法(Java EE)
Hibernate CriteriaQuery where - ManyToOne 字段
Hibernate + MySQL:如何为数据库和表设置编码 utf-8
hibernate在使用getCurrentSession时提示no session found for current thread