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,用于单元测试

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>

2)引入hibernate,用于持久化

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.2.Final</version>
</dependency>

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

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>

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

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

package com.binyulan.domain;

import java.sql.Date;

public class User {
private long id;
private String name;
private Date birthday;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}

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

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-6-28 11:38:36 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.binyulan.domain.User" table="user">
<id name="id" type="long">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" />
</property>
<property name="birthday" type="java.sql.Date">
<column name="birthday" />
</property>
</class>
</hibernate-mapping>

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

<?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>
<!-- 数据库驱动名称 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库链接地址 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/binyulan</property>
<!-- 数据库用户名称 -->
<property name="hibernate.connection.username">root</property>
<!-- 数据库密码 -->
<property name="connection.password">123456</property>
<!-- 设置数据库SQL语言类型 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<!-- 设置是否显示SQL语句-->
<property name="show_sql">true</property>
<!-- 设置是否格式化SQL语句 -->
<property name="format_sql">true</property>
<!-- 自动建表,取值有四种:
create: 根据映射文件生成表, 每次执行都删除之前创建过的表
create-drop: 根据映射文件生成表,每次执行完毕都会删除表
update: 根据映射文件生成表,若以后表结构与映射文件不同,则更新表结构,但不会删除之前的记录,也不会删除映射文件中不存在的列
validate: 不会根据映射文件生成表,只会校验映射文件和表结构是否一致,不一致则抛异常
-->
<property name="hbm2ddl.auto">update</property>
<!-- 引入映射文件 -->
<mapping resource="com/binyulan/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

5 编写测试类

package com.binyulan.persistence1;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.binyulan.domain.User;
public class SimpleTest { private Session session;
private Transaction transaction;
@Before
public void init(){
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
session = cfg.buildSessionFactory(serviceRegistry).openSession();
transaction = session.beginTransaction();
} @After
public void destory(){
transaction.commit();
session.close();
} @Test
public void testSave() {
try {
User user = new User();
user.setBirthday(new java.sql.Date(0));
user.setName("abc");
session.save(user);
} catch (HibernateException e) {
if (transaction != null) {
transaction.rollback();
}
throw e;
}
}
}

转载请标注出处,谢谢。

第一节 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. Android短信彩信收发流程(应用层)

    下图为ComposeMessageActivity中confirmSendMessageIfNeeded部分的信息发送流程.主要以接收者有效性的确认为主,然后转向sendMessage方法进行发送. ...

  2. [MODx] 2. Install some useful packages into ur MODx

    1. The package we might need: 2. Install the package: Select Installer Download Extras Install the p ...

  3. gdb在运行maintenance info program-spaces命令时coredump

    coredump时的信息: (gdb) maintenance info program-spaces *** Error in `gdb': free(): invalid pointer: 0x0 ...

  4. androisd wifi

    http://blog.csdn.net/yunjinwang/article/details/11968837 http://blog.csdn.net/yunjinwang/article/det ...

  5. C#的空接合运算符 三目运算符

    1.空接合运算符:操作数1??操作数2: 2.第一个操作数必须是一个可空类型或引用类型,第二个操作数必须与第一个操作数类型相同,或者可以隐含的转换为第一个操作数的类型: 3.如果第一个操作数不为nul ...

  6. python_基本语法

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  7. BestCoder Sequence

    hdu  4908  Bestcoder Problem Description Mr Potato is a coder.Mr Potato is the BestCoder. One night, ...

  8. c编写程序完成m名旅客和n辆汽车的同步程序代写

    jurassic公园有一个恐龙博物馆和一个公园,有m名旅客和n辆汽车,每辆汽车仅能允许承载一名旅客.旅客在博物馆参观一阵,然后排队乘坐旅行车.当一辆车可用时,他载入一名旅客,再绕花园行驶任意长的时间. ...

  9. div 并排

    <style type="text/css">#d1 {float:left;background:#f00;}#d2 {float:left;background:# ...

  10. C中的回调函数

    C语言中应用回调函数的地方非常多,如Nginx中: struct ngx_command_s { ngx_str_t name; ngx_uint_t type; char *(*set)(ngx_c ...