我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Hibernate初步部署

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Hibernate初步部署

下载全套文件: hibernate-release-4.1.7.Final.zip

 

目录结构

Documentation文件夹下是开发帮助文档

Lib文件夹是开发使用的库,其中该文件夹下面的required目录是开发时必须导入的JAR文件;

Project文件夹是项目源码文件

 

Hibernate初步部署

JDBC与Hibernate的比较:

 

Hibernate初步部署

Hibernate初步部署

 

 

Hibernate的初步配置部署:

1.     创建web项目

2.     添加响应需要的Hibernate的jar包

3.     创建Java Bean业务实体类

4.     创建实体类映射的配置文件:**.hbm.xml

5.     创建Hibernate的配置文件hibernate.cfg.xml

6.     创建测试类测试hibernate是否配置成功

实体类:UserInfo.java

  1. public class UserInfo  

  2. {  

  3.    private int userid;  

  4.    private String userName;  

  5.    private String userPwd;  

  6.    private Date birthday;  

  7.  //省略了属性各种get和set方法  

  8. //创建含有id的构造函数  

  9.    public UserInfo(int id)  

  10.    {  

  11.        this.userid=id;  

  12.    }  

  13.     public UserInfo(int userid, String userName, String userPwd, Date birthday)  

  14.     {  

  15.         super();  

  16.         this.userid = userid;  

  17.         this.userName = userName;  

  18.         this.userPwd = userPwd;  

  19.         this.birthday = birthday;  

  20.     }  

  21.     //无参的构造函数是必须要有的  

  22.     public UserInfo()  

  23.     {  

  24.     }  

  25. }  

 

 

实体类的配置文件UserInfo.hbm.xml

(配置文件尽量和实体类名字去的一致方便管理和实体类放在同一个包中)

  1. <?xml version="1.0"?>  

  2. <!DOCTYPE hibernate-mapping PUBLIC  

  3.         "-//Hibernate/HibernateMapping DTD 3.0//EN"  

  4.      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

  5. <hibernate-mapping package="entity">  //package包指定实体类的包  

  6.     <class name="UserInfo" table="luser">    

  7. //name指定实体类名  table为数据库中实体类对应的表名如果没有指定就和类名一致  

  8.        <id name="userid">  

  9.             <generator class="native"/>  

  10.        </id>  

  11. //id标识主键的字段 class=native标识自增长  

  12.        <property name="userName" column=”name” />  

  13. //property指定属性的字段,column可以指定数据库中对应字段的名称,如果没有就和实体类的属性名一致  

  14.        <property name="userPwd" />  

  15.        <property name="birthday" />  

  16.     </class>  

  17. </hibernate-mapping> 

 

Hibernate的配置文件hibernate.cfg.xml

 

 

  1. <!DOCTYPE hibernate-configuration PUBLIC  

  2.     "-//Hibernate/HibernateConfiguration DTD 3.0//EN"  

  3.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  

  4. <hibernate-configuration>  

  5.     <session-factory>  

  6.         <!-- 显示执行的sql语句 -->  

  7.         <property name="show_sql">true</property>  

  8.         <!-- 格式化sql语句 -->  

  9.         <property name="format_sql">true</property>  

  10.         <!-- 配置数据库各种数据 -->  

  11.         <!-- 配置数据库本地语言 -->  

  12.         <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>  

  13.         <!-- 数据库驱动 -->  

  14.         <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>  

  15.         <!-- 数据库url -->  

  16.         <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.3.252:1521:orcl</property>  

  17.         <!-- 配置数据库的用户名和密码 -->  

  18.         <property name="hibernate.connection.username">bam1</property>  

  19.         <property name="hibernate.connection.password">bam1</property>  

  20.         <!-- 设置数据定义语言操作的方式 -->  

  21.         <property name="hibernate.hbm2ddl.auto">update</property>  

  22.         <!-- 加载对象关系映射文件 -->  

  23.         <mapping resource="entity/UserInfo.hbm.xml"/>  

  24.     </session-factory>  

  25. </hibernate-configuration>  

 

测试类Test.java

