MyBatis注解

使用注解时 在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)// 懒加载
			) })

如有问题,麻烦提醒一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值