1 新建maven工程

1)打开eclipse,依次点击File---->New---->Maven Project.

2)选择org.apache.maven.archetypes maven-archetype-quickstart选项,点击next.

3)输入Group Id: com.binyulan 输入Artifact Id: persistence.

4)点击Finish.

2 打开pom.xml,引入所需依赖

1)引入Junit,用于单元测试

  1. <dependency>
  2. <groupId>junit</groupId>
  3. <artifactId>junit</artifactId>
  4. <version>4.10</version>
  5. <scope>test</scope>
  6. </dependency>

2)引入hibernate,用于持久化

  1. <dependency>
  2. <groupId>org.hibernate</groupId>
  3. <artifactId>hibernate-core</artifactId>
  4. <version>4.3.2.Final</version>
  5. </dependency>

3)引入mysql,用于存储数据

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>5.1.38</version>
  5. </dependency>

3 创建java端domain对象,并且编写映射文件,将domain对象中的字段与数据库中的字段一一对应

1)新建domain对象com.binyulan.domain.User

  1. package com.binyulan.domain;
  2.  
  3. import java.sql.Date;
  4.  
  5. public class User {
  6. private long id;
  7. private String name;
  8. private Date birthday;
  9. public long getId() {
  10. return id;
  11. }
  12. public void setId(long id) {
  13. this.id = id;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public Date getBirthday() {
  22. return birthday;
  23. }
  24. public void setBirthday(Date birthday) {
  25. this.birthday = birthday;
  26. }
  27. }

2)编写映射文件User.hbm.xml

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!-- Generated 2016-6-28 11:38:36 by Hibernate Tools 3.5.0.Final -->
  5. <hibernate-mapping>
  6. <class name="com.binyulan.domain.User" table="user">
  7. <id name="id" type="long">
  8. <column name="id" />
  9. <generator class="native" />
  10. </id>
  11. <property name="name" type="java.lang.String">
  12. <column name="name" />
  13. </property>
  14. <property name="birthday" type="java.sql.Date">
  15. <column name="birthday" />
  16. </property>
  17. </class>
  18. </hibernate-mapping>

4 创建hibernate配置文件,用于配置连接数据库信息,引入映射文件等。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- 数据库驱动名称 -->
  8. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  9. <!-- 数据库链接地址 -->
  10. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/binyulan</property>
  11. <!-- 数据库用户名称 -->
  12. <property name="hibernate.connection.username">root</property>
  13. <!-- 数据库密码 -->
  14. <property name="connection.password">123456</property>
  15. <!-- 设置数据库SQL语言类型 -->
  16. <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
  17. <!-- 设置是否显示SQL语句-->
  18. <property name="show_sql">true</property>
  19. <!-- 设置是否格式化SQL语句 -->
  20. <property name="format_sql">true</property>
  21. <!-- 自动建表,取值有四种:
    create: 根据映射文件生成表, 每次执行都删除之前创建过的表
    create-drop: 根据映射文件生成表,每次执行完毕都会删除表
    update: 根据映射文件生成表,若以后表结构与映射文件不同,则更新表结构,但不会删除之前的记录,也不会删除映射文件中不存在的列
    validate: 不会根据映射文件生成表,只会校验映射文件和表结构是否一致,不一致则抛异常
    -->
  22. <property name="hbm2ddl.auto">update</property>
  23. <!-- 引入映射文件 -->
  24. <mapping resource="com/binyulan/domain/User.hbm.xml"/>
  25. </session-factory>
  26. </hibernate-configuration>

5 编写测试类

  1. package com.binyulan.persistence1;
  2.  
  3. import org.hibernate.HibernateException;
  4. import org.hibernate.Session;
  5. import org.hibernate.Transaction;
  6. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  7. import org.hibernate.cfg.Configuration;
  8. import org.hibernate.service.ServiceRegistry;
  9. import org.junit.After;
  10. import org.junit.Before;
  11. import org.junit.Test;
  12.  
  13. import com.binyulan.domain.User;
  14. public class SimpleTest {
  15.  
  16. private Session session;
  17. private Transaction transaction;
  18. @Before
  19. public void init(){
  20. Configuration cfg = new Configuration().configure();
  21. ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
  22. session = cfg.buildSessionFactory(serviceRegistry).openSession();
  23. transaction = session.beginTransaction();
  24. }
  25.  
  26. @After
  27. public void destory(){
  28. transaction.commit();
  29. session.close();
  30. }
  31.  
  32. @Test
  33. public void testSave() {
  34. try {
  35. User user = new User();
  36. user.setBirthday(new java.sql.Date(0));
  37. user.setName("abc");
  38. session.save(user);
  39. } catch (HibernateException e) {
  40. if (transaction != null) {
  41. transaction.rollback();
  42. }
  43. throw e;
  44. }
  45. }
  46. }

