#環境設定
プロキシエラー(407)で、つまずいたので年のため共有します。
1.eclipse.iniに以下を追加
-Djdk.http.auth.tunneling.disabledSchemes=""
2.プロキシの設定を追加
[ウィンドウ] -> [設定] -> [一般] -> [ネットワーク接続]
アクティブ・プロバイダー「ネイティブ」を「マニュアル」に変更し、「HTTP」と「HTTPS」に編集ボタンを押し以下プロキシの設定を追加
ホスト:127.0.0.1 ポート:8080
認証が必要にチェックを入れて自分のユーザパスワードを入力
.m2
配下に以下ファイルを配置してファイル内のursename,passwordの箇所にご自分の情報をいれてためしてみてください
(それぞれ2か所あります)
setting.xml
#取り込み方法
・Import 既存MAVENプロジェクト
#Eclipse 設定 ini
-Xms256m
-Xmx1024m
#Teams
改行するときはShift+Enterで可能です。
また、何行も打ちたいときは下のA押すと、Enterだけで改行できま
#EclipseでGitを使う。
https://www.blog.danishi.net/2019/04/30/post-866/
#EgitでCommit時のコミッター設定
#Pom
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.5.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.6.1</version>
</dependency>
#テストプログラム 下記のアノテーションがないとSpringは動きません。
@SpringBootTest
#プログラムについて
全体
・メンバ変数は、特に理由がない限りprivateで定義する
・変数定義、初期化は使用する直前でおこなう
・try catchは、理由がない限り使わない(エラー共通処理で、処理するためthrow)
・定数名の中にコード値を含めない→コード値が変更されると意味がわからないため
・StringUtilsの扱いが考える。If n==null || 空白
@Controller → 主にWebページ用のコントローラで使用する。
@RestController → JsonやXML等を返すWebAPI用のコントローラで使用する。
@RequestMapping
URLのパスはこちらに定義
@PostMappingを使う。
@RestControllerに変更すると@ResponseBodyは不要なので削除
・同じ条件のif文が複数あるので1つにまとめて処理する。
・リターンをmapで返すのではなく、dtoを定義する。
・staticメソッドにしない。
・フォーマッターを使う。
・相対パス 決め打ちは避ける。 → 変に刺激するみたいです。
#以下本当にメモ
DBアクセスのソース群
・mainクラス
@Bean
public DataSource dataSource() {????????
return DataSourceBuilder.create().url("jdbc:postgresql://localhost:5432/postgres")
.username("postgres").password("postgres").build();
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory() {????????
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource());
return sessionFactoryBean;
}
@Bean
public PlatformTransactionManager transactionManager() {????????
return new DataSourceTransactionManager(dataSource());
}
・mapper(javaとxml)
参考:DeliveryGoodsInfoMapper
・entity(必要に応じて)
参考:DeliveryGoodsInfo
・呼び出す側のコード
@Autowired
private DeliveryGoodsInfoMapper deliveryGoodsInfoMapper;
@Autowired
DeliveryGoodsInfoExample deliveryGoodsInfoExample;
public Long getCount() {
return deliveryGoodsInfoMapper.countByExample(deliveryGoodsInfoExample));
}
MyBatis自動生成メソッド 条件文の作り方
想定通りに動かない例:example.createCriteria()を複数生成
private List<CodeMappingMaster> getRecordForCodeToSystem(String fromSystemCode, String apiKbn,
String paramName, String fromValue, String toSystemCode) {????????
// 取得条件設定用クラス
CodeMappingMasterExample example = new CodeMappingMasterExample();
// 変換元システムコード
example.createCriteria().andFrom_system_codeEqualTo(fromSystemCode);
// API区分
example.createCriteria().andApi_classificationEqualTo(apiKbn);
// パラメータ名
example.createCriteria().andInterface_paramEqualTo(paramName);
// 値
example.createCriteria().andFrom_codeEqualTo(fromValue);
// 変換先システムコード
example.createCriteria().andTo_system_codeEqualTo(toSystemCode);
// 取得結果を返却
return codeMappingMasterMapper.selectByExample(example);
}
よい例:example.createCriteria()は1つの条件につき、1つだけ。複数条件はドットでつなげて書く
private List<CdMappingMaster> getRecordForCodeToSystem(String fromSystemCode, String apiKbn,
String paramName, String fromValue, String toSystemCode) {
// 取得条件設定用クラス
CdMappingMasterExample example = new CdMappingMasterExample();
// 条件文の生成
example.createCriteria().andFrom_system_cdEqualTo(fromSystemCode)
.andApi_classificationEqualTo(apiKbn).andIf_param_nameEqualTo(paramName)
.andFrom_cdEqualTo(fromValue).andTo_system_cdEqualTo(toSystemCode);
// 取得結果を返却
return cdMappingMasterMapper.selectByExample(example);
}