黑马程序员视频教程学习mybatis框架常用注释SQL语句学习笔记?

黑马程序员ssm框架视频教程之mybatis注解学习笔记。

软件:
IDEA+Navicat(mysql)

数据表:
在这里插入图片描述

常用注释增删改查SQL语句

功能注释SQL常用增删改查语句
@Select("select *from user ")
@Insert("insert into user(username,address,sex,birthday) values {#username},#{address},#{sex},#{birthday} ")
@Update("update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address} where id=#{id} ")
@Delete("delete from user where id=#{id} ")

常用注释拓展SQL语句

功能常用注释拓展SQL语句
根据id查用户@Select("select *from user where id=#{id} ")
模糊查询第一种@Select("select *from user where username like #{username} ")
第一种注意事项调用方法的时候需要把数据两端加入%,例如:%%
模糊查询第二种@Select("select *from user where username like '%${value}%' ")
查询总用户数量@Select("select count(*) from user ")

解决实体类属性和数据库表中的属性名称不相同的问题:

实体类的属性为:
userId,userName,userAddress,userSex,userBirthday
数据库表的属性为:
id,username,address,sex,birthday
解决方法:

@Results(id="userMap",value={
		 @Result(id=true,column="id" property="userId"),
		 @Result(column="username",property="userName"),
		 @Result(column="address",property="userAddress"),
		 @Result(column="sex",property="userSex"),
		 @Result(column="birthday",property="userBirthday"),
		 })

因为避免每一个注解都要重复写上面这个解决方法,我们可以使用ResultMap来调用上面的注解。

@ResultMap("userMap")
严谨注解应为:@ResultMap(value={"userMap"})
因为只有一个属性可以省略为上面的哪种形式

如图所示:
在这里插入图片描述
后面单纯属于笔记部分,如果具体想学可以去看视频教程,老师说的挺详细的,因为书上表达能力有限,所有存在表达不清。

mybatis注解之一对一查询:

视频教程:mybatis一对一查询
使用到了两个表,如图所示:
account表:
在这里插入图片描述
user表:
在这里插入图片描述

使用到注释:
accout表的查询注解:

@Select("select *from accout")

user表的查询注解:

@Select("select *from user)

实现根据accout的账户uid来查询user的用户信息:
在这里插入图片描述

使用注解:

@Results(id="accoutMap",value={
		@Result(id=true,column="id",property="id"),
		@Result(column="uid",property="uid"),
		@Result(column="money",property="money"),
		@Result(property="user",column="uid",one=@One(select="完整路径下的user表的查询方法,列如:com.example.dao.IUserDao.findById",fetchType=FetchType.EAGER))
		})
解析:
fetchType的属性:
EAGER:立即加载数据
LAZY:延迟加载数据

mybatis注解之一对多查询:

视频教程:mybatis一对多查询
因为一个用户可以有多个账户:

user表的查询注解:

@Select("select *from user")

account表的更加uid查询注解

@Select("select *from account where uid=#{userId}")

实现根据user的用户id来查询accout的多个账户信息:

@Results(id="userMap",value={
	@Result(id=true,column="id",property="userId"),
	@Result(column="username",property="userName"),
	@Result(column="address",property="userAddress"),
	@Result(column="sex",property="userSex"),
	@Result(column="birthday",property="userBirthday"),
	@Result(property="accounts",column="id",many=@Many(select="这里使用account根据uid查询的方法例如:com.example.dao.IAccountDao.findAccountByUid",fetchType=FetchType.LAZY))
	})

mybatis开启二级缓存

视频教程:开启二级缓存
配置二级缓存开启:

@CacheNamespace(blocking=true)

还在持续学习中。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值