1、@Mapper
该注解定义在mapper接口上
作用:
- 将mapper接口交给Spring进行管理
- 不用写Mapper映射文件(XML)
- 为这个NewsDAO接口生成一个实现类,让别的类进行引用
和@MapperScan的作用一样。但是@MapperScan可以注解多个包,更省事。比如:@MapperScan({“com.zcy.demomapper”,“com.zcy.usermapper”})
2、@Select:
类似于<select>标签
@Select("SELECT * FROM `user`")
List<String> selectUser();
3、@Insert
类似于<insert>标签
@Insert({"INSERT INTO `user` (id,name) ",
"VALUES (#{userId,jdbcType = INTEGER},#{userName,jdbcType = VARCHAR})"})
int insertUser(User user);
这里的 jdbcType 可写可不写,如果要写就必须字母大写
4、@Update
类似于<update>
@Update({"UPDATE `user` SET name = #{userName,jdbcType = VARCHAR} ",
"WHERE id = #{userId, jdbcType = INTEGER}"})
int updateUser(User user);
5、@Delete
类似于<delete>
@Delete({"DELETE FROM `user`",
"WHERE id = #{userId, jdbcType = INTEGER}"})
int deleteUser(User user)
6、@Results和@Result
类似于<resultMap>和<resultMap>的子标签
@Results(id = "userMap", value = {
@Result(column = "id", property = "userId", jdbcType = JdbcType.INTEGER),
@Result(column = "name", property = "userName", jdbcType = JdbcType.VARCHAR),
@Result(column = "update_time", property = "updateTime", jdbcType = JdbcType.TIMESTAMP)
})
@Select("SELECT * FROM `user`")
List<User> selectAllUser();
7、@ResultType和@ResultMap
类似于<select>标签里的resultMap属性
@ResultMap("userMap" //@Results里id的值)
//@ResultType(User.class)
@Select("SELECT * FROM `user`")
List<User> selectAllUser2();
8、@One
类似于<association>
9、@Many
类似于<collection>
10、@Options
目前用到此注解的功能只有一个,就是在insert的时候,返回自增列的值;
@Insert("INSERT INTO `passenger_info` (orderNo,name,age_type,passengerInfo,card_number) " +
"VALUES " +
"(#{orderNo,jdbcType = VARCHAR}," +
"#{name,jdbcType = VARCHAR}," +
"#{ageType,jdbcType = INTEGER}," +
"#{passengerInfo,jdbcType = LONGVARCHAR}," +
"#{cardNumber,jdbcType = VARCHAR})")
@Options(useGeneratedKeys = true, keyProperty = "passengerId", keyColumn = "passengerId")
int insertPassengerInfo(PassengerInfo passengerInfo);
这个时候,使用 passengerInfo.getPassengerId() 即可获得自增列 passengerId 的值
注解大全 https://blog.csdn.net/weixin_43791238/article/details/93527217