Hibernate快速入门案例——手动增加记录

一 介绍
Hiberante可以用在J2SE项目,也可以用在J2EE(web项目中)。
Struts是web框架,所以用在web项目。
二 基本原理和项目框架图示意图
Hibernate快速入门案例——手动增加记录_第1张图片
Hibernate快速入门案例——手动增加记录_第2张图片
三 开发流程
1 创建一个项目。
2 画出一个简单项目框架示意图。
Hibernate快速入门案例——手动增加记录_第3张图片
3 引入Hibernate开发包。
http://www.hibernate.org
4 开发Hibernate有三种方法(开发顺序)。
4.1 由Domain object -> mapping->db。(官方推荐)
4.2 由DB开始,用工具生成mapping和Domain object。(使用较多)
4.3 由映射文件开始。
在此我们使用第2种方法。
5 创建employee表,使用Mysql数据库
CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `hiredate` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


开发domain对象
6.1 什么是POJO
在使用hibernate时,要求和数据库的某张表相互映射的那个java类,是一个POJO类,一般放在com.xxx.domain下,POJO类翻译过来就是:简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来。
一个POJO类应当具有:
①有一个主键属性,用于唯一标识该对象。(这就是为什么hibernate设计者建议要映射的表需要一个主键)
②有其它的属性
③有对各个属性操作的get/set方法
④属性一般是private修饰
⑤一定有一个无参的构造函数(用于hibernate框架反射用)
6.2 实例
package com.cakin.domain;
/*
 * 建议我们的domain对象的名称就是对应表的首字母大写
 * domain、javabean、pojo【plain old/ordinary java object 简单的java对象】
 */
public class Employee {
        private Integer id;
        private String name;
        private String email;
        private 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;
        }     
}



7 对象关系映射文件
7.1 概念
对象关系映射文件: 作用是用于指定domain对象和表的映射关系。
该文件的取名有规范:domain对象.hbm.xml,一般我们放在 和domain对象同一个文件夹(包)下。
7.2 实例



    
                
        
            
            
             
         
        
            
        
        
            
        
        
            
        
    



8 手动配置我们的hibernate.cfg.xml
8.1 概念
该文件用于配置连接的数据库的类型,driver,用户名,密码 ,url,同时管理对象关系映射文件 ,该文件的名称,我们一般不修改。
8.2 实例




        
                
                org.hibernate.dialect.MySQLDialect
        
                
        
                root
                waDY820828
                
                org.gjt.mm.mysql.Driver
                true
        create
        
                
        



9 测试代码
package com.cakin.view;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.cakin.domain.Employee;
public class TestMain {
        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //我们使用对hibernate完成crud操作,只里只见对象,不见表
                // 现在我们不用service,直接测试
                //1、创建Configuration,该对象用于读取hibernate.cfg.xml,并完成初始化
                Configuration configuration = new Configuration().configure();
                //2、创建SessionFactory,这是一个会话工厂,是一个重量级的对象
                SessionFactory sessionFactory=configuration.buildSessionFactory();
                //3、创建Session,向当于jdbc的Connection
                Session session = sessionFactory.openSession();
                //4、要求程序员在进行增删改的时候使用事务提交,否则不生效
                Transaction transaction=session.beginTransaction();
                //添加一个雇员
                Employee employee = new Employee();
                employee.setName("cakin");
                employee.setEmail("[email protected]");
                employee.setHiredate(new Date());
                //保存
                session.save(employee); //inert into ...[被hibernate封装]
                transaction.commit();
                session.close();
        }
}



10 测试结果
Hibernate快速入门案例——手动增加记录_第4张图片

你可能感兴趣的:(Hibernate)