Springboot注記構成
2097 ワード
1.param、この方式はわかりやすいですが、
2.mapを使用すると、sqlに必要なパラメータをすべてmapに配置し、パラメータ名はmapのkey値である
Insert文に必要なパラメータについては、次のコードに示すように、mapに同じ名前の内容を入力するだけです.
3.オブジェクトを使用して、オブジェクトの属性名はsqlのパラメータ名に対応する必要があります
4.添削改査の基礎操作は、junitで実行し、テストを行う場合、insert操作を実行する場合、データベースにデータを追加しません.
5.クエリー結果バインド、「検索」操作については、多表関連、集計計算などの操作が必要になる場合が多いが、クエリーの結果は単純なエンティティオブジェクトではなく、データベースエンティティとは異なるパッケージクラスを返す必要がある場合が多い.この場合、
上のコードでは、@Resultのproperty属性はUserオブジェクトのメンバー名、columnはSELECTのフィールド名に対応しています
@Param
で定義されているname
SQLに対応している#{name}
、age
SQLに対応している#{age}
.@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
int insert(@Param("name") String name, @Param("age") Integer age);
2.mapを使用すると、sqlに必要なパラメータをすべてmapに配置し、パラメータ名はmapのkey値である
@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})")
int insertByMap(Map map);
Insert文に必要なパラメータについては、次のコードに示すように、mapに同じ名前の内容を入力するだけです.
Map map = new HashMap<>();
map.put("name", "CCC");
map.put("age", 40);
userMapper.insertByMap(map);
3.オブジェクトを使用して、オブジェクトの属性名はsqlのパラメータ名に対応する必要があります
@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
int insertByUser(User user);
4.添削改査の基礎操作は、junitで実行し、テストを行う場合、insert操作を実行する場合、データベースにデータを追加しません.
public interface UserMapper {
@Select("SELECT * FROM user WHERE name = #{name}")
User findByName(@Param("name") String name);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
int insert(@Param("name") String name, @Param("age") Integer age);
@Update("UPDATE user SET age=#{age} WHERE name=#{name}")
void update(User user);
@Delete("DELETE FROM user WHERE id =#{id}")
void delete(Long id);
}
5.クエリー結果バインド、「検索」操作については、多表関連、集計計算などの操作が必要になる場合が多いが、クエリーの結果は単純なエンティティオブジェクトではなく、データベースエンティティとは異なるパッケージクラスを返す必要がある場合が多い.この場合、
@Results
と@Result
注釈でバインドすることができる.具体的には以下の通りです.@Results({
@Result(property = "name", column = "name"),
@Result(property = "age", column = "age")
})
@Select("SELECT name, age FROM user")
List findAll();
上のコードでは、@Resultのproperty属性はUserオブジェクトのメンバー名、columnはSELECTのフィールド名に対応しています