记得有一次,一个女孩子给我打电话过来。
她是某个公司的人力资源部的,当时我乱投简历,所以就接到了这么一个电话。
于是,聊了一会后。
她问我:“你了解三大框架么?”
我略带怒意的说:“三大框架,你得告诉我什么框架,我就知道,你说个三大框架,我怎么知道是什么框架?”
她好像感到很不好意思的说:“恩...”
工作当然没有着落
不过之后我知道了,所谓的三大框架,就是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;
}
}
接着就是配置第一个xml,该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
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两个包。只要选择合适的(一般最新的就可以)的版本的包进行导入,程序便可正常的通过。