1,新建项目
2,加入所需依赖(jar)
<!-- web支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis 模块 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- mysq连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 测试模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
3,配置所需属性
#数据源 配置
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&charaterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=****
mybatis 配置
#配置扫描实体类
mybatis.type-aliases-package=indi.lwc.springboot2.entity
#配置扫描映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
4,编写启动类
package indi.lwc.springboot2;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
//@MapperScan 可以指定要扫描的mapper类路径
@MapperScan("indi.lwc.springboot2.dao") //扫描该包下的接口
public class Springboot2Application {
public static void main(String[] args) {
SpringApplication.run(Springboot2Application.class, args);
}
}
5,编写业务相关代码(大家根据自己的需求编写),
package com.example.servicehello.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class Emp {
private Integer eno;
private String ename;
private String esex;
private Float sal;
private Integer dno;
private Date join_date;
private Integer elevel;
private String password;
private String face;
public Emp(){}
public Emp(String eName){
this.ename = eName;
}
public Integer getEno() {
return eno;
}
public void setEno(Integer eno) {
this.eno = eno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getEsex() {
return esex;
}
public void setEsex(String esex) {
this.esex = esex;
}
public Float getSal() {
return sal;
}
public void setSal(Float sal) {
this.sal = sal;
}
public Integer getDno() {
return dno;
}
public void setDno(Integer dno) {
this.dno = dno;
}
public Date getJoin_date() {
return join_date;
}
public void setJoin_date(Date join_date) {
this.join_date = join_date;
}
public Integer getElevel() {
return elevel;
}
public void setElevel(Integer elevel) {
this.elevel = elevel;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getFace() {
return face;
}
public void setFace(String face) {
this.face = face;
}
@Override
public String toString() {
return "Emp{" +
"eno=" + eno +
", ename='" + ename + '\'' +
", esex='" + esex + '\'' +
", sal=" + sal +
", dno=" + dno +
", join_date=" + join_date +
", elevel=" + elevel +
", password='" + password + '\'' +
'}';
}
}
package com.example.servicehello.mapper;
import com.example.servicehello.entity.Emp;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface EmpDao {
/**
* 根据员工名and密码查询员工
* @param ename
* @param password
* @return
*/
Emp queryEmpByNameAndPwd(@Param("ename") String ename,
@Param("password") String password);
/**
* 根据员工编号查询员工
* @param eno
* @return
*/
Emp queryEmpByEno(int eno);
/**
* 查询用户
* @param emp
* @return
*/
List<Emp> queryEmps(@Param("emp") Emp emp,
@Param("pageIndex") int pageIndex,
@Param("pageSize") int pageSize);
/**
* 新增用户
* @param emp
* @return
*/
int insertEmp(@Param("emp") Emp emp);
/**
* 更新员工
* @param emp
* @return
*/
int updateEmp(@Param("emp") Emp emp);
/**
* 根据id删除员工
* @param eno
* @return
*/
int deleteEmpById(int eno);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"htt//mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.servicehello.mapper.EmpDao">
<sql id="queryEmp">
select * from emp
</sql>
<select id="queryEmpByNameAndPwd" resultType="com.example.servicehello.entity.Emp">
<include refid="queryEmp"></include>
where ename=#{ename} and password=#{password}
</select>
<select id="queryEmps" resultType="com.example.servicehello.entity.Emp">
<include refid="queryEmp"></include>
<where>
<if test="emp!=null and emp.ename!=null">
and ename = #{emp.ename}
</if>
<if test="emp!=null and emp.esex!=null">
and esex = #{emp.esex}
</if>
<if test="emp !=null and emp.dno!=null">
and dno = #{dno}
</if>
</where>
LIMIT #{pageIndex},#{pageSize}
</select>
<select id="queryEmpByEno" resultType="com.example.servicehello.entity.Emp">
<include refid="queryEmp"></include>
where eno = #{eno}
</select>
<insert id="insertEmp" keyProperty="eno" keyColumn="eno">
insert emp(ename,esex,sal,dno,join_date,elevel,password) value
(
#{emp.ename},
#{emp.esex},
#{emp.sal},
#{emp.dno},
#{emp.join_date},
#{emp.elevel},
#{emp.password}
)
</insert>
<update id="updateEmp">
update emp
<set>
<if test="emp!=null and emp.ename!=null">
ename = #{emp.ename},
</if>
<if test="emp!=null and emp.esex!=null">
esex = #{emp.esex},
</if>
<if test="emp!=null and emp.sal!=null">
sal = #{emp.sal},
</if>
<if test="emp!=null and emp.dno!=null">
dno = #{emp.dno},
</if>
<if test="emp!=null and emp.elevel!=null">
elevel = #{emp.elevel}
</if>
</set>
where eno = #{emp.eno}
</update>
<delete id="deleteEmpById">
delete from emp where eno = #{eno}
</delete>
</mapper>
6,最后我们用测试类来测试一下。
package com.example.springbootdemothymeleafview.mapper;
import com.example.springbootdemothymeleafview.BaseTest;
import com.example.springbootdemothymeleafview.entity.Emp;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
import java.util.List;
public class EmpDaoTest extends BaseTest {
@Autowired
private EmpDao empDao;
@Test
public void testQueryEmps(){
List<Emp> list = empDao.queryEmps(new Emp(),4,5);
for (Emp e: list
) {
System.out.println(e.toString());
}
}
@Test
public void testQeuryEmpByEno(){
Emp emp = empDao.queryEmpByEno(1);
System.out.println(emp.toString());
}
@Test
public void testDeleteEmpById(){
int effectNumer = empDao.deleteEmpById(1);
System.out.println("====="+effectNumer);
}
@Test void testInsertEmp(){
Emp emp = new Emp();
emp.setEname("test");
emp.setEsex("test");
emp.setJoin_date(new Date());
emp.setSal(212F);
emp.setPassword("123456");
emp.setFace("test");
emp.setDno(1);
emp.setElevel(1);
empDao.insertEmp(emp);
}
@Test
public void testUpdateEmp(){
Emp emp = new Emp();
emp.setEno(1);
emp.setEname("test");
emp.setEsex("test");
emp.setJoin_date(new Date());
emp.setSal(212F);
emp.setPassword("123456");
emp.setFace("test");
emp.setDno(1);
emp.setElevel(1);
empDao.updateEmp(emp);
}
}
源代码: