hibernate教程

合集下载

hibernate的基本用法

hibernate的基本用法

hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。

它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。

本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。

一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。

然后将解压后的文件夹添加到Java项目的构建路径中。

2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。

这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。

3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。

除此之外,还需要指定数据库的用户名和密码等信息。

4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。

我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。

这个映射文件描述了实体类与数据库表之间的对应关系。

二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。

这个类的字段通常与数据库表的列对应。

同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。

2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。

如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。

3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。

Hibernate学习笔记

Hibernate学习笔记

Hibernate项目的构建与配置1.在项目里倒入Hibernate所必须的Jar包(1)Hibernate框架可以使用在任何的Java项目里,并不一定是Web项目。

只需要在项目里倒入Hibernate所必须要使用的jar包就可以了。

(2)在Hibernate的官网下载hibernate-release-4.2.2.Final.zip解压,要使用Hibernate必须导入的jar包就在目录“hibernate-release-4.2.2.Final\lib\required”下。

倒入此路径下的所有jar包就可以了。

2.配置hibernate.cfg.xml文件(1)配置hibernate.cfg.xml文件可以参考“\project\etc”目录下的hibernate.cfg.xml文件与hibernate.properties文件。

(2)使用Hibernate连接MySQL的hibernate.cfg.xml配置文件如下:<hibernate-configuration><session-factory>(设置显示Hibernate产生的SQL语句)<property name="show_sql">true</property>(设置MySQL的SQL语法的方言)<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>(设置MySQL的驱动程序)<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>(设置MySQL的数据库路径、用户名、密码)<property name="hibernate.connection.url">jdbc:mysql:///java</property><property name="ername">root</property><property name="hibernate.connection.password">lizhiwei</property>(设置当数据库要保存的表不存在时,就新建表)<property name="hibernate.hbm2ddl.auto">update</property>(设置对象与数据库表的关系映射文件)<mapping resource="vo/User.hbm.xml"/></session-factory></hibernate-configuration>(3)此配置文件一般放在项目的src目录下。

myeclipse hibernate反向工程图文教程

myeclipse hibernate反向工程图文教程

Myeclipse6.0 的hibernate反向工程第一步:建DB Browser方法一:Window -> Open Persipective -> MyEclipse Database Explorer以后步骤同二方法二: window / show view /other 选择如下图最后,点击OK,在工作空间上将会出现一个DB Browser的配置页面,在配置页面空白处,右键,选择New按钮在弹出的对话框当中配置数据库连接点完成即可点击my_driver 可以new 表等点connect to my_driver 可以new sql编辑器执行sql: 本次执行sql 例子如下:create table testUser(id int not null,username varchar(200),age int,primary key ("ID"))点击左上绿色按钮即可执行sql第二步:新建java工程(简单省略了),初始化Hibernate开发环境点击工程鼠标右键得到下图:Next (选择刚才你建立的db browser)Next 新进包名如图点击完成新的工程目录结构如下图所示:我们可以看到,系统自动给我们生成了HibernateSessionFactory.java及Hibernate.cfg.xml配置文件,并将Hibernate环境所需要的外部包文件也加入到CLASSPATH当中。

第三步:通过反向工程,生成POJO及hbm映射文件:在DB Browser配置界面,入进hibernate数据库,如下图所示:找到该用户下刚才所建的表将弹出如下的对话框,在Java package当中输入产生的hibernate映射的JavaBean为com.gjrencai.model,详细请参考下图点击Next>按钮,在新的对话框当中,在ID Generator的选项当中选择increment,表示ID为数据库自增长类型。

struts2+spring3+hibernate整合教程

struts2+spring3+hibernate整合教程

Struts2+Spring3+hibernate3整合(2011年7月末,最新)上次下载了一个教程,上面写着:“献给我亲爱的老婆!”(羡慕不已)。

想了想,我没老婆,难道没什么好写了!不难…献给我暗恋过的每一个女人!(嘿嘿…)如果在你遇到的女生中有一个幽默豁达的女生,不要犹豫,追上去,就娶她了!一,需要的框架包二,建立project,添加相应的.jar文件(重点)1,eclipse中建立dynamic web project,这里是ssh_integrate_0100。

2,src中创建需要的类,这里以一个域模型为user的例子说明。

(现在建立这些类,可以方便我们在搭建时候随时测试!)User.javaIUserDao.javaUserDaoImpl.javaIUserService.javaUserServiceImpl.java3,拷贝spring-framework-3.1.0\dist目录下的所有jar包,注意有一个不是jar的文件,当然拷过去也没事。

