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 ...
随机推荐
- asp.net 使用 MongoDB 初体验
首先:驱动 如果asp.net 想使用MongoDB,.net没有自带的链接类.得用第三方或官方的链接类. 当然有很多种驱动,我就不一一介绍了. 今天我就介绍一个我比较常用的驱动-----MongoD ...
- Android的string-array数据源简单使用
在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的arrays.xml文件里 <?xml version= ...
- LightOJ 1370 Bi-shoe and Phi-shoe 欧拉函数+线段树
分析:对于每个数,找到欧拉函数值大于它的,且标号最小的,预处理欧拉函数,然后按值建线段树就可以了 #include <iostream> #include <stdio.h> ...
- [liu yanling]软件测试的过程
测试过程按4个步骤进行,即单元测试.组装测试.确认测试和系统测试.
- linux 开机自动挂载ntfs盘
1) 查看盘符UUID vellbibi@vell001:~$ sudo blkid [sudo] password for vellbibi: /dev/sda1: UUID="bce9e ...
- Windows Service installutil 部署时,出错的解决办法-原创
出错信息如下: ---------------------------------------------------------- ~~~~~... The Rollback phase compl ...
- java中的"goto"--label
java中没有goto,但是goto是保留字.例如int goto;是不合法的. 但是java中有标签,仅作用在多重循环的continue和break中. continue和break只能作用于本层循 ...
- fzu2109--Mountain Number(数位dp)
Problem Description One integer number x is called "Mountain Number" if: (1) x>0 and x ...
- Linux概念架构的理解
摘要 Linux kernel成功的两个原因:(1)架构设计支持大量的志愿开发者加入到开发过程中:(2)每个子系统,尤其是那些需要改进的,都支持很好的扩展性.正式这两个原因使得Linux kernel ...
- 解决IE下iframe默认有白色背景的bug
又是一个IE莫名其妙的bug:做了一个弹出层,层里面是一张透明图片,IE下的iframe默认会有一个白色的背景,所以当iframe的外围背景并不是白色的时候,这个iframe就会显得非常的“与众不同” ...