Hibernate之环境搭建
开始之前,我想先理清一个概念,即ORM是什么?
ORM介绍
全称:Object/Relation Mapping,即对象/关系映射。
ORM也可以理解为一种规范,具体的ORM框架可作为应用程序和数据库的桥梁。
ORM并不是一种具体的产品,而是一类框架的总称,它概述了这类框架的基本特征:
完成面向对象的程序设计语言到关系数据库的映射;
基于ORM框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势。
ORM规范映射思想:
一个表映射成一个类;
一行记录(一条数据)映射成一个对象;
一列(一个字段)映射成对象的属性。
Hibernate介绍
那么Hibernate则是目前最流行的ORM框架之一,它是对JDBC的封装。Hibernate采用了低侵入式的设计模式,也即完全采用普通的Java对象(POJO),而不需要继承Hibernate的某个超类或实现Hibernate的某个接口。目前最新版本5.1。
Hibernate下载:http://hibernate.org/orm/
环境搭建
1、新建一个Java项目Test,在Test下新建一个lib文件夹,将下载的hibernate/lib/required下的Jar文件拷贝到lib文件夹下,然后全选—右键—Build Path—Add To Path;
不要忘了把MySQL的驱动Jar包也复制进来。
2、新建一个实体类Person,这里通过注解的方式将实体类与数据表映射,而不是通过.hbm.xml文件的方式建立映射关系。
package com.diesel.entity; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; @Entity
@Table(name="t_person")
public class Person { @Id
@GeneratedValue(generator="systemUuid")
@GenericGenerator(name="systemUuid", strategy="uuid")
@Column(name="id")
private String id; @Column(name="name")
private String name; @Column(name="password")
private String password; @Column(name="age")
private Integer age; public String getId() {
return id;
}
public void setId(String 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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
} @Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", password=" + password + ", age=" + age + "]";
} }
每一张表都会有一个唯一标识Id,可以通过注解的方式设置Id的生成规则,像上面代码中的方式,就是利用UUID来作为表Id的。或者也可以这样:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private Integer id;
这表示自动增长类型的Id。更多关于其他的方式,这里就不再列举了。
3、配置hibernate.cfg.xml,也就是告诉Hibernate要连接哪个数据库,并且配置一些其他属性。
<?xml version='1.0' encoding='utf-8'?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!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> <!-- Database connection settings -->
<!-- <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost/TestDB</property> --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/Test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property> <!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property> <!-- SQL dialect -->
<property name="dialect">
org.hibernate.dialect.MySQLInnoDBDialect
</property> <!-- Enable Hibernate's automatic session context management -->
<!-- <property name="current_session_context_class">thread</property> --> <!-- <property name="cache.use_query_cache">true</property> -->
<!-- <property name="cache.use_second_level_cache">true</property> -->
<!-- <property name="cache.use_structured_entries">true</property> -->
<!-- <property name="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property> -->
<!-- <property name="net.sf.ehcache.configurationResourceName">/hibernate-config/ehcache.xml</property> -->
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property> <mapping class="com.diesel.entity.Person"/> </session-factory> </hibernate-configuration>
4、新建一个测试类。
package com.diesel.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import com.diesel.entity.Person; public class Main { public static void main(String[] args) throws Exception { Configuration config = new Configuration().configure();
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession(); Person p = new Person();
p.setName("admin");
p.setPassword("123456"); Transaction t = session.beginTransaction();
session.save(p);
t.commit(); }
}
5、在数据库Test中新建一张表t_person。
create table t_person(
id varchar(32) not null primary key,
name varchar(25) not null,
password varchar(25) not null,
age int
);
运行测试类,如果能在t_person表中看到新增的记录,则说明程序执行成功了。
Hibernate之环境搭建的更多相关文章
- [Hibernate 1]Hibernate的环境搭建
一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...
- Hibernate之环境搭建及demo
ORM概念 ORM即Object/Relation Mapping, 对象/关系数据库映射.ORM是一种规范,完成面向对象编程语言到关系数据库之间的映射.J2EE中的JPA就是一种ORM规范. ORM ...
- 初识Hibernate之环境搭建
相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的 ...
- 初始hibernate 和环境搭建
hibernate是一个开源的数据持久化框架. hibernate的优点: hibernate进行操作数据库提高了代码的开发速度,大大降低了代码量,降低了维护成本. hibernate支持许多面向对象 ...
- Hibernate开发环境搭建
一.下载Hibernate包的下载 官网地址:http://hibernate.org/orm/ 下载版本:hibernate-release-4.3.11.Final 二.Hibernate jar ...
- hibernate框架环境搭建与使用
搭建环境 一.新建一个项目 , 导包 一个是hibernate的jar包,一个是jdbc的jar包 hibernate的jar包 这些jar包全部导入 二.配置Hibernate. 1.建立hib ...
- (01)hibernate框架环境搭建及测试
---恢复内容开始--- 1.创建javaweb项目 2.导包 hibernate包 hibernate\lib\required\*.jar 数据库驱动包 mysql-connector-java- ...
- Hibernate项目环境搭建
1.首先在eclipse里面新建一个Java工程. 2.在数据库中新建一个数据库(无需创建表,有Hibernate生成). 3.在项目中导入Hibernate所依赖的jar包,该jar包可以在此下载: ...
- maven+Hibernate+mysql环境搭建
项目结构图如下 一,首先是添加依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...
随机推荐
- 调试PostSharp DEMO 遇到的问题
我今天在WIN7下的VS2010.VS2012调试PostSharp例子程序,下载的是PostSharp1.5版本,但是就是不进断点啊,我想了想这是怎么回事啊,于是我更换了2.0的再进行调试具然好使了 ...
- Source Insight使用小技巧小结
Source Insight是一款强大的代码查看工具,本身支持扩展性很好.下面我们就介绍2个扩展用例. 1.快速打开当前文件所在的目录,这个功能类似于eclipse的easyshell插件,就是能快速 ...
- 框架基础:ajax设计方案(三)---集成ajax上传技术
之前发布了ajax的通用解决方案,核心的ajax发布请求,以及集成了轮询.这次去外国网站逛逛,然后发现了ajax level2的上传文件,所以就有了把ajax的上传文件集成进去的想法,ajax方案的l ...
- 关于EL表达式的生效时间(猜想)
通过ajax与服务端异步交互的时候,在服务端将某些变量或对象设置到request等域里,此时页面上的EL表达式是获取不到ajax异步交互时设置在request等域里的变量或对像的. 我猜测可能EL表达 ...
- [转] 数据库加锁 sql加锁的
[导读: 各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别.SQL Server更强调由系统来管理锁.在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上 ...
- html标签详解,html标签属性大全(完美版),包括css属性详解
这个是平时放在笔记里,需要什么了,查下当字典用,想不起来了就查下,个人在用有道云,查询框一输就找到了.下篇会把我整理手机的html5发了.引用在某处常看到的话.楼主耗时费心整理··请拿走······· ...
- 【翻译】在Mac上使用VSCode创建你的第一个Asp.Net Core应用
Setting Up Your Development Environment 设置你的开发环境 To setup your development machine download and inst ...
- C# 关于委托的小例子
本例子是一个关于委托的小例子[猫叫,狗跳,人喊]. 委托是C#开发中一个非常重要的概念,理解起来也和常规的方法不同,但一旦理解清楚,就可以信手拈来,随处可用. 委托是对方法的抽象.它存储的就是一系列具 ...
- Hibernate3 第二天
Hibernate3 第二天 第一天回顾: 三个准备 创建数据库 准备po和hbm文件 准备灵魂文件hibernate.cfg.xml 七个步骤 1 加载配置文件Configuration 2 创建会 ...
- Unity在安卓的一些路径
APK安装之后找不到路径 公司的测试机(安卓)基本都是不带SD卡的. APK在安卓手机上安装之后,使用手机助手类的软件打开文件管理,打开 内置SDK卡/Android/data/ 在这个目录下却发现 ...