mybatis的sql映射文件—增删改查
前提:需要的包log4j.jar,mybatis-3.4.1.jar,mysql-connector-java-5.1.37-bin.jar
1.基本类
员工类
public class Employee {
private Integer eId;
private String eName;
private Integer gender;
private String email;
private Department dept;
public Employee() {
super();
}
public Employee(Integer eId,String eName, Integer gender, String email) {
super();
this.eId=eId;
this.eName = eName;
this.gender = gender;
this.email = email;
}
public Integer geteId() {
return eId;
}
public void seteId(Integer eId) {
this.eId = eId;
}
public String getEName() {
return eName;
}
public void setEname(String ename) {
this.eName = ename;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Department getDept() {
return dept;
}
public void setDept(Department dept) {
this.dept = dept;
}
@Override
public String toString() {
return "Employee [eId=" + eId + ", ename=" + eName + ", gender=" + gender + ", email=" + email + "]";
}
}
部门类
package com.hand.mybatis.bean;
import java.util.List;
public class Department {
private Integer id;
private String departName;
private List<Employee> empList;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDepartName() {
return departName;
}
public void setDepartName(String departName) {
this.departName = departName;
}
public List<Employee> getEmpList() {
return empList;
}
public void setEmpList(List<Employee> empList) {
this.empList = empList;
}
@Override
public String toString() {
return "Department [id=" + id + ", departName=" + departName + "]";
}
}
EmployeeMapper.java 接口
package com.hand.mybatis.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import com.hand.mybatis.bean.Employee;
public interface EmployeeMapper {
Employee selectEmployee(Integer eid);
int addEmp(Employee employee);
Boolean updateEmp(Employee employee);
int deleteEmpById(Integer id);
//传入多个参数的情况
//Employee getEmp(@Param("id") Integer id,@Param("ename") String ename);
//传入多个参数的情况(map)
Employee getEmp(Map<String, Object> map);
//集合List
List<Employee> getEmpByeNameLike(String ename);
//返回一条记录的map;key就是列名,值是对应的值
Map<String, Object> getEmpByIdReturnMap(Integer id);
//多条记录封装一个map:Map<Integer,Employee>:键是这条记录的主键,值是记录封装后的javaBean
//告诉mybatis封装这个map的时候使用哪个属性作为map的key
/*@MapKey("eId")
Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String ename);*/
@MapKey("eName")
Map<String, Employee> getEmpByLastNameLikeReturnMap(String ename);
}
EmployeeMapper.xml映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hand.mybatis.dao.EmployeeMapper">
<!-- mapper接口 public interface EmployeeMapper {} -->
<!-- 查找
Employee selectEmployee(Integer eid); -->
<select id="selectEmployee" resultType="com.hand.mybatis.bean.Employee">
SELECT * FROM emp WHERE eid=#{eid}
</select>
<!--添加
int addEmp(Employee employee);-->
<insert id="addEmp" useGeneratedKeys="true" keyProperty="eId"> //使用 useGeneratedKeys="true" keyProperty="eId" 调用接口时,可以获得主键eid
insert into emp(ename,gender,email)
VALUES(#{eName},#{gender},#{email})
</insert>
<!-- 更新
Boolean updateEmp(Employee employee); --> //返回值类型Boolen int void long 都行
<update id="updateEmp">
UPDATE emp SET ename=#{eName},gender=#{gender},email=#{email}
WHERE eid=#{eId}
</update>
<!--删除
int deleteEmpById(Integer id); -->
<delete id="deleteEmpById">
DELETE FROM emp WHERE eid=#{eid}
</delete>
<!--
//传入多个参数的情况
//Employee getEmp(@Param("id") Integer id,@Param("ename") String ename); //使用@Param()注解
//传入多个参数的情况(map)
Employee getEmp(Map<String, Object> map); --> //调用接口时,需要给map赋值
<select id="getEmp" resultType="com.hand.mybatis.bean.Employee">
SELECT * FROM emp WHERE eid=#{id} AND ename=#{ename}
</select>
map.put("ename", "张三");
Employee employee=employeeMapper.getEmp(map);
System.out.println(employee);
<!-- //集合List
List<Employee> getEmpByeNameLike(String ename); -->
<select id="getEmpByeNameLike" resultType="com.hand.mybatis.bean.Employee">
SELECT * FROM emp WHERE ename like #{ename}
</select>
<!-- //返回一条记录的map;key就是列名,值是对应的值
Map<String, Object> getEmpByIdReturnMap(Integer id); -->
<select id="getEmpByIdReturnMap" resultType="map">
SELECT * FROM emp WHERE eid=#{id}
</select>
调用 Map<String, Object> getEmpByIdReturnMap(Integer id)接口:
Map<String, Object> map= employeeMapper.getEmpByIdReturnMap(101);
System.out.println(map);
结果:
<!-- //多条记录封装一个map:Map<Integer,Employee>:键是这条记录的主键,值是记录封装后的javaBean
//告诉mybatis封装这个map的时候使用哪个属性作为map的key
/*@MapKey("eId")
Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String ename);*/
@MapKey("eName")
Map<String, Employee> getEmpByLastNameLikeReturnMap(String ename); -->
<select id="getEmpByLastNameLikeReturnMap" resultType="com.hand.mybatis.bean.Employee">
SELECT * FROM emp WHERE ename like #{ename}
</select>
调用:
Map<Integer, Employee> map=employeeMapper.getEmpByLastNameLikeReturnMap("%张%");
System.out.println(map);
结果 {101=Employee [eId=101, ename=张三, gender=0, email=2714763867@qq.com], 102=Employee [eId=102, ename=张丽, gender=0, email=163826386@qq.com], 103=Employee [eId=103, ename=杨张, gender=1, email=21901826380863@163.com]}
</mapper>
代码:https://github.com/shuaishuaihand/mybatis.git
mybatis的sql映射文件—增删改查的更多相关文章
- Mybatis(3) 映射文件-增删改查
映射文件: 映射文件是根据数据库模型生成的编写sql脚本xml文件, mapper标签中namespace属性值为对应模型实体类的全类名. <?xml version="1.0&quo ...
- mybatis 学习四(下) SQL语句映射文件增删改查、参数、缓存
2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...
- SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)
Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...
- SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查
SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查
笔记 2.使用Mybatis注解开发视频列表增删改查 讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句 1.控制台打印sql语句 ...
- Mybatis(二) SQL映射文件
SQL映射文件 单条件查询 1. 在UserMapper接口添加抽象方法 //根据用户名模糊查询 List<User> getUserListByName(); 2. 在UserMappe ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- 四种简单的sql语句(增删改查语句)
四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...
- dml语句就是你常写的sql语句,增删改查
dml语句就是你常写的sql语句,增删改查
随机推荐
- 1.1 VGA(图像显示卡),Graphics Card(图形加速卡),Video Card(视频加速卡),3D Accelerator Card 和 GPU(图形处理器)
1.1 VGA(图像显示卡),Graphics Card(图形加速卡),Video Card(视频加速卡),3D Accelerator Card 和 GPU(图形处理器) 对这些概念之前也没怎么了解 ...
- 排序算法review<2>--Shell 排序
shell排序方法也是一种插入排序算法,于1959年由D.L.Shell提出,其基本方法是:首先将带排序文件分为d1(d1<n)组,将所有彼此之间间隔为d和d的倍数的记录放在一组中,然后在组内进 ...
- springboot跨域处理
/** * @author 657642432@qq.com * 跨域处理 */ @Configuration public class CorsConfig { @Bean public Filte ...
- 003-shell 传递参数
一.概述 可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 二.实例 以下实例我们向 ...
- 使用uiautomatorviewer获取元素
1.进入以下目录,Androidsdk-tools,双击uiautomatorviewer.bat,然后弹出UI Automator Viewer窗口,按截图操作, 获取当前页面,然后点击相应的元素, ...
- Java队列存储结构及实现
一.队列(Queue) 队列是一种特殊的线性表,它只允许在表的前段(front)进行删除操作,只允许在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头. 对于一个队 ...
- Linux系统基础命令总结
一.帮助命令(1)helpxxxx --helphelp xxxx(2)manman xxxx二.ls查看命令:列表显示目录内的文件及目录ls 参数-l 以列表的形式显示-d 显示目录本身属性-a显示 ...
- javascript 闭包 内存
- 设置eclipse启动时所需要的jdk
eclipse启动时默认的时环境变量中的JDK,但如果环境变量中的jdk版本比较低,那么eclipse是启动不了的, 比如系统中运行的程序中使用的是jdk1.7,但eclipse版本2018需要jdk ...
- BitmapFactory.decodeStream(inputStream)返回null的解决方法
场景:Android,通过inputStream从网络上获取图片 随后两次使用BitmapFactory对InputStream进行操作,一次获取宽高,另一次缩放 但是在缩放时,发现inputStre ...