Hibernate是怎么工作的——Hibernate的工作流程
2024-08-26 23:40:11
举个简单的样例说明:
1.Base.java
package cn.flymouse.hibernate; import java.util.Date; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.flymouse.hibernate.domain.User; public class Base { public static void main(String[] args) {
//读取并解析配置文档hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//读取并解析映射文件,以Configuration创建SessionFactory
SessionFactory sf = cfg.buidSessionFactory();
//创建session
Session session = sf.openSession();
//开启事务
Transaction tx = session.beginTransaction();
//持久化操作
User user = new User();
user.setBirthday(new Date());
user.setName("name");
session.save(user);
//提交事务
tx.commit();
//关闭Session
session.close();
//关闭SessionFactory
sf.close();
}
}
2.User.java
package cn.flymouse.hibernate.domain; import java.util.Date; public class User {
private int id;
private String name;
private Date birthday; public int getId() {
return id;
}
pubilc String getName(){
return name;
}
public Date getBirthday() {
return birthday;
} public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
3.User的映射文件User.hbm.xml(跟User类放同个文件夹):
<? 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 package="cn.flymouse.hibernate.domain"> <class name="User">
<id name="id">
<generator class="native" />
</id>
<property name="name" unique="false"/>
<property name="birthday" />
</class> </hibernate-mapping>
4.hibernate的配置文件hibernate.cfg.xml(放在类路径下,即src文件夹下):
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/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:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!-- 方言,用于生成SQL语句 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 自己主动建表 -->
<property name="hbm2ddl.auto">create</property>
<property name="show_sql">true</property> <mapping resource="cn/flymouse/hibernate/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
最新文章
- c#字段
- Mysql主从复制,读写分离(mysql-proxy),双主结构完整构建过程
- [IOS]译Size Classes with Xcode 6: One Storyboard for all Sizes
- win7下利用笔记本无线网卡创建AP 组建无线局域网(可以连魔兽,TCP、UDP也没问题)
- Careercup - Facebook面试题 - 5890898499993600
- HDU5584 LCM Walk 数论
- 用Meta 取消流量器缓存实现每次访问都刷新页面方便调试
- java垃圾回收那点事(二)不同gc策略的heap分配
- 运行第一个Docker容器
- Hive中Join的原理和机制
- 第二章 Android系统与嵌入式开发
- (通用版)salesforce中soql及sosl的伪‘Like’模糊检索
- XAMPP+composer+laravel+thinkphp5那些深情的往事
- s5-11 距离矢量路由选择协议
- “人向猿进阶”之软件工程第三课----WORDCOUNT.EXE统计程序
- ASP.NET 文件上传于下载
- 团体队列(UVa540)
- H5 video标签视频加载存在的问题
- 关于quartus ii软件中注释乱码问题的解决方法
- CentOS6.5 Eclipse C++ 版本 OpenCV
热门文章
- android自己定义Application全局变量不能类型转换的问题
- 排序(3)---------冒泡排序(C语言实现)
- 零基础学HTML 5实战开发(第一季)
- mybatis和hibernate的区别【转】
- 使用Powershell 的获取别的机器WMI类失败解决方法!
- 细述 Java垃圾回收机制→Types of Java Garbage Collectors
- 使用Java开发高性能网站需要关注的那些事儿2
- MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别
- HDU 3342 Legal or Not【拓扑排序】
- ZBrush中常用笔刷综合简介