데이터 베이스 MySQL 튜토리얼 Hibernate基础-HelloWord

Hibernate基础-HelloWord

Jun 07, 2016 pm 04:09 PM
hibernate orm 베이스

1. ORM :ORM ( Object / Relation Mapping ): 对象 / 关系映射(理解) 1) ORM 主要解决对象 - 关系的映射 2) .ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。 2. Hibernate 的 Hel

1. ORM :ORM (Object /Relation Mapping ): 对象/关系映射(理解) 1) ORM 主要解决对象 -关系的映射 2) .ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
2. Hibernate 的 HelloWord 1) . 加入 jar 包:加入到当前项目的 classpath 下 hibernate-release-4.2.4.F inal\lib\required\*.jar(所有的包) MySQL 的驱动mysql -connector -java -5.1.29 -bin.jar
2) . 配置 hibernate 的配置文件: hibernate.cfg.xml
①. 利用 hibernate 插件生成 hibernate.cfg.xml

?xml version ="1.0" encoding="UTF-8"?> !DOCTYPE hibernate -configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd "> hibernate-configuration> session -factory > session -factory > hibernate-configuration>
②. 编辑 hibernate.cfg.xml 文件
I. 加入链接数据库的基本信息:
! -- 配置连接数据库的基本信息 --> property name ="connection.driver_class" >com.mysql.jdbc.Driver property > property name ="connection.username" >root property > property name ="connection.password" >123456 property > property name ="connection.url" >jdbc :mysql:///hibernate4property>
II. 配置 Hibernate 使用的数据库方言: 每一种数据库使用的基本语法会有细微的区别,例如分页 MySQL 使用 limit,而 Oracle 使用 rownum。这就需要告诉 Hibernate 底层使用的是哪一种数据库
! -- 配置 Hibernate 的数据库方言 --> property name ="dialect" >org.hibernate.dialect.MySQLInnoDBDialect property > 注意:方言对应的类来自于 hibernate-release- 4.2.4.Final\project\etc\hibernate.properties 中 III. 编辑 Hibernate 的一般属性
! -- 创建数据表的策略(了解,最多使用的值是 update) --> property name ="hbm2ddl.auto" >update property >
> create : 每次运行都会删除上一次的表 ,重新生成表 , 哪怕二次没有任何改变 > create -drop :会根据 .hbm.xml 文件生成表, 但是SessionFactory 一关闭, 表就自动删除 > update :最常用的属性值,也会根据 .hbm.xml 文件生成表 , 但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同 , Hiberante 将更新数据表结构,但不会删除已有的行和列 > validate : 会和数据库中的表进行比较 ,.hbm.xml 文件中的列在数据表中不存在,则抛出异常

! -- 是否打印 SQL --> property name ="show_sql" >trueproperty>
! -- 是否格式化 SQL --> property name ="format_sql" >trueproperty>
3) . 编写实体类( POJO)及 Hibernate 映射文件: xxx.hbm.xml
I. 编写一个 POJO :必须包含一个 OID 字段和数据表主键对应;必须有一个无参数的构造器;为字段定义 getter、 setter;非 final 类
II. 由 hibernate 插件生成 xxx.hbm.xml 文件
注意:需要对文件进行简单的修改:修改主键生成方式(使用 id 的 generator 子节点的 class 属性配置主键的生成方式, native 表示使用数据库本地的方式来 生成主键, MySQL 会自动的选用 auto_increment,而 Oracle 则使用序列的方式)
generator class ="assigned" /> 修改为 generator class="native" />
III. 在 hibernate 配置文件(hiberante.cfg.xml )中关联 hibernate 持久化类的映射文件 mapping resource ="com/atguigu/hibernate/entities/News.hbm.xml" />
4) . 通过 Hibernate API 完成持久化操作
1. 创建 SessionFactory : Session 的工厂类。SessionFactory 是线程安全的,一般地,在一个 Java 应用中只有一个 SessionFactory 实例 Configuration configuration = new Configuration ().configure (); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings( configuration.getProperties()) .buildServiceRegistry (); SessionFactory sessionFactory = configuration.buildSessionFactory (serviceRegistry );
2. 创建 Session : 表示 Hibernate 应用程序和数据库的一次会话 Session session = sessionFactory.openSession ();
3. 开启事务 Transaction transaction = session.beginTransaction ();
4. 执行持久化操作 //save //session.save (news );
//利用 OID 加载对象 News news2 = (News ) session.get (News.class , 1); System.out.println (news2 ); news2.setContent ("myBatis" );
5. 提交事务 transaction.commit ();
6. 关闭 Session session.close ();
7. 关闭 SessionFactory sessionFactory.close ();