转载请标注出处,谢谢。

第一节 Hibernate 基本配置的更多相关文章

  1. Centos7 Openstack - (第一节)基本环境配置

    Centos7 install Openstack - (第一节)基本环境配置 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文 ...

  2. 【hibernate】<第一节>hibernate简单入门

    所需工具: ide:eclipse or myeclipse jdk:1.7 jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图 ...

  3. git第一节----git config配置

    @查看git的版本 git --version @查看git配置信息 git config --list config list分全局和局部,在根目录下执行git config --list显示为全局 ...

  4. 第一节:ASP.NET开发环境配置

    第一节:ASP.NET开发环境配置 什么是ASP.NET,学这个可以做什么,学习这些有什么内容? ASP.NET是微软公司推出的WEB开发技术. 2002年,推出第一个版本,先后推出ASP.NET2. ...

  5. Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...

  6. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  7. 第二节 hibernate session介绍以及session常用方法介绍

    原创地址:http://www.cnblogs.com/binyulan/p/5628579.html Session是java应用程序和hibernate框架之间的一个主要接口.它是从持久化服务中剥 ...

  8. (十一)Hibernate 高级配置

    第一节:配置数据库连接池 反问数据库,需要不断的创建和释放连接,假如访问量大的话,效率比较低级,服务器消耗大: 使用数据库连接池,我们可以根据实际项目的情况,定义连接池的连接个数,从而可以实现从连接池 ...

  9. Hibernate学习11——Hibernate 高级配置(连接池、log4j)

    第一节:配置数据库连接池 这里配置c3p0连接池,需要的jar包: jar包位于hibernate压缩包的:hibernate-release-4.3.5.Final\lib\optional\c3p ...

随机推荐

  1. 开始使用版本控制,局域网搭个SVN

    话说以前自己做的一些小项目,经常出现忘记保存.突然断电等令人抓狂的事情.后来想到的办法是备份,这备份又有一个进化的过程,最先是建一个文件夹,隔一段时间压缩一下放进去,但是这个命名实在是麻烦,后来傻乎乎 ...

  2. Swift学习笔记四

    前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它 ...

  3. MVC风格

    MVC风格 点击了解很多其它软件体系结构风格 §模型-视图-控制器风格常被简称为MVC风格 §组件:模型.视图.控制器 §连接件:显式调用.隐式调用.其它机制(比如:Http协议) 工作机制: Mod ...

  4. Android应用程序框架之无边界设计意图

    Android的应用框架的外特性空间的描述在SDK文档有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述.在外特性空间中,Android提供了Activity,Service ...

  5. SSL工作原理

    关键词:SSL,PKI,MAC 摘    要:SSL利用数据加密.身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证.本文介绍了SSL的产生背景.安全机制.工作过程及典型组 ...

  6. oc-10-对象做参数

    // // main.m // 6-[掌握]对象和方法之间的关系 #import <Foundation/Foundation.h> //声明人类 @interface Person : ...

  7. laraval框架之数据库不可不吐槽的坑

    最近做的项目一直在用laraval框架,有些地方确实很方便,但是有些方面实在是太坑了,就比如这次在数据库里,官方文档写的是 Take note that email is not a required ...

  8. C++ _access和_waccess的使用方法

      C++ _access和_waccess的使用方法 概述 头文件:<io.h> 判断文件的访问权限 原型 int _access( const char *path,   int mo ...

  9. Android基本控件之RadioGroup

    我们在手机上经常看到一堆选项,但是我们只能选择一个,那么在Android中,这个控件就叫做RadioButton,也就是单选按钮的意思,他们之所以能够达到只能选择一个的效果,是因为有一个RadioGr ...

  10. BootStrap2学习日记5---列表

    常用列表标签有3中如下:<ul><li><ol><li><dl><dt><dd> 例子: <div class ...