4,拷贝spring运行中需要的其他jar文件,主要是mons-logging,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。

ii.Aspectjrt.jar和aspect-waver.jar,可以从spring-framework-2.5.6-with-dependencies/lib/aspectj下面找到(不知道为什么,spring-framework-3.0.2.RELEASE-dependencies中没有aspectjrt的jar包)iii.aopalliance.Jar,apache-dbcp.jar,apache-pool.jar,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。

5,建立beans.xml,这里使用的是annotation和component-scan,这样配置可以大大简化配置,所以是best-practice,其他配置请参考spring文档。

最经典的hibernate教程 从入门到精通 第一篇(共四篇)

最经典的hibernate教程 从入门到精通 第一篇(共四篇)

• </session-factory>
准备3:添加实体类和映射文件(UserInfo.hbm.xml)
使用Hibernate的7个步骤:
1、 Configuration 7、 关闭Session 2、 创建 SessionFactory
6、 提交事务 5、
3、 打开 Session 4、 开始一个事务
2-1):添加配置文件 -- hibernate.cfg.xml
<session-factory> <property name="connection.url"> jdbc:microsoft:sqlserver://localhost:1433;Database=pubs </property> <property name="ername">sa</property> <property name="connection.password">pwd</property> <property name="connection.driver_class"> com.microsoft.jdbc.sqlserver.SQLServerDriver </property> <property name="dialect"> org.hibernate.dialect.SQLServerDialect </property> <property name="show_sql">true</property> <mapping resource="com/aptech/jb/entity/User.hbm.xml" /> </session-factory>

hibernate4学习笔记

hibernate4学习笔记

hibernate4学习笔记Hibernate4学习笔记本⼈全部以⾃学为主,在⽹上收集各种学习资料,总结归纳学习经验,现将学习路径给予⼤家分享。

此次学习的hibernate的版本是:hibernate-release-4.2.4.Final(截⽌2015年7⽉31⽇最新版),JAVA的版本是:java8.0,使⽤的开发⼯具是:Eclipse Mars Release (4.5.0)。

第⼀天:Hibernate4基础知识和HelloWorld简单编程Hibernate是⼀种半成品ORM框架,对数据库持久化操作,程序员对数据库的操作转换成对对象的操作。

ORM 采⽤元数据来描述对象-关系映射细节, 元数据通常采⽤XML 格式, 并且存放在专门的对象-关系映射⽂件中。

HelloWorld简单编程1、准备Hibernate环境(1)导⼊Hibernate的Jar包,如下:(2)导⼊Mysql驱动包,我⽤的数据库是:Mysql 5.0,数据库驱动包如下:以上所有Jar加完毕之后,需要加⼊到Eclipse⾃⾝系统⾥⾯,具体如下:以上操作完毕之后,Hibernate的环境就算搭建完毕,下⾯就可以进⼀步操作。

2、配置hibernate.cfg.xml⽂件,主要是对数据库的连接,具体如下:"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/doc/63fa364d5022aaea998f0fde.html /hibernate-configuration-3.0.dtd ">rootmysqlname="connection.driver_class">com.mysql.jdbc.Driver jdbc:mysql:///Test(或者:jdbc:mysql://localhost:3306/Test)name="dialect">org.hibernate.dialect.MySQLInnoDBDialecttruetrueupdate3、编写⼀个实例类News.java,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;public class News {private Integer id;private String title;private Date date;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public News(String title, String author, Date date) { super();this.title = title;this.author = author;this.date = date;}public News(){}@Overridereturn"News [id="+ id+ ", title="+ title+ ", author="+ author + ", date=" + date + "]";}}4、创建News.hbm.xml配置映射⽂件,具体代码如下:"/doc/63fa364d5022aaea998f0fde.html /hibernate-mapping-3.0.dtd">5、将映射⽂件News.hbm.xml指定到hibernate.cfg.xml配置⽂件⾥⾯,即在hibernate.cfg.xml⽂件⾥加⼊⼀⾏映射代码,具体如下:6、创建hibernate API操作测试类(Juit测试),验证hibernate的优势效果,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;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 HibernateTest {@Testpublic void test() {//1. 创建⼀个 SessionFactory 对象SessionFactory sessionFactory=null;//1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和对象关系映射信息Configuration configuration=new Configuration().configure();//4.0 之前这样创建//sessionFactory=configuration.buildSessionFactory();//2). 4.0以后创建⼀个 ServiceRegistry 对象: hibernate 4.x 新添加的对象//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.ServiceRegistry serviceRegistry=newServiceRegistryBuilder().applySettings(configuration.getProperties() ).buildServiceRegistry();sessionFactory=configuration.buildSessionFactory(serviceRegistry) ;//2. 创建⼀个 Session 对象Session session=sessionFactory.openSession();//3. 开启事务Transaction transaction=session.beginTransaction();//4. 执⾏保存操作News news = new News("Java12345", "ATGUIGU", new Date(new java.util.Date().getTime()));session.save(news);//5. 提交事务/doc/63fa364d5022aaea998f0fde.html mit();//6. 关闭 Sessionsession.close();//7. 关闭 SessionFactory 对象sessionFactory.close();}}7、测试结果如下:(1)数据库⾥⾯的结果如下:(2)Eclipse下的语句⽣成如下:以上就是简单Hibernate的测试,总结:1、不需要在数据库⾥⾯创建任何数据,由hibernate ⾃动⽣成;2、代码简单易理解,不复杂,测试数据只需要先创建以下⼏个步骤:SessionFactory-→Session-→Transaction-→session操作数据库-→提交-→关闭;3、不需要写SQL 语句,从头到尾没有写⼀条SQL语句,反⽽Hibernate帮我们⽣成SQL语句。

