新手上路之Hibernate:第一个Hibernate例子
一、Hibernate概述
(一)什么是Hibernate?
Hibernate核心内容是ORM(关系对象模型)。可以将对象自动的生成数据库中的信息,使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思想来操作数据库,而不用关心繁琐的JDBC。所以,Hibernate处于三层架构中的D层(持久层)。
(二)使用Hibernate的优点
1、Hibernate可以使用在java的任何项目中,不一定非要使用在java web项目中。因为Hibernate不需要类似于tomact这些容器的支持,可以直接通过一个main方法进行测试。
2、通过下面的实例,可以发现使用Hibernate可以大大减少代码量。
3、由于使用了Hibernate,代码中不涉及具体的JDBC语句,所以就方便了代码的可移植性。
二、Hibernate开发的环境搭建
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory ><!-- mysql数据库驱动 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- mysql数据库名称 --><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property><!-- 数据库的登陆用户名 --><property name="hibernate.connection.username">root</property><!-- 数据库的登陆密码 --><property name="hibernate.connection.password">root</property><!-- 方言:为每一种数据库提供适配器,方便转换 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property></session-factory>
</hibernate-configuration>
三、HIbernate第一个实例
import java.util.Date;public class User {private String id;private String username;private String password;private Date createTime;private Date expireTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String userName) {this.username = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getExpireTime() {return expireTime;}public void setExpireTime(Date expireTime) {this.expireTime = expireTime;}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.example.hibernate.User"><id name="id"><generator class="uuid"/></id><property name="username"/><property name="password"/><property name="createTime"/><property name="expireTime"/></class>
</hibernate-mapping>
其中的property标签是将要生成是数据库表中的字段,在这里不用关心各个字段是什么类型的。因为Hibernate会根据上面的实体类中属性的类型来决定将来表中字段的类型
<hibernate-configuration><session-factory ><!-- mysql数据库驱动 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- mysql数据库名称 --><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property><!-- 数据库的登陆用户名 --><property name="hibernate.connection.username">root</property><!-- 数据库的登陆密码 --><property name="hibernate.connection.password">root</property><!-- 方言:为每一种数据库提供适配器,方便转换 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><mapping resource="com/example/hibernate/User.hbm.xml"/></session-factory>
</hibernate-configuration>
注意:必须是“/”而不能是“.”。
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/*** 将hbm生成ddl* @author BCH**/
public class ExoprtDB {public static void main(String[] args) {//默认读取hibernate.cfg.xml文件Configuration cfr = new Configuration().configure();SchemaExport export = new SchemaExport(cfr);export.create(true, true);}
}
到这里就可以生成User表了,但是如果直接运行ExoprtDB.java文件是不能生成User表的。因为在mysql数据中还没有建立数据库Hibernate-first。所以在mysql控制台中通过create database hibernate-first; use hibernate-first;之后再执行ExoprtDB.java文件就可以生成表了。
import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;public class Client {public static void main(String[] args) {//读取配置文件Configuration cfg = new Configuration().configure();SessionFactory factory = cfg.buildSessionFactory();Session session = null;try{session = factory.openSession();//开启事务session.beginTransaction();User user = new User();user.setUsername("用户名");user.setPassword("123");user.setCreateTime(new Date());user.setExpireTime(new Date());session.save(user);//提交事务session.getTransaction().commit();}catch(Exception e){e.printStackTrace();//回滚事务session.getTransaction().rollback();}finally{if(session != null){if(session.isOpen()){//关闭sessionsession.close();}}}}
}
(四)总结
转载于:https://www.cnblogs.com/jinxiang1224/p/8468214.html
新手上路之Hibernate:第一个Hibernate例子相关推荐
- 软件项目经理新手上路16 - 后记,一切才刚刚开始
如果你内向,同时觉得自己够聪明,就去做软件开发人员吧.这是我当时为什么从事软件行业的原因.而且,我发现不是我一个人这么想,中国内向的聪明人实在是太多了.这些人都认为,相对于面对人而言,他们更善于面对电 ...
- 在Eclipse中写第一个hibernate小例子
在hibernate自带的文档中,包含了一个很简单的小例子,不过这个小例子是基于ant的,而且说的不是很详细,不利于新手学习.在这里,我将在Eclipse中实现这个例子,并给出详细的实现步骤. ...
- 用php建设一个简单的网站,PHP_PHP新手上路(六),建设一个简单交互的网站(二) 5 - phpStudy...
PHP新手上路(六) 建设一个简单交互的网站(二) 5.5 计数器 让我们在首页上加上一个计数器.这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数.counter.inc包含 ...
- 对“纯手工编写的第一个Hibernate程序”的改进
在上一篇博文<纯手工编写第一个Hibernate程序>中,介绍了如何手工编写第一个简单的Hibernate程序.在那个例子中,为了降低程序编写的难度,所有的类都没有包的声明.然而在实际开发 ...
- Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?
你有一个Hibernate实体的共同基类,即具有id,version和其他常见属性的MappedSuperclass?有什么缺点吗? 例: @MappedSuperclass() public cla ...
- 第一个Hibernate项目
一.构建Hibernate项目 1.新建Java项目HibernateDemo1 2.导入Hibernate下的jar包(lib->required下的所有jar包)+jdbc驱动包 3.导入h ...
- Hibernate 入门----第一个Hibernate应用程序
(可参考Hibernate中文文档--附件下载) [align=center][size=medium] 第一个Hibernate应用程序 [/size][/align] [b]一.首先我们将创建一个 ...
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解...
在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...
- Hibernate→ORM、简介、第一个Hibernate实现、核心XML配置、Hibernate执行流程、操作数据库对象session、事务、映射XML配置、单例CRUD、get与load
OMR Hibernate 官网 http://hibernate.org/ 第一个Hibernate实现 配置文件 持久化类 关系映射文件 测试类 代码 hibernate.cfg.xml常用配置 ...
最新文章
- [4月21日]《51CTO 编辑部的外传》——剧本篇(上)
- javaweb:servlet
- 编译成功但链接失败的原因
- 教育孩子的一个很棒的方式
- 程序包com.sun.istack.internal不存在
- 关于待机、休眠、睡眠的区别和优缺点
- [Apple开发者帐户帮助]八、管理档案(2)创建临时配置文件(iOS,tvOS,watchOS)...
- webservice 服务器无法处理请求_Message Queue与WebService比较
- ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...
- 剑指offer之数据流中的中位数
- lambda函数if_现代 C++:Lambda 表达式
- leetcode第一刷_Merge Intervals
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_2_等待唤醒案例分析...
- Js之History对象
- java轩辕剑天之痕游戏攻略_轩辕剑3外传天之痕攻略 全流程文字攻略(3)
- 从客户端登陆服务器的配置文件,从客户端登陆服务器的配置
- pip install镜像安装
- English trip V2 - 24 Making Predictions Teacher: Taylor
- android手机连接电脑,安卓手机连接电脑的方法
- #420 Div2 Problem B Okabe and Banana Trees (math 暴力枚举)
热门文章
- 计算机文化基础 电大,电大计算机文化基础形考一答案
- unity3d双面材质_unity3d 模型怎么双面显示?
- 整数和小数的移码计算方法
- android blcr 编译,BLCR 基本环境搭建【zz~】
- 深度学习导论(5)手写数字识别问题步骤
- java图形化界面设置焦点_如何在更新窗口时防止Java图形程序窃取焦点?
- 『数据库』数据库的查询可不是只知道Select就可以的--关系数据库系统的查询处理
- linux-shell命令之cat【输出档案内容】
- 如何在ubuntu下安装source insight
- 如何用软件工程消灭软件危机?