笔记——通用Mapper

一. 引入
1.1 作用:替我们生成常用增删改查操作的SQL语句。
1.2 代码官方发布地址
https://gitee.com/free/
https://gitee.com/free/Mapper/wikis/pages
1.3 前置知识
Mybatis
Spring
1.4 Java实体类

 	需要使用包装类型,不能使用基本数据类型。
	由于基本类型都有默认值,会导致Mabatis在执行相关操作的时候很难判断当前字段是否为null,所以MyBatis环境下尽量不要使用基本数据类型。
	int默认0,double默认0.0 .....

二.创建步骤
1.创建Employee实体类,service以及serviceImpl
2.创建Mapper接口并继承通用Mapper

public interface EmployeeMapper extends Mapper<Employee>{

}
//ServiceImpl
@AutoWired
private EmployeeMapper employeeMapper;
public Employee findOne(Employee emp){
	return employeeMapper.selectOne(emp);
}

3.创建测试类

//测试类
Employee emp = new Employee(id,"Tom",sex);   //查询条件
Employee findEmp = employeeService.findOne(emp);  //查询结果
System.out.println(findEmp);//查看结果

三.常见注解

1.@Table注解
作用:建立实体类和数据库表之间的对应关系
默认规则:实体类类名首字母小写作为表名,Employee类  -->employee表
用法:在@Table注解的name属性上对应数据库的表名。
2.@Column注解
作用:建立实体类与数据库表中字段之间的对应关系
默认规则:实体类字段:驼峰式命名
		 数据库字段:使用“_”区分各个单词
用法:在@Column注解中的name属性指定目标字段的字段名
3.@Id:设置实体类的字段为数据库表对应的主键字段
     注:使用selectByPrimaryKey(),必须标明主键字段
4.@GeneratedValue注解
	作用:让通用Mapper在执行insert操作之后,将数据库自动生成的主键值回写到实体类对象中。
	自增主键用法:
		@GeneratedValue(strategy = GenerationType.IDENTITY)
	序列主键用法(Oracle):
		@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select SEQ_ID.nextval from dual")
		应用场景:购物车结账
		   生成订单数据  ->封装到Order对象中->保存Order对象->数据库自动生成主键值->会写到实体类Order对象中
		   ->生成一系列订单详情数据->封装到List<OrderItem> ->在OrderItem中设置Order对象的主键值作为外键->批量保存List<OrderItem>
5.@Trnsient注解
     对于数据库中不存在的字段,但是实体类有,使用该注解,使通用Mapper忽略该字段
@Table(name="tab_emp")
public class Employee{
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer empId;
	@Column(name="emp_name")
	private String name;
}

四、常用方法

1.selectOne方法:查询一条数据
	通用Mapper根据传进去的实体类自动生成sql语句,并将查询条件传入。
	实体类封装查询条件生成where子句的规则:
  		a.使用非空的值生成WHERE子句
  		b.在条件表达式中使用的都是“=”进行比较

2.selectByPrimaryKey():通过主键查询数据,但必须要使用@Id标明实体类
中的某一个字段为数据库中的主键,
通用Mapper默认所有的字段都是联合主键。

3.existsWithPrimaryKey(不常用):通过查询主键判断数据是否存在

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值