Hibernate是一个开放源代码的ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装,Java程序员可以使用面向对象的编程思维来操纵数据库,它通过对象属性和数据库表字段之间的映射关系,将对象持久化到数据库中,可以说Hibernate就是将数据从对象形式转换成表字段后存入数据库的一种框架。hibernate移植非常好,因为它用到了方言配置,可以根据不同的数据库自动发出不同的sql。

  1、环境准备:

    1)去Hibernate官网下载最新的hibernate文件,笔者版本号为hibernate-release-4.2.3.Final;

    2)文档内自带了说明文档,不过只有英文的,可以用来参考,可以解决绝大部分的问题;

    3)由于hibernate4已经自带annotation,所以使用annotation开发不用另外加包;

    4)如果要使用log4j来观察hibernate的输出,需要下载两个包,在另一篇随笔中有详细的介绍。http://www.cnblogs.com/hustfly/p/3405546.html

   2、第一个hibernate程序

    1)建立新java 项目,名为hibernate_HelloWorld

    2) 学习建User-library-hibernate,并加入相应的jar包(自己建立一个hibernate的库,包含各个需要的包)

    3)项目右键-buildpath-configure build path-add library—hibernate

    •   hibernate core
    •   /required
    •   slf-nop jar

    4)引入mysql的JDBC驱动包,这里用的数据库为MySQL,故导入相应的驱动

    5)在mysql中建立对应的数据库以及表

      create database hibernate;

      use hibernate;

       create table user (id int primary key, namevarchar(20));

    6)建立hibernate 配置文件hibernate.cfg.xml。直接从参考文档中copy,修改对应的数据库连接,注释掉暂时用不上的内容。

<?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> <!--数据库驱动--> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!--数据库连接的URL--> <property name-"connection.url">jdbc.mysql://localhost:3306/test</property> <!--数据库连接用户名--> <property name="connection.username">root</property> <!--数据库连接密码--> <property name="connection.password">111</property> <!--Hibernate方言--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--打印SQL语句--> <!--在调试的时候设置为true便于程序的调试,发布应用的时候设置为false,减少信息的输出量,提高关键的运行性能--> <property name="show_sql">true</property> <!--映射文件--> <mapping resource="com/fly/User.hbm.xml"> </session-factory> </hibernate-configuration>

    7)建立User 类

public class User{

    private Integer id;

    private String name;

    //省略setter/getter方法

}

    8)建立Student 映射文件 Student.hbm.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"> <hibernate-mapping> <class name="com.fly.User" table="user"> <id name="id" column="id" type="int"> <generator class="native"></genertor> </id> <property name="name="name" type="string" not-null="true" length="50"> <column name="name"></column> </class> </hibernate-mapping>

    9)写测试类Main,在Main中对Student对象进行直接的存储测试

public static void main(){
SessionFactory sf=new AnnotationConfiguration().configure().buildSessionFactory();
Student s=new Student();
s.setName("fly");
Session session=sf.openSession();
Transaction tx = session.beginTransaction();
session.save(s);
tx.commit();
session.close();
}

  10)程序就写完了,在mysql数据库里查询数据已经插入,user表里有id为1,name为fly的一条记录,则说明hibernate与数据库已经成功连接。如此,则环境搭建成功,第一个Helloworld程序成功运行,接下来可以深入学习hibernate的各种操作了。

HIbernate学习笔记(一) 了解hibernate并搭建环境建立第一个hello world程序的更多相关文章

  1. Hibernate学习笔记二:Hibernate缓存策略详解

    一:为什么使用Hibernate缓存: Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能. 缓存内的数据是对物理数据源的复制,应用 ...

  2. React 入门学习笔记整理(一)——搭建环境

    使用create-react-app脚手架搭建环境 1.安装node .软件下载地址:https://nodejs.org/en/,我下的推荐的版本. 安装之后测试是否安装成功.windows系统下, ...

  3. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  4. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  6. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  7. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  8. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  9. RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群

    1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...

随机推荐

  1. python获取系统时间

    import time print time.time() 输出的结果是: 1279578704.6725271 但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来 ...

  2. thinkphp 框架的学习(1) 扩展配置文件

    在config.php里面写入 1:'LOAD_EXT_CONFIG' => array('SETTINGS' => 'settings'); 系统会判断是否有参数:LOAD_EXT_CO ...

  3. 初识Tower Defense Toolkit

    Tower Defense Toolkit 做塔防游戏的插件 主要层次如下图: 1GameControl _ _Game Control(Script) _ _ _Spawn Manager _ _ ...

  4. Git权威指南 读笔(3)

    第九章 恢复进度: $ git stash list 显示存储的工作进度列表. $ git stash 保存当前的工作进度,分别对暂存区和工作区的状态进行保存. $ git stash pop [-- ...

  5. Quartz Scheduler 开发指南(1)

    Quartz Scheduler 开发指南(1) 原文地址:http://www.quartz-scheduler.org/generated/2.2.2/html/qtz-all/ 实例化调度程序( ...

  6. JAVA客户端API调用memcached两种方式

    1. memcached client for java客户端API:memcached client for java 引入jar包:java-memcached-2.6.2.jar package ...

  7. HDU 1400 (POJ 2411 ZOJ 1100)Mondriaan's Dream(DP + 状态压缩)

    Mondriaan's Dream Problem Description Squares and rectangles fascinated the famous Dutch painter Pie ...

  8. easyui源码翻译1.32--Dialog(对话框窗口)

    前言 扩展自$.fn.window.defaults.使用$.fn.dialog.defaults重写默认值对象.下载该插件翻译源码 该对话框是一种特殊类型的窗口,它在顶部有一个工具栏,在底部有一个按 ...

  9. 把硬盘格式化成ext格式的cpu占用率就下来了

    把硬盘格式化成ext格式的cpu占用率就下来了我是使用ext4格式 @Paulz 还有这种事情? 现在是什么格式?- - ,你自己用top命令看一下啊就知道什么东西在占用cpu了下载软件一半cpu都用 ...

  10. 【Linux安全】文件或目录权限设置

    实例演示: 要求:新建文件夹,名称为secure,要求改文件夹只能被创建者deadmin以及与deadmin同组用户进行读.写.执行的权限, 其他用户均只有读的权限. 查看 一下secure原本的权限 ...