bboss持続層はmysql自己増加プライマリキー機能の説明の2を返す
詳細
前の記事「bboss永続層戻りmysql自己増加プライマリ・キー機能説明」では、この機能をアップグレードする際にConfigSQLExecutorとSQLExecutorの2つのコンポーネントを使用したdaoプログラムを再コンパイルする必要がある場合、既存のプログラムのアップグレードが困難になるため、短時間でプロジェクトでの応用実践を経てdaoプログラムを再コンパイルすることは非常に面倒なことであり、この面倒を避けるために、この機能をわざわざコールバック方式に変更して自己増加プライマリ・キーに戻すことで、既存のapiを変更する必要がなく、新旧バージョン間の互換性を維持し、アップグレード時に既存のdaoプログラムをコンパイルしてjarパッケージを再生成する必要がなく、改善された使用方法を簡単に紹介します.
注:bboss 3.6.1ブランチバージョンに適用します.
まずmysqlに自己増加プライマリ・キーを持つdemoテーブルを作成します
次に、POオブジェクトを作成します.
次に、単一レコード挿入と複数レコードプリコンパイルバッチ挿入demoを挿入し、自己増加プライマリ・キーを返す機能について説明します.
注意:複数のレコードプリコンパイルバッチが挿入されると、このバッチの最後のレコードで生成された自己増加プライマリ・キーのみが返されます(すべての自己増加プライマリ・キーを返す方法を知っている方は、教えてください).
1.単一レコードを挿入して自己増加キーを返す
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