什么是Hibernate?为什么使用Hibernate?Hibernate有什么优缺点?网上很多大神的文章又详细又通俗易懂。


步骤:

1、创建数据库表格

2、编写JavaBean实体类

3、下载Hibernate用到的的Jar包

4、创建Web工程。

5、导入需要的Jar包(我们下载的可能有些是不需要的,只要导入用到的jar包就行)。

6、创建类与表结构的映射(javabean实体类中属性和相应表格的列的映射)。

7、编写Hibernate配置文件

8、编写测试类。


具体实现:

1、创建数据表格

为了方便,我们之创建一个简单的表格用于测试就行了。

表格名字叫 user,里面有四列 id,username,pwd ,cellphone

SQL代码

 //创建数据库
 CREATE DATABASE Hib_test;
 //创建数据表格
 CREATE TABLE user(
   id INT,
   username ),
   pwd ),
   cellphone )
 )

输出结果:

注释

使用的数据库是MySql,使用的界面操作工具是SQLyog

2、编写JavaBean实体类

我们写一个个JavaBean的实体类。

JAVA代码

 package com.hibernate.test;

 public class User {
     private int id;
     private String username;
     private String pwd;
     private String cellphone;
     public int getId() {
         return id;
     }
     public void setId(int id) {
         this.id = id;
     }
     public String getUsername() {
         return username;
     }
     public void setUsername(String username) {
         this.username = username;
     }
     public String getPwd() {
         return pwd;
     }
     public void setPwd(String password) {
         this.pwd = password;
     }
     public String getCellphone() {
         return cellphone;
     }
     public void setCellphone(String cellphone) {
         this.cellphone = cellphone;
     }

 }

3、下载Hibernate用到的的Jar包

下载地址:http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/hibernate-release-5.0.7.Final.zip/download

下载下来,解压后的目录为:

lib文件夹里面是框架所包含的jar包

project文件里面是项目案例

document文件夹是教程以及API等

4、创建Web工程。

创了个叫HibernateDemo的Web项目。

5、导入需要的Jar包

  a、Hibernate需要的核心包,就是解压出来的目录(hibernate-release-5.0.7.Final\lib\required)下的所有jar包。

  b、导入数据库驱动包,我用的的是MySql所以导入MySql的依赖包,这个jar包需要网上下载,网上有很多。

将下面的这些jar包复制到项目里的WebContent/WEB-INF/lib目录下面

6、创建类与表结构的映射文件

创建表结构的映射就是一个xml文件,他可以告诉Hibernate哪个数据表和哪个JavaBean类相关联的。

这个表结构映射的xml文件有一定要要求或者说是规范吧:

  a、命名规范,一般是:类的名字.hbm.xml

    在上面的例子中就是:User.hbm.xml。

  b、存放位置:一般把则个文件与他的Java类放在一起。

映射文件:

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 <hibernate-mapping>
     <!--类名为User,表名也为User-->
     <class name="com.hibernate.test.User"  table="user">
         <!--主键映射,属性名为id,列名也为id-->
         <id name="id" column="id">
             <!--下面这个属性的作用是:根据所使用的数据库主键自动增长,这里使用的int类型的数据-->
             <generator class="native"/>
         </id>
         <!--非主键映射,属性和列名一一对应-->
         <property name="username" column="username"/>
         <property name="cellphone" column="cellphone"/>
         <property name="pwd" column="pwd"/>
     </class>
 </hibernate-mapping>

注释

映射文件模板大多都一样的,可以在下载的案例中找到一个模板,然后做写修改就行。详细的属性之后再详细讨论。

<hibernate-mapping>
    <class name="com.hibernate.test.User"  table="user">
        <id name="java类属性" column="数据表主键">
            <generator class="native"/>
        </id>
        <property name="java类属性" column="数据表格列名"/>
    </class>
</hibernate-mapping>

7、编写Hibernate配置文件

跟上面的映射文件一样,这个核心配置文件也是一个xml文件,你可以在(hibernate-release-5.0.7.Final\project\etc)目录下找到这个文件的模板。然后做一些修改,应用到自己的项目里。

还是跟上面的映射文件一样,这里的文件也有一定的要求:

  a、文件名为:hibernate.cfg.xml (这里的cfg是configure的缩写?)

  b、文件放在src目录下。

配置文件的属性:

  a、必须配置:数据库链接配置

    <property name="hibernate.connection.driver_class">数据库驱动</property>
    <property name="hibernate.connection.url">数据库链接url</property>
    <property name="hibernate.connection.username">数据库用户名</property>
    <property name="hibernate.connection.password">数据库密码</property>
  b、必须配置:数据库方言,用来生成适应不同数据库sql语句的配置。

    <property name="hibernate.dialect"></property>

  c、必须配置:引入配置文件的配置

    <mapping resource="映射文件的路径,格式是:包名.配置文件名"/>

  d、可选配置:用于把Hibernate生成的sql语句输出到控制台的配置,为了调试方便我们可以用这些配置查看Hibernate对数据库执行了哪些sql语句等等。   

    <!-- 显示hibernate在运行时候执行的sql语句 -->
    <property name="hibernate.show_sql">true</property>
    <!-- 格式化sql -->
    <property name="hibernate.format_sql">true</property>
    <!-- 自动建表 -->
    <property name="hibernate.hbm2ddl.auto">create</property>

