文档章节

Hibernate上路_01-入门流程

vigiles
 vigiles
发布于 2013/11/12 15:27
字数 594
阅读 99
收藏 2
本系列Hibernate版本:hibernate-release-4.2.7.SP1

1.数据库准备:

/**注释:
	MySQL,创建一个新数据库
 **/
CREATE DATABASE db_hibernate  CHARACTER SET utf8;

use db_hibernate; 

 -- 注释:创建一个表
CREATE TABLE tb_user(
	id INT PRIMARY KEY AUTO_INCREMENT, #注释:主键,自动序列
	name VARCHAR(20), 
	age INT, 
	city VARCHAR(40) 
);


2.JavaWeb项目:


3.基本Java对象(POJO):

package cn.cvu.hibernate.domain;

public class PojoUser {
	//对应数据表中的 类型 字段 
	private Integer id;	
	private String name;
	private Integer age;
	private String city;
	
	//提供set/get方法 
	public Integer getId() { }
	public void setId(Integer id) { }
	public String getName() { }
	public void setName(String name) { }
	public Integer getAge() { }
	public void setAge(Integer age) { }
	public String getCity() { }
	public void setCity(String city) { }
}


4.POJO.hbm.xml映射文件:

<?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>
	<!-- 映射关系配置 
	name="POJO类" table="表单名称" catalog="数据库名称,若不指定则使用jdbc中的配置" -->
	<class name="cn.cvu.hibernate.domain.PojoUser" table="tb_user" catalog="db_hibernate">
		<!-- 配置主键
		name="POJO中对应属性" colum="表单中主键名" type="数据类型" -->
		<id name="id" column="id" type="int">
			<!-- 主键的生成方式。native:根据底层数据库自动选择 -->
			<generator class="native"></generator>
		</id>
  <!-- 其它属性配置 -->
		<property name="name" column="name" type="string"></property>
		<property name="age" column="age" type="int"></property>
		<property name="city" column="city" type="string"></property>
	</class>
</hibernate-mapping>


5.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>
		<!-- 方言-指定数据库的SQL语言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
		<!-- 指定数据库的驱动 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<!-- 数据库路径 -->
		<property name="hibernate.connection.url">jdbc:mysql:///db_hibernate</property>
		<!-- 登录用户 -->
		<property name="hibernate.connection.username">root</property>
		<!-- 密码 -->
		<property name="hibernate.connection.password">123456</property>

		<!-- 常用配置 -->
		<property name="hibernate.show_sql">true</property><!-- 控制台打印sql语句 -->
		<property name="hibernate.format_sql">true</property><!-- 格式化输出的sql语句 -->
		<property name="hibernate.hbm2ddl.auto">update</property><!-- 在数据库自动建表 -->
		<property name="hibernate.connection.autocommit">true</property><!-- 自动提交事务 --> 
				
		<!-- 引用映射文件(最后配置) -->
		<mapping resource="cn/cvu/hibernate/domain/PojoUser.hbm.xml"/>
		
	</session-factory>
</hibernate-configuration>


6.执行类:

模板代码

package cn.cvu.hibernate.operate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;

public class HibernateOperate {

	@Test
	/* 增 */
	public void test() throws Exception {
		// 1.实例化配置器,加载配置文件 hibernate.cfg.xml,POJO.hbm.xml
		Configuration configuration = new Configuration().configure();
		// 2.服务注册器
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().
  applySettings(configuration.getProperties()).
  buildServiceRegistry();
		// 3.创建会话连接工厂
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		// 4.创建会话
		Session session = sessionFactory.openSession();
		// 5.开启事务
		Transaction transaction = session.beginTransaction();

		// 6.由框架自动生成sql语句
  // 这里是操作代码

		// 7.提交事务,释放资源
		transaction.commit();
		session.close();
		sessionFactory.close();
	}
}

- end


© 著作权归作者所有

vigiles

vigiles

粉丝 99
博文 84
码字总数 82564
作品 0
昌平
程序员
私信 提问
zhaoml529/SpringMVC-Activiti5.16-Shiro

SpringOA简介 基于SpringMVC+Shiro+Activiti 5.16 的简单OA,可以快速入门Activiti学习用。 此版本前台使用的是EasyUI 框架简介 框架以Spring Framework为核心、Spring MVC作为模型视图控制器...

zhaoml529
2017/05/19
0
0
hibernate问题

大家好,新手上路。如何理解jpa和hibernate的概念,作用,使用?还有如何理解hibernate的session??还有我看hibernate都是dao层都是继承HibernateDaoSupport,然后就是用this.getHiernateT...

樱木花道VS康
2016/10/12
93
1
jBPM开发入门指南(3)

5  安装 jBPM 的 Eclipse 开发插件 有个辅助工具开发起来方便一点,只不过现在 jBPM 的开发工具插件功能还不算太强,也就一个“项目创建向导”的功能,让你: (1)不用再去配置 classpath ...

唐玄奘
2017/12/06
0
0
Hibernate 入门

一、Hibernate包。 1、目录结构。 documentation:存放Hibernate相关文档,包括参考文档和API文档。 lib:存放Hibernate编译和运行所依赖的JAR包。其中required子目录下包含了运行Hibernate...

JackMo2015
2016/12/27
24
0
Hibernate-Entity.hbm.xml实现-intellij-kotlin入门级

个人博客 项目地址-码云 intellij新建Maven项目 在src/resource下新建文件,一定要在src/resource目录下,否则会报无法定位资源文件的错误。 不要使用intellij的Add Framework Support,可能...

futaosmile
2017/09/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你知道多少this,new,bind,call,apply?那我告诉你

那么什么是this,new,bind,call,apply呢?这些你都用过吗?掌握这些内容都是基础中的基础了。如果你不了解,那还不赶快去复习复习,上网查阅资料啥的! 通过call,apply,bind可以改变thi...

达达前端小酒馆
今天
5
0
设计模式之命令模式

命令模式的类图 其中的角色有: Client 客户端。只依赖于调用者Invoker、接收者Receiver、以及Command(网上找的图片这里没有画出来),不用关注接收者如何执行命令,只需要告诉调用者需要执行...

陈年之后是青葱
今天
7
0
2. 彤哥说netty系列之IO的五种模型

你好,我是彤哥,本篇是netty系列的第二篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。 何...

彤哥读源码
今天
5
0
OSChina 周四乱弹 —— 喵的波粒二象性

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 小小编辑推荐:《水墨兰亭》- 李志辉 《水墨兰亭》- 李志辉 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :卧室里采光要足够好,这样...

小小编辑
今天
37
1
前后端分离接口规范

最近在开发,遇到前后端关于Boolean类型的参数传参和接收的问题: 场景:后台会根据用户是否出车/是否出司机(Boolean类型)来决定后端的业务逻辑(比如费用的计算),前端使用JSON字符串类型...

code-ortaerc
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部