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驱动程序 ...
随机推荐
- CENTOS7常用的基础命令集合(一)
目录(?)[-] CentOS7 常用命令集合 常用命令 文件与目录操作 查看文件内容 文本内容处理 查询操作 压缩解压 yum安装器 网络相关 系统相关 系统服务启动相关 防火墙相关 RPM包管理 ...
- Linux下Oracle数据库的安装
记录详细过程以备使用 一.准备安装 为了确保Oracle数据库11g能够成功安装,您需要做好准备工作,例如检查网络配置.更改Linux内核参数.创建用户Oracle.创建安装目录.设置用户Oracle ...
- radio点击一下选中,再点击恢复未选状态
radio点击一下选中,再点击恢复未选状态 实现方式1: <input type="radio" id="cat" name="ca ...
- 关于 Block 中捕获 self 的分析
问题 最近遇到一个已经使用了weak-strong dance的block依旧强引用了self的情况,好在block没被VC持有只是延迟释放,但这里的关键是用了weak_self的blcok理应不会强 ...
- myEclipse配置jdk1.7
第一步:下载jdk1.7 下载地址:http://download.csdn.net/download/chun201010/7824469 第二步:安装jdk1.7 将下载的压缩包进行解压,得到一个 ...
- dom4j 解析XML文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 手机的根节点 --> <Phones> ...
- linux上安装jdk环境
只在于安装jdk1.6.jdk1.7和jdk1.8,其他版本请绕行,目的在于方便自己和大家以后急于做jdk环境,苦于没有jdk安装包和设置变量的过程,我将安装包均放在云盘中, 需要直接在连接中找即可: ...
- redux源码学习笔记 - applyMiddleware
在创建store时,createStore(reducer, preloadedState, enhancer),除了reducer函数,初始状态,还可以传入enhancer.这个enhancer在c ...
- 浅谈React16框架 - Fiber
前言 React实现可以粗划为两部分:reconciliation(diff阶段)和 commit(操作DOM阶段).在 v16 之前,reconciliation 简单说就是一个自顶向下递归算法,产 ...
- SpringBoot整合Mybatis完整版
喜欢的朋友可以关注下,粉丝也缺. 自从Spring推出Boot,Cloud系列之后,一度成为热门的框架,现在大部分的招聘要求都要有相关的开发经验,借此我在这里就给大家分享一下如何玩转SpringBoo ...