Hibernate快速入门案例——手动增加记录
来源:互联网 发布:堀北真希电影网域名 编辑:程序博客网 时间:2024/06/07 01:25
一 介绍
Hiberante可以用在J2SE项目,也可以用在J2EE(web项目中)。
Struts是web框架,所以用在web项目。
二 基本原理和项目框架图示意图
三 开发流程
1 创建一个项目。
2 画出一个简单项目框架示意图。
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;
6 开发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 实例
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd';><hibernate-mapping package="com.cakin.domain" > <class name="Employee" table="employee"> <!-- 配置主键属性 --> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="increment" /> </id> <!-- 对其他属性进行配置--> <property name="name" type="java.lang.String" > <column name="name" not-null="true"/> </property> <property name="email" type="java.lang.String"> <column name="email" /> </property> <property name="hiredate" type="java.util.Date"> <column name="hiredate" /> </property> </class></hibernate-mapping>
8 手动配置我们的hibernate.cfg.xml
8.1 概念
该文件用于配置连接的数据库的类型,driver,用户名,密码 ,url,同时管理对象关系映射文件 ,该文件的名称,我们一般不修改。
8.2 实例
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd";><!-- 该文件用来配置domain对象和表的映射关系--><hibernate-configuration> <session-factory> <!--hibernate设计者为我们提供了一些常用的设置--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.url"> <![CDATA[ jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=utf8 ]]> </property> <property name="connection.username">root</property> <property name="connection.password">waDY820828</property> <!--配置使用的driver --> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">create</property> <!--指定关系对象映射文件 --> <mapping resource="com/cakin/domain/Employee.hbm.xml" /> </session-factory></hibernate-configuration>
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("cakin@qq.com"); employee.setHiredate(new Date()); //保存 session.save(employee); //inert into ...[被hibernate封装] transaction.commit(); session.close(); }}
10 测试结果
阅读全文
0 0
- Hibernate快速入门案例——手动增加记录
- Hibernate快速入门案例——手动修改和删除记录
- hibernate快速入门案例
- struts的快速入门案例(用户登录验证)——手动配置方式
- Hibernate快速入门案例——让hibernate到映射文件到表的转换
- 【JavaEE—Hibernate】Hibernate入门案例
- Hibernate基础:快速入门(4):增加数据
- Hibernate 4.3.11快速入门案例
- hibernate案例数据库增加数据
- Hibernate快速入门—新手Hibernate详细配置步骤介绍
- 【01】框架学习—Hibernate第一个入门案例
- 【02】框架学习—Hibernate第一个入门案例详解
- Hibernate之入门案例
- hibernate 入门案例
- Hibernate框架入门案例
- hibernate入门简单案例
- hibernate入门案例
- hibernate入门案例
- mysql事务
- Pythong中Logging模块基础用法
- CentOS7 防火墙命令使用
- MATLAB并行实现Kmeans聚类算法
- LATEX新手
- Hibernate快速入门案例——手动增加记录
- Effective Java
- C语言中结构和链表浅析
- Android中跳转到系统设置界面大全
- 数据结构上机作业2-停车场问题
- 图像信息处理实验四
- ceph-deploy-mon的create函数
- android开发与h5交互
- CoordinatorLayout 之深入理解