今天终于开始学习了三大框架的其中一个框架,Hibernate框架,在这里不去讲Hibernate框架的一些基础概念了,直接切入代码,带大家了解一下Hibernate能干什么,

Hibernate的人们案例:

一.首先建立一个Java Project项目:

Hibernate他是一个负责将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作,所有我们在这里就要设计到一个实体类

在上面这个图中我们可以看到有一个lib文件夹,这个是对项目点右键建的一个文件夹。

1.lib中该放什么文件:

首先要jar包,Hibernate的jar包可以从官方网站下载得到,官方网址:http://www.hibernate.org

另外大家嫌麻烦也可以去我的百度云下载:http://pan.baidu.com/s/1jIhPbDW

下载完后大家会看到一个这样的压缩文件:
hibernate-distribution-3.6.10.Final-dist.zip

那么lib文件夹目录下方的是:

lib\required目录下的jar包

因为我们要连接Oracle数据库,所以为们还要一个Oracle的jdbc驱动jar包,其实这个jar包可以在你的Oracl安装目录中找到

D:\app\hyj\product\11.2.0\dbhome_1\jdbc\lib

这里我们一般选择ojdbc5.jar就行了。

我们把jar包拷到lib文件夹下(拷到lib文文件夹别忘了右键jar包Biuld Path ------》》Add to Biuld Path):

二.在src目录上创建Hibernate配置文件hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="connection.username">hyj</property>
        <property name="connection.password">123</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>
        <!-- 格式化sql -->
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="cn/hyj/entity/student.hbm.xml" />

    </session-factory>

三.在实体类所在的包中创建映射文件,映射文件通常以".hbm.xml"作为后缀。


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- package Student实体类所在的包 -->
<hibernate-mapping package="cn.hyj.entity">
<!-- name:包名 table:表名 -->
<class name="Student" table="STUDENT">
<!-- name:stuNo对应 表中的一列,一般是主键列-->
<id name="stuNo">
<generator class="native" />
</id>
<property name="stuName" type="string" column="stuName" />
<property name="stuAge" column="stuAge"/>
</class>
</hibernate-mapping>

 

四.

创建添加测试类

package cn.hyj.test;

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

import cn.hyj.entity.Student;

public class Result {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // 1.0准备学生对象
        Student stu = new Student();
        stu.setStuName("张三");
        stu.setStuAge(20);

        // 1.1读取hibernate.cfg.xml配置文件,获取要连接的数据库信息
        Configuration cfg = new Configuration().configure();
        // 1.2创建SessionFactory
        SessionFactory factory = cfg.buildSessionFactory();
        // 1.3打开Session
        Session session = factory.openSession();
        // 1.4开启事务
        Transaction tx = session.beginTransaction();
        // 1.5保存到数据库
        session.save(stu);
        // 1.6提交事务
        tx.commit();
        // 1.7关闭session
        session.close();
        System.out.println("sava scuess!");

    }

}

创建更新的测试类

package cn.hibernate.Test;

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

import cn.hibernate.entity.Student;

public class Up {

    public static void main(String[] args) {
        //.读取大配置文件,获取要连接的数据库信息
        Configuration conf=new Configuration().configure();
        //.创建SessionFactory
        SessionFactory factory =conf.buildSessionFactory();
        //3加工session
        Session session = factory.openSession();
        Transaction tx=session.beginTransaction();
        //获取对象
        Student stu =new Student();
        stu.setSid();
        stu.setName("李四");
        stu.setAge();
        //.Hibernate    保存
        session.update(stu);
        //提交事务
        tx.commit();
        System.out.println("更新成功");

    }

}

创建删除的测试类

package cn.hibernate.Test;

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

import cn.hibernate.entity.Student;

public class Del {

    public static void main(String[] args) {
        //1.读取大配置文件,获取要连接的数据库信息
        Configuration conf=new Configuration().configure();
        //2.创建SessionFactory
        SessionFactory factory =conf.buildSessionFactory();
        //3加工session
        Session session = factory.openSession();

        Transaction tx=session.beginTransaction();
        //获取对象
        Student stu =new Student();
        stu.setSid(1);
        //4.Hibernate    保存
        session.delete(stu);
        //提交事务
        tx.commit();
        System.out.println("删除成功");
    }

}

