Hibernate入门(一)
1.导包
导入Hibernate最基本的包(不要忘记导入数据库驱动包了!)
下载文件名为黄色框框中的名称的压缩包在对应路径下,有个required包下的所有包就是必备的基本包

2.建表
USE TEST;
DROP TABLE IF EXISTS customer; CREATE TABLE customer(
cust_id INT AUTO_INCREMENT PRIMARY KEY,
cust_name VARCHAR(30),
cust_gender VARCHAR(5),
cust_phone VARCHAR(20)
);
3.建实体类
package deep.entity; import java.io.Serializable; /**
* 用户实体类
* @author DeepSleeping
*
*/
public class Customer implements Serializable{ private static final long serialVersionUID = 1L; private int cust_id;
private String cust_name;
private String cust_gender;
private String cust_phone; public int getCust_id() {
return cust_id;
}
public void setCust_id(int cust_id) {
this.cust_id = cust_id;
}
public String getCust_name() {
return cust_name;
}
public void setCust_name(String cust_name) {
this.cust_name = cust_name;
}
public String getCust_gender() {
return cust_gender;
}
public void setCust_gender(String cust_gender) {
this.cust_gender = cust_gender;
}
public String getCust_phone() {
return cust_phone;
}
public void setCust_phone(String cust_phone) {
this.cust_phone = cust_phone;
}
}
4.创建映射文件(Customer.hbm.xml)
①导入dtd文件约束
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
②导入本地dtd文件(这样就会有提示)
    1:window --> preferencrs --> xml --> xml catalog --> add 
    2:location 选择 file system,然后选择你的本地dtd文件。(在下载的压缩包中搜索dtd也能找到)
    
    3:key type 选择uri。
    4:key 填入上述步骤中的"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"
③配置
<?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>
<!-- 建立类和表的一个映射关系 -->
<!--
class标签:用来建立类和表的映射
*name属性:类中的全路径
*table属性:表名(如果类名和表名是一致的,那么table属性可以省略)
*catalog属性:数据库名称,可以省略
-->
<class name="deep.entity.Customer" table = "customer">
<!-- 建立类中的属性与表中的主键的映射 -->
<!--
id标签:用来建立类中的属性与表中的主键字段对应
*name属性:类中的属性名
*column属性:表中字段名(如果类中的属性名和表中的一致,可以省略)
*length属性:字段的长度
*type属性:类型 Java数据类型,Hibernate数据类型(默认),SQL类型
-->
<id name = "cust_id" column = "cust_id">
<!-- 主键生成策略 -->
<generator class="native"></generator>
</id> <!-- 建立类中的普通属性与表中的字段的映射 -->
<property name="cust_name" column="cust_name"/>
<property name="cust_gender" column="cust_gender"/>
<property name="cust_phone" column="cust_phone"/> </class>
</hibernate-mapping>
5.创建Hibernate的核心配置文件(hibernate.cfg.xml)
在src目录下创建hibernate.cfg.xml文件
与上述步骤一致,导入约束,导入本地
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property> <!-- Hibernate的属性 -->
<!-- Hibernate的方言:作用,根据配置的方言生成相应的SQL语句 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Hibernate显示SQL语句: -->
<property name="hibernate.show_sql">true</property>
<!-- Hibernate格式化SQL语句(不然显示的就是一行,不方便阅读) -->
<property name="hibernate.format_sql">true</property>
<!-- Hibernate的hbm2ddl(数据定义语言:create drop alter ...) 属性 -->
<!--
hbm2ddl.auto的取值
*none: 不用Hibernate自动生成表
*create:每次都会创建一个新的表(测试)
*create-drop:每次都会创建一个新的表,执行程序结束后删除这个表(测试)
*update:如果数据库中有表,使用原来的表,如果没有表,创建一个新表,可以更新表结构
*validate:只会使用原有的表,对映射关系进行校验
-->
<property name="hibernate.hbm2ddl.auto">update</property> <!-- Hibernate加载映射 -->
<mapping resource="deep/entity/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
6.测试
package deep.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import deep.entity.Customer; /**
* 使用Hibernate保存数据
* @author DeepSleeping
*
*/
public class demo { @Test
public void save(){ //1.加载配置文件
Configuration cfg = new Configuration().configure();
//2.创建一个SessionFactory
SessionFactory sessionFactory = cfg.buildSessionFactory();
//3.创建Session对象,Session对象类似Connection
Session session = sessionFactory.openSession(); //4.开启事务
Transaction tx = session.beginTransaction(); //5.执行相关操作
Customer customer = new Customer();
customer.setCust_name("Hibernate测试");
session.save(customer); //6.事务提交
tx.commit();
//7.释放资源
session.close();
} }


Hibernate入门(一)的更多相关文章
- 三大框架之hibernate入门
		hibernate入门 1.orm hibernate是一个经典的开源的orm[数据访问中间件]框架 ORM( Object Relation Mapping)对象关 ... 
- Hibernate入门案例及增删改查
		一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ... 
- Hibernate入门案例  增删改
		一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ... 
- Hibernate入门6.Hibernate检索方式
		Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ... 
- Hibernate入门5持久化对象关系和批量处理技术
		Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ... 
- Hibernate入门4.核心技能
		Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ... 
- Hibernate入门3.配置映射文件深入
		Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ... 
- 简单的Hibernate入门简介
		其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ... 
- Hibernate入门(1)-第一个Hibernate程序
		Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ... 
- hibernate入门之person表
		下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ... 
随机推荐
- JavaScript视频分享,学无止境。
			http://blog.sina.com.cn/s/blog_735ed39a0102voy3.html 
- Redis-02.数据类型
			Redis中所有数据都是以key-value存储的,value支持的数据类型包括string.hash.list.set.sorted_set 数据类型 string 是redis最基本的类型,一个k ... 
- Redis Cluster [WARNING] Node 127.0.0.1:7003 has slots in migrating state (15495).
			错误描述 在迁移一个节点上的slot到另一个节点的时候卡在其中的一个slot报错,截图如下: 查询发现在15495的这个slot上面存在一个key,但是并没有发现这个key有什么问题.使用fix进行修 ... 
- 包建强的培训课程(2):Android与设计模式
			@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ... 
- JDK设计模式之——责任链(Filter)
			责任链的设计模式可以参考Servlet的FilterChain.FilterChain中的每个Filter(过滤器)就像一个个的链条 web开发中 有时候需要对接口request和response进行 ... 
- git小技巧
			1 git提交时如何忽略一些文件: 在git根目录下添加,然后提交,就可以使用了,详细的语法详见 https://github.com/github/gitignore github提供了一个通用的. ... 
- 3-7 Vue中的列表渲染
			举个案例:循环data中的list的值在div中,并显示相应的index值. 关于数组的循环: //显示效果如下图: //一般的列表渲染最好带一个key值,要把key值设置为唯一值的话,可以选择in ... 
- 没搞懂的package.json
			事情是这样的,今天上午,后端同学 clone 了我们的一个小程序项目,希望到自己的电脑上跑起来. 然而,令人尴尬的是,他在 npm install 之后,项目并没有如愿运行,并抛出一个大大的错误. 后 ... 
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
			众说周知,ArcSDE空间数据库引擎提供了两种连接数据库的方式.一是服务连接方式,一是直连方式.后者也是Esri所推崇的方式.但是,在客户的生产环境和开发商的开发环境中这两种方式都是有需求的.下面就以 ... 
- [机器学习]回归--Decision Tree Regression
			CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值:当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很好的解决分类问题. ... 
