ゼロ、冬眠について
Hibernateは冬眠を意味します。これは動物の冬眠を指しますが、この記事で議論されている冬眠は冬眠とは何の関係もありませんが、次に議論されるSSH2フレームワークのメンバーです。 Hibernateはオープンソースプロジェクトです。これはオブジェクトリレーショナルモデルのフレームワークであり、JDBCの非常に軽量のカプセル化を備えています。プログラマーは、オブジェクトプログラミング思考を使用して開発中に開発できます。
住所をダウンロード:http://hibernate.org/orm/downloads/
注:軽量とヘビー級の違い。軽量フレームワークパッケージは小さく、使いやすく、テストが簡単で、開発効率が高くなっています。ヘビー級のフレームワークパッケージは大きく、内部パッケージのビジネスプロセスはより複雑で、ストラットなどのテストが困難です。
オブジェクトリレーショナルモデル:
冬眠は、オブジェクト関係モデルのマッピングを実装します。プログラミングの場合、プログラマーはオブジェクトモデルを直接使用してデータベースを操作できます。 LightweightはJDBCをカプセル化し、データベース操作のSQLステートメントをカプセル化します。多くの利点がありますが、ストアドプロシージャなどのデータベース特性を使用したステートメントを使用して調整することは困難です。
冬眠の長所と短所:
(1)利点
A.生産性の向上。
B.開発をより客観化する(インピーダンスミスマッチ)。
C.移植性;
D.侵入性と透明性と持続性をサポートしません。
(2)短所
A.データベースの特性を使用したステートメントの調整は困難です。
B.大規模なデータの更新には問題があります。
C.システムには多数の統計クエリ関数があります。
2。冬眠の例
上記の記事は、冬眠のいくつかの予備的な解釈を提供します。理論では、確かにもっと多くの練習があります。冬眠を使用せずにその利便性を理解していません。これは、初めてムタイを味わうのが好きな人のようなものです。それを使用した後にのみ、あなたはそれをより深く理解することができます。
次の例では、MySQLデータベースを使用しています。 hibernate_firstという名前のデータベースはMySQLで作成されます。ユーザーテーブルは、オブジェクトプログラミングメソッドを使用してHibernateマッピングファイルを介して作成され、ユーザーテーブルに情報を追加します。
具体的な手順:
(1)通常のJavaアプリケーションを作成します。
(2)冬眠の瓶パッケージを追加します。 JARパッケージを追加するときは、hibernate.jar、hibernateが参照するサードパーティのjarパッケージ、およびhibernateおよびmysqlに接続されたJARパッケージを導入する必要があります。
(3)データベース接続構成ファイルhibernate.cfg.xmlを追加します。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype hibernate-configuration public " - // hibernate/hibernate構成name = "hibernate.connection.driver_class"> com.mysql.jdbc.driver </property> <property name = "hibernate.connection.url"> jdbc:// localhost:3306/hibernate_first </property> <property </property </row.usernate "> property name name = "hibernate.connection.password"> ab12 </property> <! - 方言:方言、ランタイムと同様に、カプセル化された基礎となるAPIは、構成の対応する言語に変換します - > <プロパティname = "hibernate.dialect"> org.hibernate.dialect.dialect.mysqlnate.dialect < <プロパティ名= "hibernate.show_sql"> true </property> <property name = "hibernate.format_sql"> true </property> <マッピングリソース= "com/hibernate/user.hbm.xml"/> </session-factory> </hibernate-configuration>
(4)user.javaとしてエンティティクラス名を作成します
パッケージcom.hibernate; Import Java.util.date;パブリッククラスユーザー{private string id; public string getId(){return id; } public void setid(string id){this.id = id; } public string getname(){return name; } public void setName(string name){this.name = name; } public string getPassWord(){パスワードを返します。 } public void setPassword(string password){this.password = password; } public date getCreatetime(){return createTime; } public void setCreatetime(date createTime){this.createtime = createTime; } public date getExpireTime(){return expiretime; } public void setExpiretime(date expiretime){this.expiretime = expiretime; }プライベート文字列名;プライベート文字列パスワード。プライベートデートCreateTime;プライベートデートの有効期間; } (5)ユーザーエンティティクラスのマッピングファイルuser.hbm.xmlを作成し、エンティティクラスのマッピングを完了し、hibernate.cfg.xmlファイルにファイルを追加します。
<?xml version = "1.0"?> <!doctype hibernate-mapping public " - // hibernate/hibernateマッピングDTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-mapting-3.0.dtd"> <! 3.4.0.cr1-> <hibernate-mapping> <class name = "com.hibernate.user"> <id name = "id"> <generator/> </id> <プロパティ名= "name"/> <プロパティ名= "パスワード="/>
(6)exportdb.javaを書き込み、マッピングファイルを対応するDDLに変換します。
パッケージcom.hibernate; Import org.hibernate.cfg.configuration; org.hibernate.tool.hbm2ddl.schemaexportをインポートします。 public class exportdb {public static void main(string [] args){//構成ファイルを取得する最初の宣言//読み取りXMLファイルをDDL Schemaexport Export = new Schemaexport(CFG)にエクスポートします。 export.create(true、true); }} ExportDBクラスを実行して、データベーステーブルの作成を完了します。 CMDで特定の操作を表示した後のビューは次のとおりです。
上記の例では、データベースに接続してデータベースにテーブルを作成する操作が完了します。テーブルを作成した後、テーブルにデータを追加し、クライアントクラスのクライアントを作成し、ユーザーテーブルに新しいユーザー情報を追加する必要があります。特定のコードは次のとおりです。
パッケージcom.hibernate; Import Java.util.date; org.hibernate.sessionをインポートします。 Import org.hibernate.sessionFactory; Import org.hibernate.cfg.configuration; public class client {public static void main(string [] args){// hibernate.cfg.xml file configuration cfg = new configuration()。configure(); //データベースミラーに相当するSessionFactoryを作成します。 SessionFactoryはミラーであるため、1回/通常はスレッドセーフを作成するのが最善です。 SessionFactory Factory = CFG.BuildSessionFactory(); //セッションセッションセッションを取得= null; try {session = factory.opensession(); //トランザクションsession.begintransaction()を開きます。 user user = new user(); user.setName( "Zhang San"); user.setPassWord( "123"); user.setcreatetime(new date()); //ユーザーオブジェクトsession.save(user); //トランザクションsession.getTransaction()。commid(); } catch(Exception e){e.printstacktrace(); // print error message // lollback transaction session.getTransaction()。rollback(); }最後に{if(session!= null){if(session.isopen()){// close session session.close(); }}}}}}}}}}次の図に示すように、MySQLに追加された情報を表示します。
上記の操作の情報はデータベースに書き込まれています。データベースにデータを保存した後、対応する行がデータベースで生成されます。ただし、まだ保存されていません。代わりに、データベースに対応するデータの行があります。データは、セッションを使用したトランザクションの提出が完了した後、データベースに送信されます。