简述hibernate查询数据库的步骤

简述hibernate查询数据库的步骤

简述hibernate查询数据库的步骤Hibernate是一个开源的Java持久化框架,它可以帮助开发者简化数据库操作,提高开发效率。

在Hibernate中,查询数据库是非常常见的操作,本文将以标题的方式,简述Hibernate查询数据库的步骤。

一、配置Hibernate在开始使用Hibernate查询数据库之前,首先需要进行Hibernate 的配置工作。

包括创建Hibernate配置文件(hibernate.cfg.xml),配置数据库连接信息、数据库方言等。

同时,还需要配置实体类与数据库表之间的映射关系(Hibernate映射文件)。

二、创建SessionFactorySessionFactory是Hibernate的核心接口之一,它负责创建Session对象,是实现Hibernate查询的基础。

在Hibernate中,SessionFactory是线程安全的,通常一个应用程序只需要一个SessionFactory实例。

三、打开Session在进行数据库查询之前,需要先打开一个Session。

Session是Hibernate中的一个重要概念,它代表一个与数据库的会话。

可以通过SessionFactory的openSession方法来打开一个Session。

四、开始事务在进行数据库查询操作之前,通常需要开启一个事务。

通过调用Session的beginTransaction方法,开始一个事务。

事务的开启可以保证数据的一致性和完整性。

五、执行查询操作在Hibernate中,有多种查询方式可以选择。

常见的查询方式包括HQL查询、QBC查询和Native SQL查询。

HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,类似于SQL语句。

QBC(Criteria Query)是一种基于Criteria的查询方式,可以通过CriteriaBuilder来构建查询条件。

hibernate6 standardsqlfunction 自定义方法

hibernate6 standardsqlfunction 自定义方法

hibernate6 standardsqlfunction 自定义方法摘要:1.Hibernate 6简介2.Standard SQL Functions概述3.自定义方法的概念与用途4.在Hibernate 6中使用自定义方法5.示例:创建自定义函数6.总结与建议正文:【1.Hibernate 6简介】Hibernate 6是一款流行的开源对象关系映射(ORM)框架,它可以帮助开发人员更轻松地在Java应用程序中处理数据库操作。

Hibernate 6提供了许多功能,其中之一就是Standard SQL Functions。

【2.Standard SQL Functions概述】Standard SQL Functions是Hibernate 6中一组预先定义的SQL函数,它们可以在查询过程中使用。

这些函数允许用户在查询中执行复杂的计算和操作,如聚合、分组、筛选等。

然而,有时这些内置函数可能无法满足特定需求,这时就需要使用自定义方法。

【3.自定义方法的概念与用途】自定义方法是指在Hibernate 6中根据需求定制的一组SQL函数。

它们可以帮助用户在查询过程中执行特定操作,从而弥补内置函数的不足。

自定义方法的用途包括但不限于:- 处理特定数据类型- 实现复杂的业务逻辑- 集成第三方库或自定义库【4.在Hibernate 6中使用自定义方法】要在Hibernate 6中使用自定义方法,需要遵循以下步骤:1.创建自定义函数:首先,根据需求创建一个Java类,该类包含自定义方法的实现。

2.注册自定义函数:在映射文件中,使用`<function>`标签注册自定义函数。

注册时需要指定函数名、参数类型和返回类型。

3.在查询中使用自定义函数:在查询语句中,可以使用`function()`语法调用自定义函数。

