1 配置MyEclipse开发环境
MyEclipse在进行框架开发的操作上还是非常好用的,所以在MyEclipse里面如果要想进行Hibernate程序的编写,那么必须要配置数据库的相关内容。
1、打开数据库的连接窗口试图;
打开这个窗口的目的是为了可以在MyEclipse里面配置MySQL数据库的连接。
2、随后在数据库浏览器窗口里面点鼠标右键,进行新的连接创建。
3、在出现的对话框之中选择要使用的数据库,本次使用的是MySQL数据库。
(1)同时在本处操作的时候还需要配置数据库的驱动程序;
配置完成之后可以直接选择右键就可以打开mysql的数据库了。
4、一切准备就绪之后创建第一个Hibernate项目,这个项目的名称为“HibernateProject-01”,是一个WEB项目(所有的开发包都可以保存在lib目录中);
5、而后为该项目添加Hibernate开发支持。
6、在MyEclipse里面最新支持的Hibernate版本是5.1。
随后会询问用户是否需要创建一些文件:
(1)Hibernate的配置文件:hibernate.cfg.xml
(2)Hibernate工厂类:HibernateSessionFactory
随后会询问用户要使用的数据库是哪一个?选择好之前配置的“mysql”数据库。
接着会询问用户是否要添加一些Hibernate的开发支持包。
2 开发第一个程序
既然Hibernate属于数据层的工具类,那么工具类的特征就是固定的操作模式,而且如果要进行数据库操作,需要给出数据表,那么下面首先创建一个数据库脚本;
范例:数据库脚本
-- 删除数据库
DROP DATABASE IF EXISTS hedb;
-- 创建数据库
CREATE DATABASE hedb;
-- 使用数据库
USE hedb;
-- 删除数据表
DROP TABLE IF EXISTS `member`;
-- 创建数据表
CREATE TABLE `member`(
mid VARCHAR(50),
mname VARCHAR(50),
mage INT,
msalary DOUBLE,
mbirthday DATE,
mnote TEXT,
CONSTRAINT pk_mid PRIMARY KEY(mid)
);
2、Hibernate是基于简单Java类的应用,所以在Hibernate里面一切的数据操作都要以类为主。所有的类不需要由用户创建,可以通过工具自动完成。
生成的时候是找到数据库的所在位置,并且定位到数据表上。
3、随后会出现一个转换的处理界面,这个界面上首先要选择程序生成的位置(只有添加过Hibernate项目支持的才能够被选择)
Hibernate中的简单Java类称为POJO(简单古老的Java对象)。
其中Java的数据对象是根据表结构的描述动态生成的。
4、随后要选择主键生成模式,此时的mid字段应该是由用户自己输入的,既然是自己输入的,那么表示指派模式。
在最早的时候此步完成后就可以自动生成了,但是后来从MyEclipse 6.3开始。
之后会在org.lks.pojo
包中生成两个文件:Member.java这个与表的映射类,还有一个Member.hbm.xml文件的配置。
5、编写程序保存数据;
package org.lks.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.lks.pojo.Member;
public class TestMemberInsertDemo {
public static void main(String[] args) throws ParseException {
Member pojo = new Member();
pojo.setMid("3161301220");
pojo.setMname("lks");
pojo.setMage(23);
pojo.setMsalary(2000.0);
pojo.setMnote("hhy big fool!");
pojo.setMbirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1996-10-15"));
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
Session session = sessionFactory.openSession();
session.save(pojo);
session.beginTransaction().commit(); //事务提交
System.out.println("success!");
session.close();
}
}
Hibernate里面在更新的时候必须由用户自己手工的进行事务的处理。
如果在Hibernate里面假设都是session.save(pojo)
方式来保存数据的话,那么这种操作就会显得很容易编写了,没有再去编写INSERT语句了,也没有再出现PreparedStatement了,所有的JDBC操作都被Hibernate封装了。