【Hibernate】hibernate框架的搭建

1, Hibernate 是什么

Hibernate框架简化了java应用程序与数据库交互的开发。 Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。

2,Hibernate框架的优点

Hibernate框架有很多优点。它们分别如下:

  • 开源和轻量级: Hibernate框架是根据LGPL许可证和轻量级的开源工具。
  • 快速性能: Hibernate框架的性能很快,因为缓存在Hibernate框架内部使用。 hibernate框架中有两种类型的缓存:一级缓存和二级缓存。一级缓存默认是启用的。
  • 数据库独立查询: HQL(Hibernate查询语言)是面向对象的SQL版本。 它生成数据库独立查询。 所以你不需要编写数据库特定的查询语句。 在Hibernate之前,如果项目更改了数据库,我们需要更改SQL查询,从而导致维护变得非常复杂。
  • 自动创建表: Hibernate框架提供了自动创建数据库表的功能。 因此,无需手动在数据库中创建表。
  • 简化复杂连接: 在hibernate框架中可轻松获取多个表中的数据。
  • 提供查询统计和数据库状态: Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。

3, Hibernate 框架的搭建

首先下载Hibernate的包,然后和数据库驱动包一起到导入到项目中。

3.1 注解方式

首先看一看项目结构:

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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">517839</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>

        <!-- 加载映射描述信息 -->
        <mapping class="cn.test.bean.User" />

    </session-factory>
</hibernate-configuration>

hibernate.cfg.xml

User.java文件

package cn.test.bean;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="user")//表示对应的表名
public class User {

    @Id//表示主键
    @Column(name="uid")//对应表中的字段名
    private Integer id;

    @Column(name="uname")//对应表中的字段名
    private String name;

    @Column(name="upass")//对应表中的字段名
    private String password;

    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 getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    }
}

User.java

HibernateUtil.java文件

package cn.test.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    public static Session getSession(){
        Configuration conf = new Configuration();
        conf.configure("hibernate.cfg.xml");//读取连接参数和映射描述信息
        SessionFactory factory = conf.buildSessionFactory();
        Session session = factory.openSession();
        return session;
    }
}

HibernateUtil.xml

UserTest.java文件

package cn.test.test;

import org.hibernate.Session;
import org.junit.Test;

import cn.test.bean.User;
import cn.test.util.HibernateUtil;

public class UserTest {

    @Test
    public void testName1() throws Exception {
        Session session  = HibernateUtil.getSession();
        User user = (User)session.get(User.class, 1);
        if(user != null){
            System.out.println(user);
        }else{
            System.out.println("未找到记录");
        }
        session.close();
    }

}

UserTest.java

这里的方法: session.get(User.class, 1); 是Hibernate框架封装好的一个类,他表示查询数据表中主键为1的值,并且将结果反射到User的对象中。

3.2 非注解的方式

如果是非注解的方式的话,我们只需要把上面的user.java文件替换调,并且加上User.hbm.xml文件,再在hibernate.cfg.xml文件中改一改映射关系就可以了。

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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8
        </property>
        <property name="connection.username">root</property>
        <property name="connection.password">517839</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>

        <!-- 加载映射描述信息 -->
        <mapping resource="cn/test/hbm/User.hbm.xml" />

    </session-factory>
</hibernate-configuration>

hibernate.cfg.xml

User.hbm.xml文件

<?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>
    <!-- 指定User类对应user表 -->
    <class name="cn.test.bean.User" table="user">

        <!-- 指定no属性对应userid字段,类型为integer,主键 -->
        <id name="id" column="uid" type="integer"></id>

        <property name="name" column="uname" type="string"></property>

        <property name="password" column="upass" type="string"></property>

    </class>
</hibernate-mapping>

User.hbm.xml

User.java文件

package cn.test.bean;

public class User {
    private Integer id;
    private String name;
    private String password;

    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 getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
    }
}

User.java

HibernateUtil.java文件

package cn.test.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    public static Session getSession(){
        Configuration conf = new Configuration();
        conf.configure("hibernate.cfg.xml");//读取连接参数和映射描述信息
        SessionFactory factory = conf.buildSessionFactory();
        Session session = factory.openSession();
        return session;
    }

}

HibernateUtil.java

UserTest.java文件

package cn.test.test;

import org.hibernate.Session;
import org.junit.Test;

import cn.test.bean.User;
import cn.test.util.HibernateUtil;

public class UserTest {

