hibernate入门的第一个例子

1、关于Hibernate

     Hibernate:将对关系数据库的操作转换为面向对象的ORM框架。

     ORM技术就是关系数据库的操作和面向对象操作相互转换的一种技术。

 

2、创建一个Hibernate的Java应用实例步骤:(有以下6个步骤)

 (1)加载hibernate.jar包以及lib中为hibernate提供支持的jar包

 (2)加载JDBC驱动包

 (3)创建User类,包括三个属性:id(唯一标识),name(姓名),birthday(日期)

 (4)为User类配置映射文件

 (5)配置Hibernate的默认配置文件hibernate.cfg.xml

 (6)编写主程序代码进行验证。

 

3、下面对上面的每一个步骤进行详细说明:

     准备工作:在MySQL下创建数据库,数据库名为:bookdb.  即在MySQL命令行窗口中输入命令:

create database bookdb;

即可创建数据库bookdb。

 

   (1) 加载hibernate.jar包以及lib中为hibernate提供支持的jar包。

做这一步的准备工作:百度下载hibernate3.2.0.   下载下来的文件夹hibernate3.2.0有文档:doc、配置文件:etc、例子程序:eg、jar包目录:lib等文件夹,还有hibernate3.jar驱动包,这个驱动包比较重要。

即在MyEclipse下新建java project,例如:工程名为hibernate。选中工程名,点击鼠标右键-->选择Properties-->选择Java Build Path-->Libraries-->Add External JARs导入文件夹hibernate3.2.0下lib下的所有jar包,然后-->Add External JARs-->导入文件夹hibernate3.2.0下的hibernate3.jar。

 

(2)加载JDBC驱动包

即下载连接MySQL的驱动jar包:mysql-connector-java-5.1.10-bin.jar。这里我的MySQL版本是5.1.55.   MySQL驱动jar包和MySQL版本号前两个数字对应即可。  注:如何查看MySQL的版本?答:打开MySQL Command Line Client-->输入:select version();即可。

 

(3)创建User类,包括三个属性:id(唯一标识),name(姓名),birthday(日期)

即在源程序src下创建User类,包名为:com.hibernate.domain。以下为User类的源程序:

package com.hibernate.domain;

import java.util.Date;

public class User {
    private int id;    
    private String name;    
    private Date birthday;
    public int getId() {
	return id;
    }
    public void setId(int id) {
	this.id = id;
    }
    public String getName() {
	return name;
    }
    public void setName(String name) {
	this.name = name;
    }
    public Date getBirthday() {
	return birthday;
    }
    public void setBirthday(Date birthday) {
	this.birthday = birthday;
   }   
}

(4)为User类配置映射文件

以下为User.hbm.xml映射文件的xml代码:(注:User.hbm.xml文件也放在包com.hibernate.domain中)

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="com.hibernate.domain">

	<class name="User">
		
		<id name="id">
			<generator class="native"/>
		</id>
		
		<property name="name"/>
		
		<property name="birthday"/>
		
	</class>
	
</hibernate-mapping>

注:标签hibernate-mapping的package属性指明User类所在的包名。 标签class的属性name为User的类名。 id唯一、自动增1,有两个属性,name为数据库中的字段名,分别为name和birthday。

 

(5)配置Hibernate的默认配置文件hibernate.cfg.xml

以下为hibernate.cfg.xml的xml代码,可参考目录hibernate-3.2\etc下的hibernate.properties配置文件:(注hibernate.cfg.xml文件存放在源程序src文件下)

<!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="connection.driver_class">   
            com.mysql.jdbc.Driver    
        </property>       
            
        <!-- 连接数据库的URL -->   
        <!--property name="connection.url">   
            jdbc:mysql://localhost:3306/bookdb    
        </property-->
        <!-- 以下省略localhost、端口号和上面的效果一样 -->
        <property name="connection.url">   
            jdbc:mysql:///bookdb    
        </property>      
            
        <!-- 连接数据库的用户名 -->   
        <property name="connection.username">   
            root    
        </property>   
        <!-- 连接数据库的密码 -->   
        <property name="connection.password">   
            123    
        </property>   
            
        <!-- 指定数据库方言 -->   
        <property name="dialect">   
            org.hibernate.dialect.MySQLDialect    
        </property>   
            
        <!-- 控制台显示SQL语句 -->   
        <property name="show_sql">   
            true    
        </property>   
            
        <!-- 根据需要自动创建数据表 -->   
        <!-- 不新建表也不删除表,只更新表中的数据 ,如下:-->
        <property name="hbm2ddl.auto">update</property>
        <!-- 在应用运行以前创建一张表,在应用运行之后把表删除,推荐在测试中使用,如下: -->
        <!--property name="hbm2ddl.auto">create-drop</property--> 
        <!-- 在应用运行以前创建一张表,但是在应用运行之后不会把表删除,推荐在测试中使用 ,如下 -->
        <!--property name="hbm2ddl.auto">create</property--> 
            
              
        <!-- 罗列所有的映射文件 -->   
		<mapping resource="com/hibernate/domain/User.hbm.xml"/>
		
	</session-factory>
</hibernate-configuration>


(6)编写主程序代码进行验证。

在源程序src下新建Base类,包名为:com.hibernate。主程序Base类的代码如下所示:

package com.hibernate;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.hibernate.domain.User;

public class Base {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//初始化,目的是为了获得SesionFactory对象
		Configuration c=new Configuration();
		c.configure();
		
		//用SesionFactory工厂生产session,而且SesionFactory对应jdbc连接数据库时的DriverManager
		//session对应jdbc连接数据库时的Connection
		SessionFactory sf=c.buildSessionFactory();
		Session s=sf.openSession();
		
		//hibernate需要手动提交事务
		Transaction t=s.beginTransaction();
		User u=new User();
		u.setName("fangjing");
		u.setBirthday(new Date());
		//保存User对象
		s.save(u);
		t.commit();
		//关闭session,在事务提交后关闭session
		s.close();
		
		System.out.println("end");
	}

}

4、运行Base类,点击运行。

Console控制台显示以下信息:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into User (name, birthday) values (?, ?)
end

说明hibernate成功连接MySQL。

 

然后打开MySQL的命令行窗口输入:

use bookdb;

select * from user;


输出信息:

id         name           birthday
1         fangjing        2012-07-13  21:14:30

 

注:birthday为当前日期。

 


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值