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 ...
随机推荐
- eclipse或IDEA连接魅蓝
1.首先 安装ADB 驱动 http://developer.android.com/tools/device.html 如果没装就自行去下载安装 别的品牌都可以顺利连接,魅族手机特有的原因导至在开发 ...
- 两个有关Knockout自定义拓展方法fn的小技巧
Adding custom functions using "fn" 让observable自增/自减 最简单的方法是self.num(self.num() + 1), 但是这个写 ...
- redis的图形界面管理工具:phpredisadmin
大部分人都知道redis是一款用在缓存服务器上的软件,它与memcache类似,都可以存储海量的数据,用在大访问量的web网站.聊天记录存放等方面,但是又与memcache不同: 1.缓存数据可以持久 ...
- 17.1 Replication Configuration 复制配置
17.1 Replication Configuration 复制配置 17.1.1 How to Set Up Replication 17.1.2 Replication Formats 17.1 ...
- python中 __name__及__main()__的使用
python中 __name__及__main()__的使用 #hello.py def sayHello(): str="hello" print(str); if __name ...
- Windows Server基础架构云参考架构:硬件之上的设计
作者 王枫 发布于2014年1月27日 综述 毫无疑问,移动互联网.社交网络.大数据和云计算已经成为IT发展的四个大的趋势.其中云计算又为前三个提供了一个理想的平台.今天不仅互联网公司,很多传统行业的 ...
- (转载)Javascript操作表单之间的数据传递
(转载)http://www.aspxhome.com/javascript/skills/200710/214825.htm 今天有朋友问我关于用JAVASCRIPT来进行页面各表单之间的数据传递的 ...
- Red and Black
Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 一段SQL代码的压缩:从974行到96行,十倍压缩
涉及到数据库拆分,需要将相关表的JOIN SQL剥离. 剥离过程中,发现了这么个SQL XML.整个SQL 974 行,分为6个函数.读起来费劲无比. <?xml version="1 ...
- SRM 442(1-250pt, 1-500pt)
DIV1 250pt 题意:将一个数表示成质因子相乘的形式,若乘式所含数字的个数为质数,则称A为underprime.比如12 = 2*2*3,则含3个数字,是underprime.求A, B之间un ...