Hibernate的初步体验。

记得有一次,一个女孩子给我打电话过来。

她是某个公司的人力资源部的,当时我乱投简历,所以就接到了这么一个电话。

于是,聊了一会后。

她问我:“你了解三大框架么?”

我略带怒意的说:“三大框架,你得告诉我什么框架,我就知道,你说个三大框架,我怎么知道是什么框架?”

她好像感到很不好意思的说:“恩...”

工作当然没有着落


不过之后我知道了,所谓的三大框架,就是SSH。

而我这里说的就是H。


简单的说,H是对JDBC进行的封装,其实在学习JDBC的时候,我就觉得JDBC很不错,我们可以通过修改业务层,无需更改数据层就能够完成不同数据库的处理。

而hibernate则是一个对JDBC进行了封装的框架。

比如保存一个数据,当你将一系列的配置做好之后,你就可以通过一个save方法,完成数据的保存。而无需自己写insert into table (.....) values(.....)。

当然,作为初学者这理解还是很浅显的。


下面,我就在自己的eclipse上,完成第一个hiberate程序的编写。

这个程序的功能很简单,就是往数据库的表里查入一条数据。

我这里使用的mysql数据库。


首先,我们需要在数据库里创建一个表。

create table employee(
    id int primary key auto_increment,
    name varchar(10),
    email varchar(20),
    hiredate date)

我这里是在jdbc数据库里创建的表。


第二步,则是设计javabean。

package cn.dzr.domain;

public class Employee
{
	Integer id;
	String name;
	String email;
	java.util.Date hiredate;
	
	public Integer getId()
	{
		return id;
	}
	public void setId(Integer id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getEmail()
	{
		return email;
	}
	public void setEmail(String email)
	{
		this.email = email;
	}
	public java.util.Date getHiredate()
	{
		return hiredate;
	}
	public void setHiredate(java.util.Date hiredate)
	{
		this.hiredate = hiredate;
	}
	
	
}

这里很简单,将数据库里的表的列属性,和javabean的属性进行一一对应。


接着就是配置第一个xml,该XML的就是为了让数据库中的表和这个javabean进行匹配,具体如下:






	
	
		
		
		
		
		
		
		
		
	


需要注意的一点,该XML的名字是为JAVABEAN的名字.hbm.xml,而其位置需要和JAVABEAN在同一个目录下。

里面的Id为主属性,而其他的property则是其他的属性。至于什么意思,相信大家一看就明白。


然后配置第二个XML,这个XML具有固定的名字,hibernate.cfg.xml

该文件,我就放在src的总目录下。

(这个XML的名字是可以变化的,但是一般不推荐如此做,其存放的具体路径,我也不确定。但这里并不追究这些,最主要的是让程序能够正常运行。

该文件的内容如下:







    

        
        com.mysql.jdbc.Driver
        jdbc:mysql://localhost/jdbc
        root
        abcd1234

        
        1

        
        org.hibernate.dialect.MySQLDialect

        
        org.hibernate.cache.NoCacheProvider

        
        true

        
        

    


这里简单的分析下上面的XML。

 com.mysql.jdbc.Driver
        jdbc:mysql://localhost/jdbc
        root
        abcd1234
这四行表示连接数据库的一些参数。第一行为数据库的驱动,我这里是使用的mysql,

第二,第三,第四则是数据库的路径,用户名,密码。

 
        true

        
        
上面一行,让你在运行程序的时候,会在控制台输出你的SQL语句。

下面一行,则是表示对刚刚我们建立的XML进行操作。那个sersource里的内容,就是如此。


在这里,你需要导入MYSQL的JAR包。

最后,我们试图往数据库里插入数据。

package cn.dzr.view;

import java.util.Date;

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

import cn.dzr.domain.Employee;

public class TestMain
{
	public static void main(String[] args)
	{
		Configuration configuration = new Configuration().configure("/hibernate.cfg.xml");
		//创建这个...
		SessionFactory factory = configuration.buildSessionFactory();
		//会话工厂,这里就是相当于JDBC的connection,也就是创建一个连接
		
		org.hibernate.classic.Session session = factory.openSession();
		
		Employee e1 = new Employee();
		e1.setEmail("[email protected]");
		e1.setHiredate(new Date());
		e1.setName("d11dddr");
		Transaction transaction = session.beginTransaction();
		//保存操作!!
		session.save(e1);
		transaction.commit();
		session.close();
		
		
		
	}
}

这里需要注意的一个问题就是事务,没有事务,就不能进行增加操作。(但是可以查询)

中间可能出现一些问题。


系统会提示一些错误,这个时候,应该是缺少ejb3,slf4j两个包。只要选择合适的(一般最新的就可以)的版本的包进行导入,程序便可正常的通过。


你可能感兴趣的:(JAVA)