hibernate篇章二--成就搭建hibernate框架
在网上的资料很多,但是成功搭建一个Hibernate框架的很少,下面我将用一个简单的例子成功搭建一个Hibernate框架给大伙瞧瞧
该链接中有源代码和数据库,例子很简单,只是往数据库中的person表里面添加一组数据,链接:http://pan.baidu.com/s/1c0q8UZ2 密码:108m
也可以在我的github中下载,喜欢的话fork一下吧!https://github.com/zzzzw
在eclipse中配置Hibernate开发框架,本连接使用的数据库是MySQL
图一
1.在Java Web项目中添加Hibernate类库文件,也就是它的jar包,如图一中lib所示
2.添加Hibernate配置文件hibernate.cfg.xml,不建议大家下载hibernate tools,因为小博下载之后配置环境老是失败,最后才选择手动配置
<?xml version="1.0" encoding="UTF-8"?>
<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 定义数据库服务器地址 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<!-- 数据库用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库用户对应的密码 -->
<property name="hibernate.connection.password">123456</property>
<!-- 数据库对应的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 在操作数据库时是否打印SQL语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 打开 hbm2ddl.auto 选项将自动生成数据库模式(schema)- 直接加入数据库中 -->
<property name="hbm2ddl.auto">update</property>
<!-- 配置ORM映射文件 -->
<mapping resource="com/henu/domain/Person.hbm.xml"></mapping> //用来指定加载的映射文件路径及名称,本例加载的映射文件是com/henu/domain/Person.hbm.xml
</session-factory>
</hibernate-configuration>
3.创建持久化类(POJO)Person.java
备注:持久化类主要与数据表对应,在应用程序中操纵数据库的行为实质上转化为对持久化类的操作.
package com.henu.domain; import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set; public class Person implements Serializable {
private static final long serialVersionUID = 1L;
//主键属性
private int id;
//基本类型属性,对应于表中的列
private String name;
private int age;
private String major;
//集合属性,一般对应于表中的外键
//private List courses = new ArrayList();
//private String[] courses;
//private Map courses = new HashMap();
private Set courses = new HashSet();
/**
* 无参构造方法
*/
public Person()
{}
/**
* 初始化全部属性的构造方法
* @param id
* @param name
* @param age
* @param major
* @param courses
*/
public Person(int id, String name, int age, String major, Set courses) {
super();
this.id = id;
this.name = name;
this.age = age;
this.major = major;
this.courses = courses;
}
//setter和getter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
/*public Map getCourses() {
return courses;
}
public void setCourses(Map courses) {
this.courses = courses;
}
*/
public Set getCourses() {
return courses;
}
public void setCourses(Set courses) {
this.courses = courses;
} /*public List getCourses() {
return courses;
}
public void setCourses(List courses) {
this.courses = courses;
}*/
}
4.定义ORM映射文件
备注:ORM映射文件的主要作用就是制定持久化类与数据表之间的映射关系;下面是Person类与数据表person的映射文件Person.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- class元素定义持久化类的具体包路径、关联的数据库及表名称 -->
<hibernate-mapping>
<class name="com.henu.domain.Person" table="person" catalog="test">
<!-- id元素定义表的主键对应持久化类中的属性名称、数据类型 -->
<id name="id" type="java.lang.Integer">
<!-- column元素定义表的主键 -->
<column name="id" />
<!-- generator定义表的主键生成方式,这里采用native方式 -->
<generator class="native"></generator>
</id>
<!-- property元素定义持久化类的其它属性与表中列名之间的对照关系及数据类型等 -->
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" />
</property>
<property name="major" type="java.lang.String">
<column name="major" length="45" />
</property> </class>
</hibernate-mapping>
5经过上面的步骤,本项目的Hibernate环境基本搭建完毕,并且建立了一个映射文件com/henu/domain/Person.hbm.xml,讲Person类和test数据库中的person表关联起来,下面建立测试类TestHibernate.java测试是否连接成功!
package com.henu.test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.henu.domain.Person;
public class TestHibernate {
public static void main(String args[])
{
//实例化一个Configuration对象
Configuration cfg = new Configuration();
/*Configuration对象加载Hibernate配置文件,并构建一个会话工厂SessionFactory*/
SessionFactory sf = cfg.configure().buildSessionFactory();
//由会话工厂打开一个会话
Session session = sf.openSession();
//由会话开启一个事务对象
Transaction tx = session.beginTransaction();
//实例化一个Person对象
Person tom = new Person();
tom.setName("Tom");
tom.setAge(29);
tom.setMajor("Computer Science");
//持久化Person对象
session.save(tom);
tx.commit();
session.close();
}
}
运行程序,eclipse的控制台输出结果--------------------------->>>>>
查看Person表中时候添加了一条记录.如果有的话证明环境搭建成功!好吧,觉得不错的话右下角点“推荐”吧
hibernate篇章二--成就搭建hibernate框架的更多相关文章
- hibernate篇章六--demo(Hibernate之第1解之-hibernate_demo_1)
准备工作做好了,开始Hibernate: 1:建立包:package:dao.model.service.util包: 2:开始model实体类Student:id,sname生成getter/set ...
- 如何完全根据官方下载包搭建hibernate框架
好久没有用s2sh的框架了,最近业务需要又要拾起来.在搭框架时,发现之前都是复制配置文件,对具体的细节却很懵懂,所以要从新来一遍,也是一次新的学习. 我使用的版本是hibernate-release- ...
- Java 本地开发环境搭建(框架采用 Spring+Spring MVC+Hibernate+Jsp+Gradle+tomcat+mysql5.6)
项目搭建采用技术栈为:Spring+Spring MVC+Hibernate+Jsp+Gradle+tomcat+mysql5.6 搭建环境文档目录结构说明: 使用Intellj Idea 搭建项目过 ...
- SSH框架之hibernate《二》
Hibernate第二天 一.hibernate的持久化类和对象标识符 1.1持久化类的编写规范 1.1.1什么是持久化类: ...
- 如何搭建hibernate框架
我写这篇博客,主要是想让大家能够快速上手hibernate,本人建议学习框架,应该一个框架一个框架学习,别一上手就三大框架整合,学习之类的.这里只是单独搭建hibernate框架,让大家 能够更好的上 ...
- idea中创建web项目搭建Hibernate框架连接oracle数据库
hibernate框架 hibernate是数据化持久工具,也是一个开源代码的ORM解决方案.hibernate内部封装了通过jdbc访问数据库的操作,向商场应用提供面向对象的数据访问api. hib ...
- Maven环境下搭建SSH框架之Spring整合Hibernate
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...
- Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)
然后是项目下的文件:完整的项目请看 上一篇 Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(一) 项目下的springmvc-servlet.xml配置文件: ...
- Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api
ORM概念 在学习 Hibernate 之前,我们先来了解ORM 对象关系映射 O, Object 对象 R,Realtion 关系 (关系型数据库: MySQL, Oracle…) M,Ma ...
随机推荐
- Xcode工程中全局搜索汉字的方法
打开”Find Navigator” 切换搜索模式到 “Find > Regular Expression” 输入@"[^"]*[\u4E00-\u9FA5]+[^" ...
- spring--DI--3
3.1.1 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现:表示类对接口的实现 ...
- 用opencv画矩形打上马赛克Mosaic
/*----------------------------------------------------------------------------- * * 版权声明: * 可以 ...
- 【HTML】Beginner9:Form
1.Form Collect data inputted by a user. Used as an interface for a web application,or send d ...
- Android 访问 wcf
IService1.cs 添加的接口 [OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageB ...
- POJ1840: Eqs(hash问题)
一道典型的hash问题: 已知a1,a2,a3,a4,a5,求有多少种不同的<x1,x2,x3,x4,x5>组合满足等式: a1*x1^3 + a2*x2^3 + a3*x3^3 + a4 ...
- java枚举enum
http://www.cnblogs.com/wenruo/p/5349614.html java的枚举通过关键字enum实现.可以理解为一个类,不过这个类由编译器自动加了一些方法. static v ...
- 神奇的问题记录【SqlDataAdapter Fill DataSet】
今天发现程序中有一张报表查询速度很慢[全条件要二分钟左右],查找相关原因,准备进行优化处理.注:报表调用存储过程,存储过程返回两个table就有以下神奇的故事: 直接将SQL语句在SSMS中执行发现全 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- SNMP: Simple? Network Management Protocol(转)
转自:http://www.rane.com/note161.html An SNMP Overview The Message Format The Actual Bytes Introductio ...