今天看了hibernate持久层的概述,就用myeclipse试着动手开发了一个简单的学生信息管理小程序。 在开发之前,先要理解一个概念ORM。ORM(object-relation mapping)是对象关系映射,对象指的是java中的对象,关系是指关系型数据库,ORM也就是指从Java对象到数据库之间的映射,也就是通过一个类的操作来代表数据库中的操作。而Hibernate是一个ORM的实现,所以,主要功能就是操作数据库(以对象的形式操作数据库)。 ORM模式图如下: 本人运用的开发环境为:Eclipse 下面开始动手吧…… create database hibernate; use hibernate; create table Student ( id varchar(32) not null primary key, sName varchar(20) not null, sNO varchar(20) not null, sex varchar(2), email varchar(30) ); S2:配置MyEclipse环境,使之能够生成HBM文件,即Hibernate映射文件,过程如下: 配置MySQL驱动程序: 在Eclipse中,点击Window ->Preferences->MyEclipse -> Database Explorer -> Drivers -> New… 选择Driver template 为:MySQL Connector/J; URL为: jdbc:mysql://localhost:3306/hibernate,其中hibernate为数据库名称; 添加MySQL驱动:mysql"lib"mysqldriver.jar,点击 OK。 现在只是配置好数据库的环境,但是还没有真正的生成它,还要创建Database Profile方法如下: 打开Window -> Open Perspective->MyEclipse Database Explorer 选择其中的New 图标,上面那个是我以前做过的,因此在新建一个。 Profile name 由自己来定,我定为JDBC for MySQL,Driver 就是选由上面刚刚配置过的 MySQL Connector/J,点击Next -> Finish。 右键刚刚创建的JDBC for MySQL2,打开Open connection… 出现了我们刚刚创建的数据库student,好了,可以松一口气了,暂时先放一放,后面还会用到这个界面的,在打开Window -> Open Perspective->Java界面。 S3:新建一个J2EE的Web Project ,工程名为StuHibernate 然后给这个项目添加hibernate必要的文件.在我们项目名上点击右键,选择MyEclipes --> Add Hibernate Capabilities...弹出对话框如下图: 其中,JAR Library Installation 选为 Copy checked Library Jars to Project …项,其它项均为默认,点击Next,进入下一个页面后,继续点击Next,进入第三个页面 选择 DB Profile 文件JDBC for MySQL,就是我们在S2步骤中配置的数据库驱动,在这里,我们就什么也不用手动添写了,直接生成,这就是S2步骤的好处,其中数据库的言也选为MySQL,点击Next进入下一页面 取消对Crate SessionFactory class? 选项的选择,点击Finish。项目结构如下图: 在 src 目录下产生了一个hibernate.cfg.xml 文件:主要是对Hibernate环境配置的,包括使用的数据库或数据源。Eclipse为此提供了图形环境配置,配置方法为在S2步骤中以配置好了,因此直接生成了如下页面: 其中本人数据库密码为空,因此什么都没有写。由于MySQL数据库驱动以经加了WEB-INF/lib文件夹中,上面的图中以有显示。如果没有加入,则复制到里面。一切准备工作都以就绪,下面我们就开始真正的编写代码了!(终于写到一半了,好累啊,呵呵) S4:编写POJO类,也就是持久化类:只包含setter及getter方法的类。POJO(Plain Old Java Objects)是最普通的Java对象,很像JavaBean。类名最好和表名相同,开头最好大写,Student.java类 包名:com.cc.hibernate 类名:Student 代码如下: package com.cc.hibernate; //POJO类 public class Student { //写入若干属性 private String id; private String sname; private String sno; private String sex; private String email; public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } } S5:建立映射文件,在次打开Window -> Open Perspective->MyEclipse Database Explorer,接到S2步骤 右键点击student表,打开Hibernate Reverse Engineering… 创建到包含有POJO类包的文件夹下: 点击 Next,进入下一页面 Type Mapping: Hibernate types 主键生成方式选为 assigned(指派),由用户自行完成,单击 Next,最后点击 Finish。 在次切回 Window -> Open Perspective->Java界面,出现 Student.hbm.xml映射文件,双击打开查看其代码。 此文件完成Student类到student表的关系 S6:编写具体类,具体操作Hibernate 方法,在Com.cc.hibernate包下 新建类 StudentOperate.java package com.cc.hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.Transaction; public class StudentOperate { //在Hibernate中,所有的操作都是通过Session完成 //此Session不同于JSP的Session private Session session=null; //在构造方法之中实例化session对象 public StudentOperate(){ // 找到Hibernate配置 Configuration config=new Configuration().configure(); //从配置中取出SessionFactory SessionFactory factory=config.buildSessionFactory(); //从SessionFactory中取出一个Session this.session=factory.openSession(); } //所有操作都是由session进行的 //向数据库中增加数据 public void insert(Student student){ //开始事务 Transaction tran=this.session.beginTransaction(); //执行语句 this.session.save(student); //提交事务 tran.commit(); } } S7:在com.cc.hibernate 包下新建一个测试类 StudentTest.java 代码如下: package com.cc.hibernate; public class StudentTest { public static void main(String[] args) { // TODO Auto-generated method stub //生成POJO类实例化对象 Student stu=new Student(); stu.setId("006"); stu.setSname("chen"); stu.setSno("03170217"); stu.setSex("男"); stu.setEmail("chenchuang.sy@163.com"); //实例化 StudentOperate 对象 StudentOperate op=new StudentOperate(); op.insert(stu); } } 运行后的页面为: 再次查看数据库,看是否添加成功。 如果希望看见所执行的SQL语句,打开hibernate.cfg.xml文件 点击 Add按钮后,出现如下页面: 选择Property为show_sql,设置Value为ture,点击OK。 运行后的界面为: 呵呵终于完成了! |
|
来自: 贾朋亮博客 > 《MyEclipse》