Hibernate框架之入门案例的更多相关文章

  1. Hibernate框架之入门

    1.Hibernate框架简述 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...

  2. Hibernate介绍和入门案例

    一身转战三千里,一剑曾当百万师 如果你在之前没有学过SSH三大框架,那么你之前肯定是通过JDBC来对数据库进行操作.现在,你完全可以把跟数据库交互的操作直接交给Hibernate. Hibernate ...

  3. Hibernate-ORM:02.Hibernate增删改入门案例

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本笔者使用的是Idea+mysql+maven做Hibernate的博客,本篇及其以后都是如此! 首先写好思路 ...

  4. Django 框架搭建入门案例

    1. 什么是 web 框架 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端; # 示例: import socket def handle_re ...

  5. 分布式事务框架 Seata 入门案例

    1.  Seata Server 部署 Seata分TC.TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成. 首先,下载最新的安装包 也可以下载源 ...

  6. 分布式服务框架Dubbo入门案例和项目源码

    本项目源代码:http://download.csdn.net/detail/fansunion/9498406 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案, 是 ...

  7. Hibernate 框架入门

    接着上一篇的 Hibernate 框架的了解,我们就继续学习 Hibernate 框架.这次就进入 Hibernate 框架的入门学习. 首先在学习 Hibernate 框架之前,我们要准备好我们需要 ...

  8. Hibernate框架进阶(上篇)

    导读 前面一片文章介绍了Hibernate框架的入门,主要是讲解Hibernate的环境搭建和简单测试,有兴趣的童鞋出门左转.本文在入门的基础上进行Hibernate的进阶讲解,分为上中下三篇,本篇为 ...

  9. 爬虫框架Scrapy入门——爬取acg12某页面

    1.安装1.1自行安装python3环境1.2ide使用pycharm1.3安装scrapy框架2.入门案例2.1新建项目工程2.2配置settings文件2.3新建爬虫app新建app将start_ ...

随机推荐

  1. jQuery ajax - serialize() 方法-输出序列化表单值

    定义和用法 serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身. 序列化的值可在生 ...

  2. confluence安装

    confluence安装 1.jre安装 java下载http://www.java.com/zh_CN/download/manual.jsp 创建目录和解压缩 mkdir -p /usr/loca ...

  3. String 类相关知识

    1.常用方法 1)判断字符串是否为空 public boolean isEmpty()2)获取字符串长度 public int length()3)截取子子串 public String substr ...

  4. C#----格式化字符串的操作

    class Program { static void Main(string[] args) { //DateTime dt = DateTime.Now; //Console.WriteLine( ...

  5. C#中导入Win32 API函数

    C#中导入Win32 API的方法: 1.引用命名空间 using System.Net.Security; using System.Runtime.InteropServices; 2. [Dll ...

  6. Ctrl+Scroll改变所有Editor的缩放比例 (Code::Blocks)

    Settings > Editor > Zooming resizes all editors

  7. 上下联动,右侧按钮过多poper展示

    http://pan.baidu.com/s/1dDFMLjF

  8. HTML5播放器实例

    鉴于html5Audio and video的使用,设计了一个自定义风格的播放器,除实现一些基本的默认功能之外,还实现了一些高级功能. 具体功能如下: 实现播放暂停按钮 实现静音按钮 实现音量调节滑动 ...

  9. App Extension Today

     App Extensions 是iOS8新开放的扩展机制,之后不断增加功能.App Extension Programming Guide: Today   不喜欢废话,直接上干货!   一:重要概 ...

  10. MVC下的客户端模板技术

    1.引言 在Web编程中,我们有时经常需要使用Ajax来访问服务端的接口,然后使用这些返回的数据(一般格式都是JSON)来展示客户端的相关信息.例如:在一个商品列表,我们点击某一样的商品,查看该商品的 ...