【5.示例:创建自定义函数】以下是一个简单的示例,演示如何创建和使用自定义函数:1.创建自定义函数:```javapublic class CustomFunction {public static double customSum(double a, double b) {return a + b;}}```2.注册自定义函数:```xml<mapping namespace="com.example.entity"><function name="customSum" parameterType="double" returnType="double"><sql>SELECT custom_sum(<column>) FROM <table></sql></function></mapping>```3.在查询中使用自定义函数:```javapublic List<Double> findCustomSum(double a, double b) { Session session = sessionFactory.openSession();Query query = session.createQuery("SELECT customSum(a, b) FROM ExampleEntity");return query.list();}```【6.总结与建议】在Hibernate 6中,自定义方法可以帮助用户扩展查询功能,满足特定需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、使用Hibernate的3个准备和7个步骤准备1:导入Hibernate库(jar包);准备2:添加配置文件-Hibernate.cfg.xml<session-factory><property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;Database=zf</property> <property name="ername">sa</property><property name="connection.password">pwd</property><property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property> #配置数据库链接<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>#数据库方言<property name="show_sql">true</property>#设置运行时是否在控制台显示SQL语句<mapping resource="com/aptech/jb/entity/User.hbm.xml" />#映射文件,可以有多个</session-factory>准备3:添加实体类和映射文件(User.hbm.xml)类:public class User implements java.io.Serializable {//要实现Serializableprivate Integer uid;private String uname;private String upass;public User(){// 要有默认构造方法}// Getter and setter}User.hbm.xml:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="er"table="userinfo"><!-- 上面class为实体类到表的映射--><!-- 下面id表示主键property表示非主键,type要表示为类类型--><id name="uid"type="ng.Integer"><column name="uid"/>列名<generator class="increment"/></id><property name="uname"type="ng.String"><column name="uname"/></property><property name="sex"type="ng.String"><column name="sex"/></property><property name="age"type="ng.Integer"><column name="age"/></property><property name="birth"type="java.util.Date"><column name="birth"/></property></class></hibernate-mapping>1、Configeration(读取Hibernate.cfg.xml)2、创建SessionFactory(创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个)3、打开Session(类似于JDBC中的Connection)4、开始一个事物5、持久化操作6、提交事物7、关闭Sessionpublic static void main(String[] args) {Configuration conf = new Configuration().configure();//1、读取配置文件SessionFactory sf = conf.buildSessionFactory();// 2、创建SessionFactorySession session = sf.openSession();// 3、打开SessionTransaction tx = null;try{tx = session.beginTransaction();// 4、开始一个事务// 5、持久化操作User user = new User();user.setUname("Hibernate user");user.setUpass("password");session.save(user);mit();// 6、提交事务}catch(Exception e){if (null!=tx){tx.rollback();}e.printStackTrace();}finally{session.close();// 7、关闭Session}}二、使用Hibernate实现数据的加载、删除、修改根据主键加载(并没有更新数据,所以不需要进行事物控制)Session session = sf.openSession();User user = (User)session.get(User.class, id);session.close();System.out.println(user.getUname() + "," + user.getUpass()); 修改(先加载,再更新,不需要繁琐的逐字段编码)tx = session.beginTransaction();User user = this.testLoad(id);user.setUname("new Name");session.update(user);mit();删除(先加载,再删除)tx = session.beginTransaction();User user = this.testLoad(id);session.delete(user);mit();三、使用MyEclipse简化Hibernate开发1、给项目添加Hibernate支持(自动添加jar包)选中项目--菜单MyEclipse--Project Capabilities--Add Hibernate Capabilities 2、自动生成hibernate.cfg.xml配置文件3、生成实体类、映射文件四、代码的简化add方法和del、update方法的代码存在重复,可以采取什么方法精简呢1、增加一个Base接口,写入相关方法public abstract class BaseHibernateDAO {protected void add(Object item){Transaction tx = null;Session session = HibernateSessionFactory.getSession();try {tx = session.beginTransaction();session.save(item);mit();} catch (Exception e) {if(null!=tx){ tx.rollback(); }e.printStackTrace();}finally{session.close();}}// update,delete,get 方法与之类似…}2、最终的代码简化如下public class FwxxDAOHibImpl extends BaseHibernateDAO implements FwxxDAO { public FWXX get (int fwid) {super.get(FWXX.class,fwid);}public void add(FWXX fwxx) {super.add(fwxx);}public void del (int fwid) {super.del(FWXX.class, fwid);}public void update(FWXX fwxx) {super.update(fwxx);}…}。

相关文档
最新文档