mybatis新增语句_mybatis增删改查
映射⽂件l
注意:⼩于或⼤于号等可能与如select标签的尖括号(<>)与冲突或者⽆法识别的时候,可以使⽤转义字符⽐如⼩于号可以使⽤&It; 等等另⼀处理⽅法,使⽤CDATA⽐如:
(在⽤CDATA的时候,只⽤把可能产⽣冲突的那段代码包含就可以了,不要盲⽬的包含。)
⼀、查询
//接⼝mysql面试题 增删改查
//@MapKey:告诉mybatis封装这个map的时候使⽤哪个属性作为map的key
@MapKey("lastName")
public Map getEmpByLastNameLikeReturnMap(String lastName);
// 映射⽂件配置
select * from tbl_employee where last_name like #{lastName}
接⼝返回类型--->resultType
Map--->map
Map--->Employee(全类名)
注意如果返回的是集合,那应该设置为集合包含的类型,⽽不是集合本⾝
select * from tbl_employee where id=#{id}
3.association
1)使⽤association定义关联的单个对象的封装规则
Employee含有属性departmentName即Department对象
SELECT e.id id,e.last_name last_der gender,e.d_id d_id,
d.id did,d.dept_name dept_name FROM tbl_employee e,tbl_dept d
WHERE e.d_id=d.id AND e.id=#{id}
2)使⽤association进⾏分步查询
Employee含有属性dept即Department对象
association中select指定使⽤哪个接⼝中的哪个⽅法去查询,column指定⽅法使⽤哪个字段的值传递参数
-->
select="batis.DeptById"
column="d_id">
select * from tbl_employee where id=#{id}
国外xss平台and 1=1
1)嵌套结果集的⽅式
SELECT d.id did,d.dept_name dept_name,
e.id eid,e.last_name last_ail der gender
三菱wxor是什么指令FROM tbl_dept d
LEFT JOIN tbl_employee e
ON d.id=e.d_id
WHERE d.id=#{id}
2).分段查询
select="batis.EmpsByDeptId"
column="{deptId=id}" fetchType="lazy">
select id,dept_name from tbl_dept where id=#{id}
5.鉴别器
Employee含有属性dept即Department对象
select="batis.DeptById"
column="d_id">
⼆、插⼊
1.基本插⼊语句
mapviewoffileinsert into tbl_employee(last_name,email,gender)
values(#{lastName},#{email},#{gender})
解释:parameterType指定传⼊参数Employee对象,#{lastName}直接取到Employee的lastName的属性值
2.获取插⼊后该条纪录的⾃增主键的值(mysql数据库⽀持主键⾃增)
useGeneratedKeys="true" keyProperty="id" >字体颜代码迷你世界
insert into tbl_employee(last_name,email,gender)
values(#{lastName},#{email},#{gender})
解释:
useGeneratedKeys="true";使⽤⾃增主键获取主键值策略
keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean(Employee)的哪个属性//代码⽚段
//openSession是以获取的SqlSession对象
EmployeeMapper mapper = Mapper(EmployeeMapper.class);
//测试添加
Employee employee = new Employee(null, "jerry4",null, "1");
mapper.addEmp(employee);
//插⼊记录后⾃增的主键值会封装到employee的id属性中
System.out.Id());
3.获取插⼊后该条纪录的⾃增主键的值(oracle数据库不⽀持主键⾃增)
select val from dual
insert into employees(EMPLOYEE_ID,LAST_NAME,EMAIL)
values(#{id},#{lastName},#{email})
解释:before时,selectKey会查询到下⼀个主键封装给keyProperty指定的javabean的id属性,在使⽤该id插⼊纪录,after相反,只是取主键的⽅法是oracle序列的当前id,建议使⽤before,因为多⼈操作时,after拿到的是最后⼀次执⾏的id值,信息不正确
vlookup怎么匹配两个表格的数据三、update
update tbl_employee
set last_name=#{lastName},email=#{email},gender=#{gender}
where id=#{id}
四、delete
delete from tbl_employee where id=#{id}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论