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会自动建表,当要操作的表存在时,会使用已经存在的表;
- 検証:動作するように何も表がない場合、休止状態が、エラーは自動的に、それは既存のテーブルを使用するがある場合に作動するように、テーブル、テーブルを作成しません。
マッピングタグはマッピングファイルを示します。