`
convertto
  • 浏览: 124979 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Hibernate快速起步

阅读更多

准备工作
创建示例数据库
构建Hibernate基础代码
Hibernate配置
测试代码

准备工作
在正式开始Hibernate旅程之前,先准备好所需要的软件和开发环境。
1.Hibernate框架所需要的JAR包
2.MySql的最新版JDBC驱动
3.开发工具[Eclipse3.x]
4.数据库环境[MySql5.x]

创建示例数据库
CREATE DATABASE sample
CREATE TABLE `sample`.`user1` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL DEFAULT '',
  PRIMARY KEY(`id`)
)


构建Hibernate基础代码
Hibernate基础代码包括POJO类和Hibernate映射文件。
POJO在Hibernate语义中理解为数据库表所对应的Domain Object。这里的POJO就是所谓的“无格式普通Java对象”,可以简单地理解为一个不包含逻辑代码的值对象(Value Object,简称VO)。从数据层面上来看,POJO作为数据实体的对象代表现形式,也称为实体类。
Hibernate是一种“对象—关系型数据映射组件”,它使用映射文件将对象(Object)与关系数据(Relational)相关联。在Hibernate中,映射文件通常以“.hbm.xml”作为后缀。

User1.java
public class User1 implements java.io.Serializable {
    private Integer id;
    private String name="";
    public User1() {
    }
    public Integer getId() {
        return this.id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
User1.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="User1" table="user1" catalog="sample">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="45" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

class节点定义
参数    描述
name    类名
table    类对应的表名
catalog    数据库目录

id节点定义
参数    描述
name    映射类中对应主键的属性名
type    上述属性的数据类型
column    主键字段名

generator子节点
参数    描述
class    主健生成方式
class属性可选项:
assigned:主键由应用逻辑产生
increment:主键按数值顺序递增
identity:采用数据库提供的主键生成机制
sequence:采用数据库提供的sequence机制生成主键
uuid.hex:由Hibernate基于128位唯一值产生算法,根据当前IP,时间,JVM启动时间,内部自增量等4个参数生成16进制数值(编码后以长度32的字符串表示)作为主键
foreign:使用外部表的字段作为主键

property节点参数
参数    描述
name    映射类属性名称
type    上述属性的数据类型
column    对应数据库表字段名
length    数据库类型长度
not-null    字段是否允许为空

Hibernate配置
Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性。

hibernate.cfg.xml
<?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">

<hibernate-configuration>
  <session-factory>
    <!-- 数据库URL -->
    <property name="connection.url">jdbc:mysql://localhost:3306/sample</property>
    <!-- 数据库JDBC驱动 -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <!-- 数据库用户名 -->
    <property name="connection.username">root</property>
    <!-- 数据库用户密码 -->
    <property name="connection.password">root</property>
    <!-- 每个数据库都有其对应的方言以匹配其平台特性 -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- 是否将运行期生成的SQL输出到日志以供调试 -->
    <property name="show_sql">true</property>
    <!-- 映射文件配置,注意配置文件名必须包含其相对于根的全路径 -->
    <mapping resource="User1.hbm.xml" />
  </session-factory>
</hibernate-configuration>
测试代码:

插入数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("张三");
//创建Hibernate配置对象
Configuration cfg = new Configuration().configure();
//获得会话工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//获得会话对象
Session s = sessionFactory.openSession();
//启动事务
Transaction t = s.beginTransaction();
//插入数据
s.save(user);
//提交事务
t.commit();
//关闭会话
s.close();
//关闭会话工厂
sessionFactory.close();

修改数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("李四");
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//修改数据
s.update(user);
t.commit();
s.close();
sessionFactory.close();

删除数据
User1 user = new User1();
user.setId(new Integer(1));
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//删除数据
s.delete(user);
t.commit();
s.close();
sessionFactory.close();

查询数据
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//根据主键查询数据。如果查询不到,则抛出异常
User1 user = (User1) s.load(User1.class, new Integer(1));
//根据主键查询数据。如果查询不到,则返回null
//User1 user = (User1) s.get(User1.class, new Integer(1));
System.out.println(user.getId() + "\t" + user.getName());
t.commit();
s.close();
sessionFactory.close();

使用MyEclipse创建Hibernate的步骤:
1.先创建一个数据库的连接:
Window - ShowView - Other... - MyEclipse Database - Ok  在DBBrowser选项卡 空白处按右键 - new - Datebase Driver - Driver teplate选择驱动模板 - new  - Driver name (自定义名字) - Connection URL -  Username(数据库的用户名) - Userpassword(数据库的密码) - AddJARS(加入数据库驱动) - 可以选择savepassword(来保存密码) - Finish (连接创建完毕).
2.创建JAVA项目:
MyEclipse - ProjectCapabilities - addHibernateCapabilities - next - DBDriver选择前面自定义的连接 - next -是否创建SessionFactory(建议创建) - 创建包 -Finish
3. 在Hibernate.cfg.mxl中加入show_sql 还可以加format  Properties - Add - show_sql - true - ok
4.在DBBrowser 中选中自定义的数据库的连接找到对映的表右键选中Hibernate Reverse Engineering.. - Java srcfolder选择src - Hibernate mapping file选中update hibernate选中 Java Data Object选中 - next - IDGenerator(选择数据库表中id的创建方式要和表里的一至) - next - Finish
5.在src目录先创建 类 实例化实体类并给实体类里的属性赋值 通过Configuration cfg = new Configuration().configure();得到配置对象 通过SessionFactory sessionFactory = cfg.buildSessionFactory();获得会话工厂对象 通过Session s = sessionFactory.openSession();
得到会话对象 Transaction t = s.beginTransaction();启动事务通过会话对象s控制数据 最后t.commit();提交事务 s.close();sessionFactory;关闭会话对象和工厂对象.OK了大功告成.

分享到:
评论

相关推荐

    深入浅出Hibernate中文版 part1

    第3章 快速起步 3.1 准备工作 3.2 Hibernate配置 3.3 日志配置 3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 ...

    深入浅出Hibernate(PDF)第一部分

    Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...

    hibernate所需要的所有jar包

    **标题解析:** "hibernate所需要的所有jar包" 指的是...总的来说,这个压缩包是一个全面的Hibernate开发环境起步包,包含运行Hibernate应用所需的所有组件,适用于初学者快速上手或者为现有项目添加Hibernate支持。

    深入浅出Hibernate(PDF)第二部分

    Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...

    深入浅出hibernate(PDF)第三部分

    Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...

    深入浅出Hibernate中文版 part2

    第3章 快速起步 3.1 准备工作 3.2 Hibernate配置 3.3 日志配置 3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 ...

    springboot+hibernate基础项目

    5. **Spring Boot整合Hibernate**:Spring Boot通过`spring-boot-starter-data-jpa`起步依赖自动配置了Hibernate。只需在配置文件中指定数据库连接信息,Spring Boot就会自动创建SessionFactory,并在需要时提供...

    中文 深入浅出Hibernate

    Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...

    HIbernate Jpa 生成entities

    此外,虽然自动化的代码生成可以快速起步,但有时仍需根据业务需求进行手动调整。 7. **文档资源** 提供的“JPA to entities.doc”文档很可能是对这个过程的详细步骤或者相关知识点的进一步解释,建议查阅以获取更...

    SpringBoot/SpringMVC/Hibernate整合源码(不用Maven也行)

    Spring Boot的核心理念是“约定优于配置”,它提供了一种快速构建独立的、生产级别的基于Spring的应用程序的方法。无需大量的XML配置,而是通过自动配置和起步依赖来简化项目结构。 1. **起步依赖**:Spring Boot...

    深入浅出Hibernate

    本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...

    深入浅出Hibernate2

    Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...

    springboot+hibernate+maven+jpa

    SpringBoot是Spring框架的一个子项目,它简化了初始化和配置Spring应用的过程,使得开发者能够快速启动项目。SpringBoot的核心特性包括自动配置、内嵌Web服务器(如Tomcat)和起步依赖。通过起步依赖,开发者可以...

    hibernate3.0 和数据库生成pojo类的工程方法

    虽然自动生成的代码可以快速起步,但通常需要根据项目需求进行调整。比如,添加懒加载、缓存策略、事务管理等高级特性。此外,合理设计实体类的继承结构,利用集合类型处理一对多、多对一关系,也是提高代码可维护...

    \深入浅出Hibernate

    本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...

    1、springboot入门案例helloworld与集成hibernate

    创建一个新的 Maven 项目,并在 `pom.xml` 文件中添加 SpringBoot 的起步依赖,例如 `spring-boot-starter-web` 和 `spring-boot-starter-data-jpa`,后者包含了对 Hibernate 的支持。 接下来,我们需要定义实体类...

Global site tag (gtag.js) - Google Analytics