添加一条数据:

  1. public static void add()  

  2.     {  

  3.          

  4.         //第一步:读取Hibernate的配置文件  hibernamte.cfg.xml文件  

  5.         Configurationcon=new Configuration().configure();  

  6.         //第二步:创建服务注册构建器对象,通过配置对象中加载所有的配置信息  

  7.         ServiceRegistryBuilderregbulider=newServiceRegistryBuilder().applySettings(con.getProperties());  

  8.         //创建注册服务  

  9.         ServiceRegistryreg=regbulider.buildServiceRegistry();  

  10.         //第三步:创建会话工厂  

  11.         SessionFactorysessionFactory=con.buildSessionFactory(reg);  

  12.         //第四步:创建数据操作会话  

  13.         Sessionsession=sessionFactory.openSession();  

  14.         //创建对象  

  15.          */  

  16.         UserInfohanhan=new UserInfo();  

  17.         hanhan.setUserName("hanhan313");  

  18.         hanhan.setUserPwd("123");  

  19.         hanhan.setBirthday(new Date());  

  20.         /*  

  21.         //创建事物  

  22.         Transactiontran=session.beginTransaction();  

  23.         //保存数据  

  24.         session.save(hanhan);  

  25.         //提交事物  

  26.         tran.commit();  

  27.         //关闭对话  

  28.         session.close();  

  29.          

  30. }  

 

查询一条数据:

创建了session回话后

//查询id为10的userinfo的用户信息

UserInfouser=session.get(UserInfo.class,10);

更新一条数据:

首先查询出数据

UserInfo user=session.get(UserInfo.class,10);

再对user进行数据修改后

再通过获取到session回话

session.update(user)

删除一条数据:

删除数据时将需要删除的id数据包装成对象

比如:

UserInfouser=new UserInfo();

User.setUserId(10);

session.delete(user);  //删除时就会自动获取到user中id进行删除

hibernate的流程:

Hibernate初步部署

 

持久化JAVA类必须遵循的原则

 

1、为类的持久化字段声明访问方法(get/set),Hibernate对JavaBeans风格的属性实行持久化。

2、实现一个默认的构造方法,这样的话Hibernate就可以使用Constructor.newInstance()方法来实例化对象。

3、如果是集合类型的属性,它的类型必须定义为集合的接口,例如:List、Set

4、提供一个标识属性(Identifier property),如果没有该属性,一些功能不起作用,比如:级联更新,session.saveOrUpdate()。

 

对象的状态:

瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。

持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。

脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,hibernate不能检测到。

Hibernate初步部署

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Hibernate初步部署

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js PM2 部署的探戈:优雅舞步,完美部署

Node.js 应用部署利器:PM2 部署的探戈,助你优雅起舞,完美部署。
Node.js PM2 部署的探戈:优雅舞步,完美部署
2024-02-19

mysql部署有几个步骤

mysql 部署涉及以下步骤:确定系统需求(操作系统、硬件)。安装 mysql(从官方网站下载)。配置 mysql 服务(配置、日志记录)。创建数据库(指定名称和字符集)。管理用户(创建用户、授予权限)。导入数据(使用 mysqldump
mysql部署有几个步骤
2024-08-01

PHP CI/CD 新手教程:一步步部署

本文适用于 PHP 开发新手,提供了一个循序渐进的教程,指导您设置 CI/CD 管道,实现自动化的代码部署。
PHP CI/CD 新手教程:一步步部署
2024-03-04

docker部署fastapi的实现步骤

本文主要介绍了docker部署fastapi的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-02

Docker部署Mysql8的实现步骤

目录一、前置需求二、部署方法三、访问测试一、前置需求1.linux系统本人用的Centos72.安装dockerwww.cppcns.com参考这篇文章二、部署方法1.拉取mysql8镜像docker pull mysql:8
2022-07-06

Docker部署Apollo的实现步骤

本文详细阐述了使用Docker部署Apollo的步骤,包括前提条件、创建镜像、编写Compose文件、定义服务、运行容器、配置Apollo、运行和监控Apollo以及调试和最佳实践。通过遵循这些步骤,可以轻松地使用Docker在本地环境中部署和运行Apollo。
Docker部署Apollo的实现步骤
2024-04-02

编程热搜

目录