MyBatisの----- 3.最適化し、異なるエンティティクラスの属性やフィールド名の競合を解決します

1.MyBatisの最適化

1.1つのファイルのプロパティのデータベース内の接続構成情報

  Db.propertiesは、ファイルを作成し、コンテンツを追加します。

ドライバ=はcom.mysql.jdbc.Driver 
URL = JDBCます。mysql:// localhostを:3306 / MyBatisの
ユーザ名=ルート
パスワード= 123456

  conf.xml設定ファイルで:

< プロパティリソース= "db.properties" /> <! -存放文件路径- > 
    < 環境デフォルト= "開発" > 
    < 環境ID = "開発" > 
    < トランザクションマネージャーのタイプ= "JDBC"  /> 
    
    < データソースのタイプ= "POOLED" > 
        < プロパティ= "ドライバ" = "$ {ドライバ}"  /> <! -使用$ {属性} - > 
        < プロパティ= "URL" =」$ {URL}」  /> 
        < プロパティ= "ユーザ名" = "$ {ユーザー名}"  /> 
        < プロパティ= "パスワード" = "$ {パスワード}"  /> 
    </ のdataSource >

1.2エイリアスは、エンティティクラス、標識の使用として定義されるtypeAliases

  タイプ:エンティティクラスパスの別名:別名を再生します

< typeAliases > 
  < typeAliasを入力= "com.zhiyou.zyl.bean.Users" 別名= "_ユーザー" /> 
</ typeAliases >

1.3ログのjarパッケージ、エラーを発見する用語を追加

  Log4jのジャーパッケージを追加します:log4jの-1.2.16.jar

  log4j.propertiesファイルを作成します。

log4j.properties、
log4j.rootLogger = DEBUG、コンソール
#Console 
log4j.appender.Console = org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout = org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern =%D [%のT]%-5p [%のC] - %のM%N 
log4j.logger.java.sql.ResultSet = INFO 
log4j.logger.org.apache = INFO 
log4j.logger.java.sql.Connection = DEBUG 
log4j.logger.java.sql.Statement = DEBUG 
log4j.logger.java.sql.PreparedStatement = DEBUG

  結果は次のようになります。

 

 

2.フィールド名を解決し、属性名は、同じエンティティクラスの競合ではありません

  あなたはエンティティクラスのテーブルを作成するときに、あなたのような、エンティティクラスの属性やデータテーブルのフィールド名を設定するためのイニシアチブを取る必要があり、時には矛盾したフィールド名とエンティティクラス属性は、プロパティが解決されませんMyBatisのは、これに対処する必要があります矛盾します。

  表および試験データ 

CREATE  TABLEの注文を(
ORDER_ID INT  PRIMARY  KEY AUTO_INCREMENT、
ORDER_NO VARCHAR20 )、
order_priceのFLOAT )。
INSERT  INTO注文(ORDER_NO、order_price)VALUES' AAAA '23 );
INSERT  INTO注文(ORDER_NO、order_price)VALUES' BBBB '33 );
INSERT  INTO(ORDER_NO、order_price)受注VALUES"CCCC "22);

  エンティティクラス:

パブリック クラス注文{
  プライベート int型のID。
  プライベート文字列なし。
  プライベート フロート価格; 
}

  競合を解決するには2つの方法:

  最初のクエリのフィールドの別名からSQL文で

< 選択ID = "getOrder" ParameterTypeが= "INT" resultTypeと= "com.zhiyou.zyl.bean.Orders" > 
  ORDER_ID =#{ID}注文からORDER_NOない、order_price価格、ORDER_ID IDを選択
</ 選択>

  II:使用<このresultMap>タグ

  < SELECT ID = "getOrder" このresultMap = "注文" <! - ResulyMap = "このresultMap IDタグ名" - >> 
        SELECT * ORDER_ID IDからの受注=#{} 
  </ SELECT >   < このresultMap タイプ=「COMを。 zhiyou.zyl.bean.Orders " ID ="注文" > < ID =" ORDER_ID " プロパティ=" ID " /> <! - ID主キー、他の分野になり、列フィールド名、エンティティクラスのプロパティプロパティ- > < 結果列を= "ORDER_NO" プロパティ= "NO" /> <結果=「order_price」プロパティ= "価格" /> </ このresultMap >

 

おすすめ

転載: www.cnblogs.com/zyl187110/p/11442180.html