Hibernate配置文件的具体修改后的样子:

 <?xml version='1.0' encoding='utf-8'?>
 <!DOCTYPE hibernate-configuration PUBLIC
         "-//Hibernate/Hibernate Configuration DTD//EN"
         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
     <!-- 通常,一个session-factory节点代表一个数据库 -->
     <session-factory>

         <!-- 1. 数据库连接配置 -->
         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
         <property name="hibernate.connection.url">jdbc:mysql:///Hib_test</property>
         <property name="hibernate.connection.username">root</property>
         <property name="hibernate.connection.password">123456</property>
         <!--
             数据库方法配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql
          -->
         <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
         <!-- 2. 其他相关配置 -->
         <!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
         <property name="hibernate.show_sql">true</property>
         <!-- 2.2 格式化sql -->
         <property name="hibernate.format_sql">true</property>
         <!-- 2.3 自动建表  -->
         <property name="hibernate.hbm2ddl.auto">create</property>

         <!--3. 加载所有映射-->
         <mapping resource="com/hibernate/test/User.hbm.xml"/>

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

8、编写测试类。

测试类代码 package com.app.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;

 import org.hibernate.cfg.Configuration;

 import com.hibernate.test.User;

 public class App {

     public static void main(String[] args) {
      //新New一个User对象,然后设置其的值
         User user=new User();
         user.setPwd("123456");
         user.setUsername("Eastry");
         user.setId(333);
         user.setCellphone("1234567");
      //加载配置文件,默认加载的是src目录下的hibernate.cfg,xml文件,当然也可以给一个加载的路径,这样的话配置文件就不一定要放在src目录下面了
         Configuration configuration=new Configuration();
         configuration.configure();
      //创建Session工厂,用来获取Session对象
      SessionFactory factory=configuration.buildSessionFactory();
         Session session=factory.openSession();
      //开启事务
         Transaction transaction=session.getTransaction();
         transaction.begin();
      //保存操作
         session.save(user);
      //提交事务
         transaction.commit();
      //释放资源
         session.close();

         System.out.println("successful!");
     }

 }

输出:


上面我尝试了保存一个javaBean对象到数据库里。

Hibernate还 可以读取数据库的数据把数据映射到一个JavaBean对象上面。

之后再讨论。


Hibernate入门(1)——环境搭建的更多相关文章

  1. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

  2. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  3. Android入门之环境搭建

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...

  4. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  5. 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  6. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  7. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  8. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  9. Hibernate 介绍及其 环境搭建

    介绍 数据持久化概念 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.例如:文件的存储.数据的读取等都是数据持久化操作.数据模型可以是任何数据结构或对象模型, ...

  10. JAVA WEB快速入门之环境搭建

    前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...

随机推荐

  1. HDU6438(贪心技巧)

    第一眼喜闻乐见的股票问题dp可以暴力,然鹅时间不允许. 于是考虑怎么贪. 这篇题解说得很生动了. 因为每支股票都有买入的潜力所以肯定都加在优先队列里. 然后考虑的是哪些需要加入两次.这是我第二次见到类 ...

  2. AtCoder Grand Contest 012 B

    B - Splatter Painting Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement ...

  3. 线段树(单点更新) POJ 2828 Buy tickets

    题目传送门 /* 结点存储下面有几个空位 每次从根结点往下找找到该插入的位置, 同时更新每个节点的值 */ #include <cstdio> #define lson l, m, rt ...

  4. 什么是Servlet容器?(分析很到位)

    在本文中,我写了一些关于Web服务器.Servlet容器以及它与JVM的关系的基本概念.我想表达的是,Servlet容器也仅仅不过是一个Java程序. 1. 什么是Web服务器? 想要知道什么是Ser ...

  5. 浅谈Java中static作用--转

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何 ...

  6. 当document.write 遇到外联script

    先来看个例子: <!DOCTYPE html> <html> <head> <title>测试 document.write</title> ...

  7. python工具之日志记录

    ''' 写日志类 日志存放目录为当前应用程序的目录下的log目录中 日志产生规则:每小时产生一个文件 write by :wujf 2017-02-24 ''' import sys import o ...

  8. Java-注解(不包含元注解)

    @SuppressWarnings:抑制警告 package java.lang; import java.lang.annotation.*; import static java.lang.ann ...

  9. [python3]PyCharm编辑器

    简介 Python有丰富的开发工具,本教程不一一进行介绍,只推荐大家使用PyCharm,因为python开发者都在用它,但缺点就是消耗电脑资源,如果你电脑配置低,就会比较卡 下载 下载地址: http ...

  10. 推荐一个以动画效果显示github提交记录的黑科技工具:Gource

    程序员每天都会使用到git的一系列命令.其中用git log命令可以查看提交历史记录: 今天Jerry给大家推荐一款视觉效果非常酷炫的工具,名叫Gource,是一个能够将git代码仓库的提交历史以动画 ...