使用注解时 在SqlMapConfig.xml 中<mappers>使用
<package/>或者<mapper class=””/>
实现查询
// 查询所有省
@Select("select * from province")
List<Province> findAllProvinces();
实现有条件查询
// 根据省编号 查询省
@Select("select * from province where procode=#{value}")
Province findProByCode(String procode);
新增,并获取新增的id
// 获取新增省的 id 的insert
// 插入主键
@Insert("insert into province values(null,#{procode},#{province})")
@SelectKey(keyColumn = "id", // 查询列
keyProperty = "id", // 实体属性
before = false, // 在新增之后
resultType = Integer.class, // statement的查询结果类型
statement = { "select last_insert_id()" }// 新增记录之后做的 sql语语句,查询最后一个id值
)
int addProvince(Province province);
实现新增二,其中增删改类似
//增删改 insert/delete/update
// 新增一个城市
@Insert("insert into city values(null,#{citycode},#{city},#{proId})")
int addCity(City city);
使用注解实现多表查询
1。在City接口中
//封装结果对象
/*
* @Results() 相当于<resultMap>
* @Result() 相当于<id/>或<result/>
* @Result(id=true) 相当与<id/>
* @Many() 相当于<collection/>
* @One() 相当于<association/>
*/
@Results(id="cityMap",value= {
//解析
@Result(id=true,column="id",property="id"),//id主键 column=查询结果中的列名 property=实体对象的属性名
@Result(column="citycode",property="citycode"),
@Result(column="city",property="city"),
@Result(column="provinceid",property="proId")
})
//多表查询
//根据id查询城市(省信息懒加载)
@Select("select * from city where id=#{id}")
@ResultMap("cityMap")
City findCityById(int id);
注解实现一对多:根据省查询市
1.在CityDao接口类中
//根据省查询市
@Select("select * from city where provinceid=#{value}")
@ResultMap("cityMap")
List<City> findAllCitiesByPro(String province);
2.ProvinceDao接口类中
/*
* @Results() 相当于<resultMap>
*
* @Result() 相当于<id/>或<result/>
*
* @Result(id=true) 相当与<id/>
*
* @Many() 相当于<collection/>
*
* @One() 相当于<association/>
*/
@Results(id = "proMap", value = {
@Result(column = "id", property = "id"),
@Result(column = "procode", property = "procode"),
@Result(column = "province", property = "province"),
@Result(column = "procode", property = "cities",
// 一对多懒加载
many = @Many(select = "com.gem.demo.dao.CityDAO.findAllCitiesByPro", // 懒加载查询语句
fetchType = FetchType.LAZY)// 懒加载
) })
如有问题,麻烦提醒一下