SpringBoot整合MyBatis最新

介绍:这里通过SpringBoot整合MyBatis做了对一张表的简单的增删查改的一个案例,这里不过多讲解,有问题请评论,我看到会回答。

一、运行环境

1、IDEA 2020年的3.3版本

2、SpringBoot 2.3.3

3、MySQL 5.7

4、navicat 12

二、数据库表

【employees】

这里的两个时间类型是timestamp,更改数据会默认插入当前时间

三、使用IDEA的向导Spring Initializr创建项目,添加web启动器和lombok插件

点击next完成。。。

四、pom文件导入依赖

 

<!-- MyBatis-Spring启动器 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
    <scope>runtime</scope>
</dependency>
<!--devtools热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>runtime</scope>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
    <!-- 资源过滤 -->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

这里我加了资源过滤和热部署的配置。

五、resources中添加配置文件

 

(1)application.yml

spring:
  profiles:
    active: dev
  devtools:
    restart:
      enabled: true  #设置开启热部署
      additional-paths: src/main/java #重启目录
      exclude: WEB-INF/**
  freemarker:
    cache: false    #页面不加载缓存,修改即时生效

 

(2)application-dev.yml

 

spring:
  datasource:
    username: root
    password: 1234
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&zeroDateTimeBehavior=convertToNull
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  mapper-locations: classpath:com/ph/springboot/springbootmybatis/dao/*.xml

#showSql
logging:
  level:
    com:
      example:
        mapper : debug

六、java代码

【实体类】

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee {
    /**
     * 员工Id
     */
    private Integer empId;
    /**
     * 员工名字
     */
    private String empName;
    /**
     * 员工性别
     */
    private String empGender;
    /**
     * 部门id
     */
    private Integer deptId;
    /**
     * 员工创建时间
     */
    private Date createDate;
    /**
     * 员工修改时间
     */
    private Date updateDate;
}

 

【dao层】

EmployeeMapper接口

 

@Repository
public interface EmployeeMapper {
    /**
     * 添加一个员工
     * @param employee 员工对象
     * @return 更新行数
     */
    int insertEmployee(@Param("employee") Employee employee);
    /**
     * 根据名字删除一个员工
     * @param empName 员工名字
     * @return 更新行数
     */
    int deleteEmployee(String empName);
    /**
     * 根据员工id修改一个员工
     * @param employee 员工对象
     * @return 更新行数
     */
    int updateEmployee(@Param("employee") Employee employee);
    /**
     * 查找全部员工
     * @return 员工集合
     */
    List<Employee> selectUserList();
}

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.ph.springboot.springbootmybatis.dao.EmployeeMapper">
    <insert id="insertEmployee">
        insert into employees(emp_name,emp_gender,dept_id)
        values(#{employee.empName},#{employee.empGender},#{employee.deptId});
    </insert>

    <delete id="deleteEmployee">
        delete from employees where emp_name=#{empName};
    </delete>

    <update id="updateEmployee">
        update employees
        <set>
            <if test="employee.empName!=null and employee.empName!=''">
                emp_name=#{employee.empName}
            </if>
            <if test="employee.empGender and employee.empGender!=''">
                ,emp_gender=#{employee.empGender}
            </if>
            <if test="employee.deptId!=null">
                ,dept_id=#{employee.deptId}
            </if>
            where emp_id=#{employee.empId};
        </set>
    </update>

    <resultMap id="empMap" type="com.ph.springboot.springbootmybatis.entity.Employee">
        <result column="emp_id" property="empId"/>
        <result column="emp_name" property="empName"/>
        <result column="emp_gender" property="empGender"/>
        <result column="dept_id" property="deptId"/>
        <result column="create_date" property="createDate"/>
        <result column="update_date" property="updateDate"/>
    </resultMap>
    <select id="selectUserList" resultMap="empMap">
        select emp_id,emp_name,emp_gender,dept_id,create_date,update_date
        from employees;
    </select>
</mapper>

【service层】

public interface EmployeeService {
    /**
     * 添加一个员工
     * @param employee 员工对象
     * @return 更新行数
     */
    int addEmployee(@Param("employee") Employee employee);
    /**
     * 根据名字删除一个员工
     * @param empName 员工名字
     * @return 更新行数
     */
    int removeEmployee(String empName);
    /**
     * 根据员工id修改一个员工
     * @param employee 员工对象
     * @return 更新行数
     */
    int replaceEmployee(@Param("employee") Employee employee);
    /**
     * 查找全部员工
     * @return 员工集合
     */
    List<Employee> findUserList();
}
@Service
public class EmployeeServiceImpl implements EmployeeService {
    @Resource
    private EmployeeMapper employeeMapper;

    @Override
    public int addEmployee(Employee employee) {
        return employeeMapper.insertEmployee(employee);
    }

    @Override
    public int removeEmployee(String empName) {
        return employeeMapper.deleteEmployee(empName);
    }

    @Override
    public int replaceEmployee(Employee employee) {
        return employeeMapper.updateEmployee(employee);
    }

    @Override
    public List<Employee> findUserList() {
        return employeeMapper.selectUserList();
    }
}

【controller】

 

@RestController
public class EmployeeController {

    @Resource
    private EmployeeService employeeServiceImpl;

    @RequestMapping("/addEmp")
    public String addEmployee(Employee employee){
        int i = employeeServiceImpl.addEmployee(employee);
        if(i>0){
            return "<h1>成功添加一条员工数据!</h1>";
        }
        return "<h1>添加员工数据失败!</h1>";
    }
    @RequestMapping("/delEmp")
    public String delEmployee(String empName){
        int i = employeeServiceImpl.removeEmployee(empName);
        if (i>0){
            return "<h1>成功删除一条员工数据!</h1>";
        }
        return "<h1>删除员工数据失败!</h1>";
    }
    @RequestMapping("/updEmp")
    public String updEmployee(Employee employee){
        int i = employeeServiceImpl.replaceEmployee(employee);
        if (i>0){
            return "<h1>成功修改一条员工数据!</h1>";
        }
        return "<h1>修改员工数据失败!</h1>";
    }
    @RequestMapping("/getAllEmp")
    public List<Employee> getAllEmployee(){
        List<Employee> empList = employeeServiceImpl.findUserList();
        return empList;
    }
}

五、项目结构如图

六、测试地址

增:http://localhost:8080/addEmp?empName=徐脂虎&empGender=女&deptId=3

删:http://localhost:8080/delEmp?empName=黄阵图

改:http://localhost:8080/updEmp?empGender=%E5%A5%B3&deptId=2&empId=8

查:http://localhost:8080/getAllEmp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值