开始之前,我想先理清一个概念,即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之环境搭建的更多相关文章

  1. [Hibernate 1]Hibernate的环境搭建

    一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...

  2. Hibernate之环境搭建及demo

    ORM概念 ORM即Object/Relation Mapping, 对象/关系数据库映射.ORM是一种规范,完成面向对象编程语言到关系数据库之间的映射.J2EE中的JPA就是一种ORM规范. ORM ...

  3. 初识Hibernate之环境搭建

         相信所有做后端的程序员同行们,没有不知道Hibernate大名的.这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思维操作传统的关系型数据库,这也是其存在的 ...

  4. 初始hibernate 和环境搭建

    hibernate是一个开源的数据持久化框架. hibernate的优点: hibernate进行操作数据库提高了代码的开发速度,大大降低了代码量,降低了维护成本. hibernate支持许多面向对象 ...

  5. Hibernate开发环境搭建

    一.下载Hibernate包的下载 官网地址:http://hibernate.org/orm/ 下载版本:hibernate-release-4.3.11.Final 二.Hibernate jar ...

  6. hibernate框架环境搭建与使用

    搭建环境 一.新建一个项目 , 导包   一个是hibernate的jar包,一个是jdbc的jar包 hibernate的jar包 这些jar包全部导入 二.配置Hibernate. 1.建立hib ...

  7. (01)hibernate框架环境搭建及测试

    ---恢复内容开始--- 1.创建javaweb项目 2.导包 hibernate包 hibernate\lib\required\*.jar 数据库驱动包 mysql-connector-java- ...

  8. Hibernate项目环境搭建

    1.首先在eclipse里面新建一个Java工程. 2.在数据库中新建一个数据库(无需创建表,有Hibernate生成). 3.在项目中导入Hibernate所依赖的jar包,该jar包可以在此下载: ...

  9. maven+Hibernate+mysql环境搭建

    项目结构图如下 一,首先是添加依赖pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...

随机推荐

  1. avalon - 初步接触

    avalon - 初步接触 avalon的介绍http://rubylouvre.github.io/mvvm/ 按照作者的介绍,在HTML中添加绑定,在JS中用avalon.define定义View ...

  2. 把虚拟机中的Linux系统安装到U盘中

    [小技巧] 把虚拟机中的Linux系统安装到U盘中 出于各种需求,很多用户可能经常会在Windows系统中安装虚拟机,然后在虚拟机中安装Linux系统.使用虚拟机的优点是可以同时使用多个系统,而缺点也 ...

  3. CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)

    E. Axis Walking time limit per test 3 seconds memory limit per test 512 megabytes input standard inp ...

  4. 以helloworld为例讲解magento中控制器的工作

    1.下面介绍的前提是你已经安装了magento ,版本是1.9.1.0. 2.下面是实际步骤 ①在工程下面创建下面的文件目录 app/code/local/Magentotutorial/Hellow ...

  5. java String源码学习

    public final class String implements java.io.Serializable, Comparable<String>, CharSequence { ...

  6. PHP部分--文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤

    文件上传分为两个部分, HTML显示部分和PHP处理部分,HTML部分主要是让用户来选择所要上传的文件,然后通过PHP中的$_FILES,我们可以把文件上传到服务器的指定目录. 1.客户端页面 客户端 ...

  7. 使用程序控制windows service启动/停止

    1.首先加入引用: using System.ServiceProcess; 2.控制启动服务: public void Start() { var timeout = TimeSpan.FromSe ...

  8. mongo数据库时间存储的问题

    题记:项目中要加的内容,可以实现对设备的预定,被某个用户预定后的设备就不能再被其他用户所使用了,用户预定的时候就需要输入预定时间,web前端用到了boostrap的date的一个插件,非常好用,接下来 ...

  9. python绝技 — 使用PyGeoIP关联IP地址和物理位置

    准备工作 要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库. 我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来 下载地址:http://dev.m ...

  10. lzo压缩格式文件查看

    使用lzop命令解压并查看 :lzop -cd xxx.lzo |more 附压缩命令:lzop xxx.log (生成xxx.log.lzo) 其它参数: # lzop -v test # 创建te ...