热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hibernate的简单流程

1.首先建立一个java项目或者jsp动态网页项目将Hibernate4\Hibernate4\hibernate-release-4.3.11.Final\hibernate-r

1.首先建立一个java项目或者jsp动态网页项目

将Hibernate4\Hibernate4\hibernate-release-4.3.11.Final\hibernate-release-4.3.11.Final\lib\required文件夹下的10个jar包导入项目中,再将mySQL的驱动包导入并Build Path

 

2.再将Hibernate的核心配置文件hibernat.cfg.xml导入src文件夹下

并修改配置文件

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><property name&#61;"connection.driver_class">com.mysql.jdbc.Driverproperty><property name&#61;"connection.url">jdbc:mysql://localhost:3306/hibernate_demo02property><property name&#61;"connection.username">rootproperty><property name&#61;"connection.password">123456property><property name&#61;"dialect">org.hibernate.dialect.MySQL5Dialectproperty><property name&#61;"show_sql">trueproperty><property name&#61;"hbm2ddl.auto">updateproperty><mapping resource&#61;"com/oracle/model/Person.hbm.xml"/>session-factory>hibernate-configuration>

倒数第三行的mapping标签为映射&#xff0c;映射model层中某一个类所对应的xml配置文件&#xff0c;并且采用地址的形式&#xff0c;resource&#61;“../../../xxx.hbm.xml" &#xff08;是斜杠不是点&#xff09;

3.创建HibernateUtil

package com.oracle.util;import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;public class HibernateUtil {private static final SessionFactory sessionFactory&#61;buildSessionFactory();private static SessionFactory buildSessionFactory(){Configuration configuration&#61;new Configuration().configure(); //实例化配置文件ServiceRegistry serviceRegistry&#61;new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); //实例化服务登记return configuration.buildSessionFactory(serviceRegistry); //获取Session工厂
}public static SessionFactory getSessionFactory(){return sessionFactory;}
}

 

4.开始创建model层表结构

首先是一个Person类

package com.oracle.model;import java.util.HashSet;
import java.util.Set;public class Person {private Integer id;private String realName;private String sex;public Person() {super();}public Integer getId() {return id;}public void setId(Integer id) {this.id &#61; id;}public String getRealName() {return realName;}public void setRealName(String realName) {this.realName &#61; realName;}public String getSex() {return sex;}public void setSex(String sex) {this.sex &#61; sex;}public Set getCars() {return cars;}public void setCars(Set cars) {this.cars &#61; cars;}
}

然后创建Person对应的xml配置文件Person.hbm.xml&#xff0c;该文件的路径必须被写入核心配置文件中的mapping标签中&#xff0c;否则将无法映射

xml version&#61;"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&#61;"com.oracle.model"> <class name&#61;"Person" table&#61;"t_person"><id name&#61;"id" column&#61;"id"><generator class&#61;"native">generator>id><property name&#61;"realName" column&#61;"real_name" length&#61;"30">property><property name&#61;"sex" column&#61;"sex" length&#61;"10">property>class>
hibernate-mapping>

中package属性为映射所在的包名
中name属性为映射的类名&#xff0c;table为该简单java类在数据库中对应的表名
name属性为类中对应的变量名&#xff0c;column是对应数据库中的字段名&#xff0c;generator标签是生成策略&#xff0c;设置为native的意思是使该列成为主键并且自增
为属性标签&#xff0c;用来映射类中变量对应数据库中的字段

5.测试
创建测试类

package com.oracle.service;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;public class Demo {public static void main(String[] args) {//首先实例化核心配置文件hibernate.cfg.xmlConfiguration configuration&#61;new Configuration().configure();//实例化服务登记&#xff0c;&#xff0c;复制粘贴ServiceRegistry serviceRegistry&#61;new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); //创建Session工厂SessionFactory sessionFactory&#61;configuration.buildSessionFactory(serviceRegistry); Session session&#61;sessionFactory.openSession(); //生成一个sessionsession.beginTransaction(); //开启事务//先运行程序&#xff0c;生产数据库表
session.getTransaction().commit(); //提交事务session.close(); //关闭sessionsessionFactory.close(); //关闭session工厂
}}

运行之前必须现在SQLyog中创建hibernate.cfg.xml中对应的数据库&#xff0c;此例中为hibernate_demo02

然后直接运行程序&#xff0c;如果没有表&#xff0c;则会逆向由java实体自动创建一张数据库表

  

转:https://www.cnblogs.com/wangqun1234/p/8283412.html



推荐阅读
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • Docker 环境下 MySQL 双主同步配置指南
    本文介绍了如何在 Docker 环境中配置 MySQL 的双主同步,包括目录结构的创建、配置文件的编写、容器的创建与设置以及最终的验证步骤。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • Eclipse安装教程:解决Genymotion配置中的疑难杂症
    Eclipse安装教程:解决Genymotion配置中的疑难杂症 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
author-avatar
将登太行的2602939913
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有