HIdernate入门
简介:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
第一步:环境搭建
1.下载jar包
Hibernate的官方网站是http://hibernate.org,Hibernate的jar包都可以从官方网站下载得到。
2.部署jar包
将下载好的jar包部署到自己的项目中。
3.创建Hibernate配置文件hibernate.cfg.xml。
在项目的src目录下添加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> < !--数据库连接设置-->
< !--数据库JDBC驱动设置-->
<property name="connection.driver_class"
>org.hsqldb.jdbcDriver</property>
< !--数据库url-->
<property name="connection.url"
>jdbc:hsqldb:hsql://localhost</property>
< !--数据库用户名-->
<property name="connection.username"
>sa</property>
< !--数据库用户密码-->
<property name="connection.password"
></property> < !--JDBC连接池(使用内置的)-->
<property name="connection.pool_size"
>1</property> < !--SQL方言-->
<property name="dialect"
>org.hibernate.dialect.HSQLDialect</property> < !--使Hibernate自动会话上下文管理-->
<property name="current_session_context_class"
>thread</property> <!--关闭二级缓存-->
<property name="cache.provider_class"
>org.hibernate.cache.NoCacheProvider</property> <!-- 是否将运行期间生成的sql输出到日志以供调试-->
<property name="show_sql"
>true</property> < !--在启动时,删除和重新创建数据表结构-->
<property name="hbm2ddl.auto"
>update</property>
</hibernate-configuration >
4.创建持久化类和映射文件
持久化类是指其实例状态需要被Hibernate持久化到数据库中的类,在应用程序设计中,持久化类通常对于需求中的业务实体类。
映射文件一般命名:类名.hbm.xml
映射文件配置示例:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.hibernate.tutorial.domain"> <class name="Event" table="EVENTS">
<id name="id" column="EVENT_ID">
<generator class="native"/>
</id>
<property name="date" type="timestamp" column="EVENT_DATE"/>
<property name="title"/>
</class> </hibernate-mapping
>
Event为持久化类的类
table为持久化类对应的数据库表名
id:表示持久化类的id和表的主键的映射。
其中 name为持久化类的属性名,column为数据库表中对应的列名
property 节点定义持久化类中属性和数据库中字段的对应关系
5.在hibernate.cfg.xml文件中进行映射文件配置
示例
<mapping resource="cn/lhl/entity/User.hbm.xml"/>
resource 为映射文件的全路径
第二部,使用Hibernate完成持久化操作 //读取并解析配置文件
//读取并解析配置文件
Configuration configuration=new Configuration().configure();
//创建session工厂对象
SessionFactory sf=configuration.buildSessionFactory();
//打开sessionn
Session session= sf.openSession();
//开始事务(怎删改操作必须,查询可选)
Transaction ts= session.beginTransaction();
//数据库操作
//修改
// User user= session.get(User.class,3);
// user.setName("wwwww");
// session.update(user);
//添加
// User user =new User();
// user.setName("1");
// user.setPwd("a");
// session.save(user);
//删除
// User user=new User();
// user.setId(2);
// session.delete(user);
//查询
// User user= session.get(User.class,3);
// System.out.println(user.getName());
//提交事务
ts.commit();
//关闭session
session.close();
HIdernate入门的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- Android优秀开源项目
本文转自:http://blog.tisa7.com/android_open_source_projects Android优秀开源项目 Android经典的开源项目其实非常多,但是国内的博客总是拿 ...
- (转载)AS3.0实例学习 熟悉新的事件机制和addChild的运用
(转载)http://www.jb51.net/article/13139.htm 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英 ...
- 将多个Sheet导入到同一个Excel文件中
实体类excel import java.util.List; /** * 功能: * 描述: * @author * @date 2015-3-19 下午5:15:48 */ public clas ...
- Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路
2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 647 Solved: 348[Submit][Sta ...
- 怎么通过IE连接本机oracle数据库
这个目录下D:\oracle\product\10.2.0\db_study\install ,有个reademe.txt文件,里面记录着你访问数据库的网址和端口.
- ganglia 无数据问题解决
用ambari安装了HDP版本的hadoop,dashboard中ganglia的CPU.内存.网络等监控没有数据,找了很多原因,最后发现是因为rrdcache的时间问题导致的. gmetad的deb ...
- php连接mysql数据库练手
<?php $servername = "localhost"; $username = "yosha"; $password = "leon0 ...
- SSL 通信及 java keystore 工具介绍
http://www.javacodegeeks.com/2014/07/java-keystore-tutorial.html Table Of Contents 1. Introduction 2 ...
- Idea实现WebService实例 转
作者:http://blog.csdn.net/dreamfly88/article/details/52350370 因为工作需要,数据传输部分需要使用webservice实现,经过两天的研究,实现 ...
- PHP面试题三
1.nginx使用哪种网络协议? nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http fastcgi负责调度进程 2. <? echo 'hello tush ...