文章目录
- 前言
- 简单语句用注解
- 增加功能
- 更新功能
- 删除功能
- 查询功能
- 复杂语句用映射
- 查询功能
前言
提示:这里可以添加本文要记录的大概内容:
注解实现的最大的好处是简单SQL语句放注解里,映射文件就不用写了
数据库代码:
create table DEPT
(
DEPTNO int primary key, # 主键不是自增
DNAME varchar(20),
LOC varchar(30)
);
在 main/java 文件夹下新建包 mapper 和 po
其中 mapper 包中新建同名的接口和映射文件
po 类代码:
public class Dept {
private Integer deptno;
private String dname;
private String loc;
// 自动生成 Getter、Setter、toString()、有参无参方法
}
提示:以下是本篇文章正文内容,下面案例可供参考
简单语句用注解
增加功能
在接口文件中:
// 在注解后直接写SQL语句 因为主键不是自增的,这里需要加上主键
// 如果是自增的:@Insert("insert into dept (dname,loc) values(#{dname},#{loc})")
@Insert("insert into dept values(#{deptno},#{dname},#{loc})")
// 后在上面增加注解
int insertDept(Dept dept);
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept(60,"销售部","津海");
mapper.insertDept(dept);
}
更新功能
接口代码:
@Update("update dept set dname = #{dname},loc = #{loc} where deptno = #{deptno}")
int updateDept(Dept dept);
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept(60,"管理销售部","津海区");
mapper.updateDept(dept);
}
删除功能
接口代码:
// 基本类型随便起名
@Delete("delete from dept where deptno = #{abc}")
int deleteDept(int no);
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
// Dept dept = new Dept(60,"管理销售部","津海区");
mapper.deleteDept(60);
}
查询功能
1、根据部门编号查询某个部门
接口代码:
// 根据编号查询部门 // 基本类型随便起名
@Select("select * from dept where deptno = #{xxx}")
Dept queryDeptByNo(int no);
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
mapper.queryDeptByNo(20);
}
2、查所有部门
// 查所有部门
@Select("select * from dept")
List<Dept> queryAllDepts();
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
List<Dept> depts = mapper.queryAllDepts();
System.out.println(depts);
}
复杂语句用映射
查询功能
新建与接口文件同名的映射文件,映射文件中的namespace
是接口文件的限定名
接口文件中:
List<Dept> queryDepts(Dept dept);
int queryAllDepts(Dept dept);
映射文件代码:
<mapper namespace="com.mybatis.mapper.DeptMapper">
<select id="queryDepts" parameterType="Dept" resultType="Dept">
select * from dept
<where>
<if test="deptno != null">
and deptno = #{deptno}
</if>
<if test="dname != null and dname != '' ">
and dname = #{dname}
</if>
<if test="loc != null and loc != '' ">
and loc like concat('%',#{loc},'%')
</if>
</where>
</select>
</mapper>
测试代码:
@Test
public void test() {
DeptMapper mapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept(60,"管理销售部","津海区");
mapper.queryDepts(dept);
}
重点看语句