★写测试类的时候一般采用注解更方便些: public class Testing { private SessionFactory sessionFactory ; private Session session ; private Transaction transaction = null ; @Before public void init (){ Configuration configuration = new Configuration ().configure (); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings( configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory (serviceRegistry ); session = sessionFactory.openSession (); transaction = session.beginTransaction (); } @After public void destroy (){ transaction.commit (); session.close (); sessionFactory.close (); } @Test public void test (){ //测试部分 } }

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

ORM 프레임워크 Tortoise Python의 ORM 실제 사례 ORM 프레임워크 Tortoise Python의 ORM 실제 사례 Jun 10, 2023 pm 06:05 PM

TortoiseORM은 Python 언어를 기반으로 개발된 비동기 ORM 프레임워크이며 Python 비동기 애플리케이션에서 관계형 데이터베이스를 관리하는 데 사용할 수 있습니다. 이 기사에서는 TortoiseORM 프레임워크를 사용하여 데이터를 생성, 읽기, 업데이트 및 삭제하는 방법을 소개합니다. 또한 관계형 데이터베이스에서 간단하고 복잡한 쿼리를 수행하는 방법도 알아봅니다. 준비 이 튜토리얼을 시작하기 전에 Python(Python3.6+ 권장)을 설치하고 TortoiseOR을 설치해야 합니다.

PHP에서 ORM(객체 관계형 매핑)을 사용하여 데이터베이스 작업을 단순화하는 방법은 무엇입니까? PHP에서 ORM(객체 관계형 매핑)을 사용하여 데이터베이스 작업을 단순화하는 방법은 무엇입니까? May 07, 2024 am 08:39 AM

PHP의 데이터베이스 작업은 객체를 관계형 데이터베이스에 매핑하는 ORM을 사용하여 단순화됩니다. Laravel의 EloquentORM을 사용하면 객체 지향 구문을 사용하여 데이터베이스와 상호 작용할 수 있습니다. 모델 클래스를 정의하거나 Eloquent 메소드를 사용하거나 실제로 블로그 시스템을 구축하여 ORM을 사용할 수 있습니다.

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Java Hibernate 프레임워크의 ORM 메커니즘은 무엇입니까? Java Hibernate 프레임워크의 ORM 메커니즘은 무엇입니까? Apr 17, 2024 pm 02:39 PM

Hibernate는 Java 객체와 관계형 데이터베이스 간의 매핑을 위한 JavaORM 프레임워크입니다. ORM 메커니즘에는 다음 단계가 포함됩니다. 주석/구성: 객체 클래스는 매핑된 데이터베이스 테이블과 열을 지정하는 주석 또는 XML 파일로 표시됩니다. 세션 팩토리: Hibernate와 데이터베이스 간의 연결을 관리합니다. 세션: 데이터베이스에 대한 활성 연결을 나타내며 쿼리 및 업데이트 작업을 수행하는 데 사용됩니다. 지속성: save() 또는 update() 메소드를 통해 데이터베이스에 데이터를 저장합니다. 쿼리: Criteria 및 HQL을 사용하여 데이터를 검색하는 복잡한 쿼리를 정의합니다.

PHP 기본 튜토리얼: 초보자부터 마스터까지 PHP 기본 튜토리얼: 초보자부터 마스터까지 Jun 18, 2023 am 09:43 AM

PHP는 웹 개발의 모든 작업을 처리할 수 있는 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. PHP는 웹 개발에 널리 사용되며, 특히 동적 데이터 처리에 뛰어난 성능을 발휘하여 많은 개발자들에게 사랑받고 사용되고 있습니다. 이 기사에서는 초보자가 시작부터 능숙해질 수 있도록 PHP의 기본 사항을 단계별로 설명합니다. 1. 기본 구문 PHP는 코드가 HTML, CSS 및 JavaScript와 유사한 해석 언어입니다. 모든 PHP 문은 세미콜론으로 끝납니다.

Hibernate ORM 프레임워크의 단점은 무엇입니까? Hibernate ORM 프레임워크의 단점은 무엇입니까? Apr 18, 2024 am 08:30 AM

HibernateORM 프레임워크에는 다음과 같은 단점이 있습니다: 1. 쿼리 결과와 엔터티 개체를 캐시하기 때문에 메모리 소비량이 많습니다. 2. 아키텍처와 구성에 대한 심층적인 이해가 필요합니다. 3. 지연된 로딩 지연으로 인해 예상치 못한 지연이 발생합니다. . 5월에는 많은 수의 엔터티가 동시에 로드되거나 업데이트될 때 성능 병목 현상이 발생합니다. 5. 공급업체별 구현으로 인해 데이터베이스 간에 차이가 발생합니다.

PHP 객체 관계형 매핑 및 데이터베이스 추상화 계층이 코드 가독성을 향상시키는 방법 PHP 객체 관계형 매핑 및 데이터베이스 추상화 계층이 코드 가독성을 향상시키는 방법 May 06, 2024 pm 06:06 PM

답변: ORM(Object Relational Mapping) 및 DAL(Database Abstraction Layer)은 기본 데이터베이스 구현 세부 사항을 추상화하여 코드 가독성을 향상시킵니다. 자세한 설명: ORM은 객체 지향 접근 방식을 사용하여 데이터베이스와 상호 작용하여 코드를 애플리케이션 논리에 더 가깝게 만듭니다. DAL은 데이터베이스 공급업체와 독립적인 공통 인터페이스를 제공하여 다양한 데이터베이스와의 상호 작용을 단순화합니다. ORM과 DAL을 사용하면 SQL 문 사용을 줄이고 코드를 더 간결하게 만들 수 있습니다. 실제 사례에서 ORM과 DAL은 제품 정보 쿼리를 단순화하고 코드 가독성을 향상시킬 수 있습니다.

객체 관계형 매핑(ORM) 기본: 교리 ORM 이해 객체 관계형 매핑(ORM) 기본: 교리 ORM 이해 Jun 19, 2023 pm 03:43 PM

ORM(객체 관계형 매핑) 기본: DoctrineORM 이해 애플리케이션을 개발할 때 데이터를 저장하고 검색하기 위해 데이터베이스에서 작업해야 합니다. 하지만 원본 데이터베이스 쿼리 코드를 직접 사용하는 것은 불편합니다. 객체와 데이터 사이의 매핑 관계를 구축하는 것이 ORM의 역할입니다. ORM은 객체와 데이터베이스 테이블을 자동으로 매핑하고 변환하여 데이터 조작을 쉽게 하고 코드 유지 관리를 더 쉽게 만듭니다. DoctrineORM은 PHP입니다

See all articles