bboss持続層はmysql自己増加プライマリキー機能の説明の2を返す


詳細
前の記事「bboss永続層戻りmysql自己増加プライマリ・キー機能説明」では、この機能をアップグレードする際にConfigSQLExecutorとSQLExecutorの2つのコンポーネントを使用したdaoプログラムを再コンパイルする必要がある場合、既存のプログラムのアップグレードが困難になるため、短時間でプロジェクトでの応用実践を経てdaoプログラムを再コンパイルすることは非常に面倒なことであり、この面倒を避けるために、この機能をわざわざコールバック方式に変更して自己増加プライマリ・キーに戻すことで、既存のapiを変更する必要がなく、新旧バージョン間の互換性を維持し、アップグレード時に既存のdaoプログラムをコンパイルしてjarパッケージを再生成する必要がなく、改善された使用方法を簡単に紹介します.
注:bboss 3.6.1ブランチバージョンに適用します.
まずmysqlに自己増加プライマリ・キーを持つdemoテーブルを作成します
CREATE TABLE
    demo
    (
        id bigint NOT NULL AUTO_INCREMENT,
        name VARCHAR(200),
        PRIMARY KEY (id)
    )

次に、POオブジェクトを作成します.
package com.frameworkset.sqlexecutor;

public class AutoKeyDemo {
	private Long id;
	private String name;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

次に、単一レコード挿入と複数レコードプリコンパイルバッチ挿入demoを挿入し、自己増加プライマリ・キーを返す機能について説明します.
注意:複数のレコードプリコンパイルバッチが挿入されると、このバッチの最後のレコードで生成された自己増加プライマリ・キーのみが返されます(すべての自己増加プライマリ・キーを返す方法を知っている方は、教えてください).
1.単一レコードを挿入して自己増加キーを返す
AutoKeyDemo demo = new AutoKeyDemo();		
		demo.setName("name2");	
		//      GetCUDResult   ,        
		//   insertBean        GetCUDResult    ,
		//                    api
		GetCUDResult ret = new GetCUDResult(); 
		SQLExecutor.insertBean("insert into demo(name) values(#[name])", demo,ret);
		//  GetCUDResult   getKeys      ,       demo   
		demo.setId((Long)ret.getKeys());
		//        
		demo.setName("newname");	
		//upret       ,          		
		SQLExecutor.updateBean("update demo set name=#[name] where id=#[id]", demo,ret);

2.複数のレコードプリコンパイルバッチを挿入し、自己増加プライマリ・キーに戻す
SQLExecutor.delete("delete from demo");
		//      
		List datas = new ArrayList();		
		AutoKeyDemo demo = new AutoKeyDemo();		
		demo.setName("name2");
		datas.add(demo);
		demo = new AutoKeyDemo();		
		demo.setName("name3");
		datas.add(demo);
		demo = new AutoKeyDemo();		
		demo.setName("name4");
		datas.add(demo);
		//      ,                        GetCUDResult    
		//   insertBeans        GetCUDResult    ,
		//                    api
		GetCUDResult ret = new GetCUDResult(); 
		SQLExecutor.insertBeans("insert into demo(name) values(#[name])", datas,ret);
		//        (   ,list            ,
		//       List  ,                                )
		List keys = (List)ret.getKeys();
		for(int i = 0; i  
 

com.frameworkset.common.poolman.GetCUDResult bboss , :


GetCUDResult :
result: , autoprimarykey true, tableinfo result , result
updateCount:
keys: , , List