Hibernate-----helloworld入门程序
1、什么是Hibernate?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2、为什么要用Hibernate?
1). 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2). Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3). hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4). hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
Hibernate入门程序如下:
1、打开MyEclipse,点击上面的菜单Window--->show view--->Other--->DB Browser,进入DB Browser
2、右键--->New-->填写相应的信息(此处的驱动包使用的是mysql-connector-java-5.1.7-bin.jar包)
可以点击Test Driver,进行测试,测试数据库连接驱动是否成功
3、点击下一步,去掉第三个选项前面的勾
4、点击下一步,选择刚刚新建的数据库连接驱动com.mysql.jdbc.Driver,然后下面的信息会自动填充如下:
5、点击finish,然后回到DB Browser界面,双击打开新建的数据库驱动com.mysql.jdbc.Driver
一般在Navicat数据库中默认存在一个test数据库,打开test数据库,我们可以新建一个表t_user,添加两个字段
(id和username)
6、新建一个Java程序,hibernate-helloworld,添加Hibernate支持,此处选择3.3版本,完成之后就会在src目录下自动生成一个hibernate.cfg.xml配置文件
<?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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">
com.mysql.jdbc.Driver
</property>
<mapping resource="com/etc/dao/TUser.hbm.xml" />
</session-factory>
</hibernate-configuration>
7、进入DB Browser界面,点击刚刚新建的表t_user,右键选择Hibernate Reverser Engineering(Hibernate反向生成,从表自动生成代码,对应的java类和配置文件),选择相应的信息
(勾选前面两个勾,去掉第二个勾的Create abstract class前面的勾)
点击下一步:选择id生成器为native
8、点击finish,完成自动生成,最终实现的效果是,在src下自动新建一个com.etc.dao包,在包下自动新建一个类TUser.java,还有一个映射文件TUser.hbm.xml,程序总体的结构图如下:
9、TUser.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.etc.dao.TUser" table="t_user" catalog="test">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="useranme" type="java.lang.String">
<column name="useranme" />
</property>
</class>
</hibernate-mapping>
到这里,heibernate程序已经新建完成
10、在这个工程下新建一个source folder,名称为test,在test文件夹下新建com.etc.dao包,在包下新建TUserDAOTest.java类,进行测试(往数据库中新增一个用户)
package com.etc.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class TUserDAOTest {
@Test
public void test1(){
//1、得到数据库映射,创建一个SessionFacotry工厂
SessionFactory factory = new Configuration().configure().buildSessionFactory();
//2、打开数据库连接,获取session
Session session = factory.openSession();
//3、开启事务
session.beginTransaction();
//4、保存用户(做数据库相关的操作)
TUser tuser = new TUser("zoey");
session.save(tuser);
//5.提交事务
session.getTransaction().commit();
}
}
11、在TUserDAOTest.java中,选择test1()方法,右键,RunAs,选择JUnitTest,显示绿色表示成功
12、进入DB Browser界面,找到t_user表,右键点击Edit Data,可以看到数据已经保存到数据库中,也可以直接在navicat中查看t_user表。(往数据库中新增用户完成)
注意:
1、Hibernate程序只是一个简单的Java工程,所以新建时,我们只需要新建一个Java工程便可,不需要新建Web工程
2、Hibernate实现的是数据的增删查改操作,也就是操作数据库的。
3、MyEclipse提供的Hibernate支持,然后使用Hibernate反向生成。会自动生成数据库中表对应的类和映射文件。
4、使用了Hibernate之后,简单的sql语句,我们不需要再进行编写,直接调用自动生成的方法即可。
5、此处借用一下别人的笔记如下: