SSH [SSH]のHibernateフレームワーク:知人のHibernate

Hibernateはどのようなものです:

それは、完全に自動化されたORMフレームワークで、Hibernateは自動的にSQL文をデータベース・テーブルとPOJOのマッピング関係を生成しますが、それは非常に軽量なJDBCオブジェクトパッケージを持っていた、オブジェクトリレーショナルマッピングフレームワークはオープンソースである休止状態、自動的に、そのJavaプログラマは、データベースを操作するために、任意のオブジェクト・プログラミングの考え方を使用することができます。
ORM:オブジェクトリレーショナルマッピング(オブジェクト関係マッピング)。これは、オペレータがデータベース内のテーブル上のオブジェクトを操作できるように、リレーショナル・データベース・テーブル内のJavaオブジェクト間のマッピングの確立を指します。

なぜ休止状態:

1は、HibernateはJDBCは非常に軽量なオブジェクトパッケージからなる大きく退屈反復符号化、低減メモリ消費量、作業効率アップ速度データアクセス層簡素化
柔軟性がマッピングされる2、Hibernateは非常に良好な性能を、優秀。これは、1対多の複雑な関係の様々なサポートし、多くのリレーショナルデータベースをサポートしています;
3、ソースコードはオープンソースとオープンAPIが良いスケーラビリティになります。

休止状態を使用する方法:

Hibernateのダウンロードアドレスとディレクトリ構造

ダウンロード:https://sourceforge.net/projects/hibernate/files/hibernate-orm/
ディレクトリ構造:
ここに画像を挿入説明
ドキュメント:Hibernateの開発のヘルプドキュメント
のlib:必要なjarパッケージHibernateの開発
プロジェクト:プロジェクトにHibernateの例の開発

Hibernateの簡単なエントリ:

:1、JavaプログラムやWeb、希望のjarパッケージを導入し作成する
データベース駆動型のパッケージ:
ここに画像を挿入説明
Hibernateは、必要なjarファイルのパッケージ開発:
ここに画像を挿入説明
loggingパッケージ:
ここに画像を挿入説明
cst_customer:2、データベース内に新しいテーブルを
ここに画像を挿入説明
「cn.jingpengchong.pojo」パッケージ3の下で、お客様:新しいエンティティクラスを作成します。

package cn.jingpengchong.pojo;

public class Customer {
	
	private long id;
	private String name;
	private String source;
	private String industry;
	private String level;
	private String phone;
	private String mobile;
	//为节省篇幅,此处没有粘贴get/set方法
	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", source=" + source + ", industry=" + industry + ", level="
				+ level + ", phone=" + phone + ", mobile=" + mobile + "]";
	}
}

4.「cn.jingpengchong.pojo」パッケージマッピングファイルにCustomerエンティティクラスを作成します。Customer.hbm.xmlに
DTDマッピングファイルのhibernate-コア5.4.10.Final.jarパッケージであってもよい「/ ORG /休止状態/休止状態マッピング-3.0.dtd「ファイルが見つかりました。
:主にマッピング・ドキュメントのコンテンツ
によってクラステーブルを確立①マッピングクラスラベル;
②ラベルIDが主キーをマッピングするクラスIDとテーブルを設置して、の定義主キーの生成方法
③プロパティタグを持つクラス共通の属性を設立とフィールドマッピングテーブル。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<!-- 建立类与表的映射 -->
	<class name="cn.jingpengchong.pojo.Customer" table="cst_customer">
		<!-- 建立类中的id与表中的主键的映射 -->
		<id name="id" column="cust_id" length="32" type="long">
			<generator class="native"/>
		</id>
		<!-- 建立类中的普通属性与表中的字段的映射 -->
		<property name="name" column="cust_name" length="32" type="string"/>
		<property name="source" column="cust_source" length="32" type="string"/>
		<property name="industry" column="cust_industry" length="32" type="string"/>
		<property name="level" column="cust_level" length="32" type="string"/>
		<property name="phone" column="cust_phone" length="64" type="string"/>
		<property name="mobile" column="cust_mobile" length="16" type="string"/>
		
	</class>
</hibernate-mapping>

5、srcディレクトリにHibernateのコア・コンフィギュレーション・ファイルを作成します。hibernate.cfg.xmlのは、
パッケージ構成ファイルをDTD休止状態-コア- 5.4.10.Final.jarできる「/org/hibernate/hibernate-configuration-3.0.dtd」のをファイルで見つかりました。
設定ファイルの主な内容はありますname属性値と書かれたフォーマットのラベルcontentプロパティタグは「hibernate-release-5.4.10.Final \プロジェクト\ etcに」「を参照することができ hibernate.properties」 ディレクトリ内のファイル。
①財産ラベル文に必要な構成で:ドライバー、URL、ユーザー名、パスワード、およびその他のデータベースの専門用語、対応するデータベースの基準に沿ってSQL文を生成するために使用される専門用語データベースと、
②ラベルのプロパティで構成されている他の文:SQL文を印刷するかどうか、どうか自動のようなテーブルを作成し、するかどうか、SQL文をフォーマット;
③指定されたファイルマッピングタグをマップします。

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/hibernate</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">1234</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		
		<!-- 可选的配置 -->
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		
		<!-- 映射的文件 -->
		<mapping resource="cn/jingpengchong/pojo/Customer.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

図6に示すように、クラス・テスト作成新しいパケット「cn.jingpengchong.test」:テスト
の主要なステップ:
①負荷設定ファイルを、
②のSessionFactoryザ・コンフィギュレーション・オブジェクトを作成し、
③セッションオブジェクトが得られるのSessionFactoryによれば、
④オープンセッション・オブジェクトをトランザクションは、トランザクションオブジェクトを取得し、
⑤のようなCRUD操作を実行する、
⑥取引目的に応じてトランザクションをコミット;
⑦リリースリソースを。

package cn.jingpengchong.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.jingpengchong.pojo.Customer;

public class Test {
	public static void main(String[] args) {
		//1、加载配置文件
		Configuration configure = new Configuration().configure();
		//2、根据Configuration创建一个SessionFactory
		SessionFactory factory = configure.buildSessionFactory();
		//3、根据SessionFactory获得一个Session对象
		Session session = factory.openSession();	
		//4、手动开启事务
		Transaction transaction = session.beginTransaction();		
		//5、执行增删改查等操作
		Customer customer = new Customer();
		customer.setName("孙悟空");
		session.save(customer);		
		//6、提交事务
		transaction.commit();		
		//7、释放资源
		session.close();
		factory.close();
	}
}

結果は以下のようにしている:
ここに画像を挿入説明
データベース内のデータを見ています
ここに画像を挿入説明

マッピングファイルと設定ファイルを休止:

マッピングファイル:

class标签的配置:用于建立类与表的映射关系
属性:

  • name:实体类的全路径
  • table:表名
  • catalog:数据库名,可以不写,在配置文件中已经指定

id标签的配置:用来建立类中某个属性与表中主键的映射关系
属性:

  • name:类的属性名
  • column:表中的字段名
  • length:数据长度,hibernate自动建表时使用
  • type:数据类型,hibernate自动建表时使用

property标签的配置:用于建立类中的属性和表中字段的映射关系
属性:

  • name:类的属性名
  • column:表中的字段名
  • length:数据长度,hibernate自动建表时使用
  • type:数据类型,hibernate自动建表时使用
  • not-null:设置非空,hibernate自动建表时使用
  • unique:设置唯一,hibernate自动建表时使用
配置文件:

property标签用于数据库参数的配置:使用hibernate框架必须的参数配置有驱动类、url、用户名、密码、所用数据库的行话等,其他的重要参数配置有:
hibernate.show_sql:是否在控制台打印SQL语句
hibernate.format_sql:是否在打印SQL语句时将其格式化
hibernate.hbm2ddl.auto:自动建表或删表

  • none:当要操作的表不存在时,hibernate不会自动建表而是报错;
  • create:当要操作的表不存在时,hibernate会自动建表,当要操作的表存在时,hibernate会将该表删了,然后重新创建一个表;
  • create-drop:当要操作的表不存在时,hibernate会自动建表,使用完毕后将该表删了,当要操作的表存在时,hibernate会将该表删了,然后重新创建一个表,使用完毕后将该表删了;
  • update:当要操作的表不存在时,hibernate会自动建表,当要操作的表存在时,会使用已经存在的表;
  • 検証:動作するように何も表がない場合、休止状態が、エラーは自動的に、それは既存のテーブルを使用するがある場合に作動するように、テーブル、テーブルを作成しません。

マッピングタグはマッピングファイルを示します。

公開された128元の記事 ウォン称賛17 ビュー2733

おすすめ

転載: blog.csdn.net/qq_43705275/article/details/104194591