    @Test
    public void testName1() throws Exception {
        Session session  = HibernateUtil.getSession();
        User user = (User)session.get(User.class, 1);
        if(user != null){
            System.out.println(user);
        }else{
            System.out.println("未找到记录");
        }
        session.close();
    }

}

UserTest.java

时间: 2024-10-10 21:33:29

【Hibernate】hibernate框架的搭建的相关文章

Struts2+Spring+Hibernate(SSH)框架的搭建

首先需要下载struts2 ,spring,hibernate  的资源包; Struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://projects.spring.io/spring-framework/hibernate资源包下载路径:http://hibernate.org/orm/downloads/ 在SSH框架的搭建步骤: 第一步:在eclipse中创建一个web项目,并生成web.xml文件; 第二步:往lib目录导入ja

SSH (Struts2+Spring+Hibernate)框架搭建

1.相关jar包下载地址:http://download.csdn.net/detail/harderxin/4420066 2.项目结构截图: 3.相关配置文件: (1)web.xml文件配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmln

Eclipse搭建SSH(Struts2+Spring+Hibernate)框架教程

| 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 确实,刚创博客,对于这个陌生的东西还是有些许淡然.这是我的第一篇博文,希望能给你们有帮助,这就是我最大的乐趣! 好了下面进入正题: SSH框架简介:①SSH框架是由struts2.spring.hibernate三大框架组合起来的一套总框架,一般来说这三个东西我们不会单独使用.  ②在学习SSH框架之前建议读者先学mvc,因为SSH是在mvc基础上根据mvc的缺点而产生的一套比较成熟的框架,也比较稳定.  ③SSH框架的流程:浏览器

hibernate框架环境搭建

一.概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库. 二.hibernate框架的搭建 1.导包 lib目录下的required文件夹下的所有jar包. mysql驱动包. 2.创建数据库于表. 3.创建实体类. 4.创建实体映射文件(以crm练习Customer类为例) 实体类名.hbm.xml 引入约束文件 <?xml version="1.0" encoding="UTF-8"?> <!D

hibernate篇章二--成就搭建hibernate框架

在网上的资料很多,但是成功搭建一个Hibernate框架的很少,下面我将用一个简单的例子成功搭建一个Hibernate框架给大伙瞧瞧 该链接中有源代码和数据库,例子很简单,只是往数据库中的person表里面添加一组数据,链接:http://pan.baidu.com/s/1c0q8UZ2 密码:108m 也可以在我的github中下载,喜欢的话fork一下吧!https://github.com/zzzzw 在eclipse中配置Hibernate开发框架,本连接使用的数据库是MySQL 图一

用eclipse搭建SSH(struts+spring+hibernate)框架

Struts + Spring + Hibernate三者各自的特点都是什么? Struts 的MVC设计模式可以使我们的逻辑变得很清晰,主要负责表示层的显示. Spring 的IOC和AOP可以使我们的项目在最大限度上解藕. hibernate的就是实体对象的持久化了, 数据库的封装. 表现层.中间层(业务逻辑层)和数据服务层.三层体系将业务规则.数据访问及合法性校验等工作放在中间层处理.客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互. 表现层是传统的JSP技术

SSH框架的搭建和测试(Spring + Struts2 + Hibernate)

SSH框架实现了视图.控制器.和模型的彻底分离,同时还实现了业务逻辑层与持久层的分离. Spring实现了MVC中的 Controller的功能,Struts实现Web视图的功能,Hibernate则实现数据模型层的功能对数据进行持久化. 搭建流程: 实现对Spring的支持 实现对hibernate的支持 --测试Spring+hibernate 实现对struts的支持 --导包:struts2-spring-plugin-2.3.16.3.jar --在web.xml配置文件里配置监听器,

hibernate框架环境搭建与使用

搭建环境 一.新建一个项目 , 导包   一个是hibernate的jar包,一个是jdbc的jar包 hibernate的jar包 这些jar包全部导入 二.配置Hibernate. 1.建立hibernate.cfg.xml文件, 包所在的文件夹的project里去搜索cfg.xml复制并修改 2.配置hibernate.cfg.xml文件 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configur

Spring+struts2+Hibernate框架的搭建

1.搭建过程 首先需要引入Spring.Struts2.Hibernate的开发包,已经数据库的驱动包. UserAction.java文件 package cn.shop.action; import java.io.IOException; import java.util.List; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apa