MyBatis注解式开发
大约 1 分钟
和 Servlet 类似,mybatis中也提供了注解式开发⽅式,采⽤注解可以减少Sql映射⽂件的配置。
MyBatis 注解式开发需要将 sql写在java程序中,提高了sql的维护成本。
使⽤注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂⼀点的语句,Java 注解不仅⼒不从⼼,还会让你本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做⼀些很复杂的操作,最好⽤ XML 来映射语句。

原则:简单的sql可用用注解,复杂的sql最好用xml。
- 总体上看,是不建议使用注解式开发的。
使用注解开发,直接在注解中编写 sql 即可,同 SQL映射文件 一样。
@Insert
@Insert(
"insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})"
)
int insert(Car car);@Delete
@Delete("delete from t_car where id = #{id}")
int deleteById(Long id);@Update
@Update(
"update t_car set car_num=#{carNum},brand=#{brand},guide_price=#{guidePrice},produce_time=#{produceTime},car_type=#{carType} where id=#{id}"
)
int update(Car car);@Select
@Select("select * from t_car where id = #{id}")
// 使用 @Results 进行结果映射
@Results({
@Result(column = "id", property = "id", id = true),
@Result(column = "car_num", property = "carNum"),
@Result(column = "brand", property = "brand"),
@Result(column = "guide_price", property = "guidePrice"),
@Result(column = "produce_time", property = "produceTime"),
@Result(column = "car_type", property = "carType")
})
Car selectById(Long id);