MyBatis-持久层框架
本文最后更新于22 天前,其中的信息可能已经过时,如有错误请发送邮件到qiqin-chang@qq.com

官方网站:https://mybatis.org/mybatis-3/zh_CN/index.html

依赖:

<!-- MyBatis 持久层框架 -->
<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>3.0.5</version>
</dependency>

配置:

## MyBatis配置与xml映射
mybatis:
 ## 映射xml
mapper-locations: classpath:mapper/*.xml
configuration:
   ## 日志配置
  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
   ## 映射格式转换
  map-underscore-to-camel-case: true

自动映射:

Java:驼峰命名:departmentId

数据库:下划线:department_id

mapper包扫描:

启动类注解:

@MapperScan("com.chang.mapper")

XML基础模版:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="对应mapper接口引用">
   
</mapper>

XML格式:

<select id="selectAll" resultType="com.chang.entity.Employee"> <!--id对应方法名 resultType:结果类型 对应实体类引用-->
  select * from employee
   <where>
       <if test="name!=null">name like concat('%',#{name},'%')</if>
   </where>
</select>

<insert id="insert" parameterType="com.chang.entity.Employee"> <!--parameterType:参数类型-->
  insert into `employee` (name,sex,no,age,description,department_id) <!--下划线命名法-->
  values (#{name},#{sex},#{no},#{age},#{description},#{departmentId}) <!--驼峰命名-->
</insert>

注解查询:

@Select("select * from employee where id = #{id}")
Employee selectById(Integer id);

代码模版:

Mapper:

package com.chang.mapper;

public interface EmployeeMapper {
}

Service:

package com.chang.service;

import org.springframework.stereotype.Service;

@Service
public class EmployeeService {
}

分页插件-分页查询:

依赖:

<!--PageHelper 分页插件-->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.4.6</version>
   <exclusions>
      <exclusion>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
      </exclusion>
   </exclusions>
</dependency>

代码:

controller:

/**
* 分页查询数据
* pageNum: 当前页码
* pageSize: 每页的个数
*/
@GetMapping("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
                        @RequestParam(defaultValue = "10") Integer pageSize){
   PageInfo<Employee> pageInfo = employeeService.selectPage(pageNum, pageSize);
   return Result.success(pageInfo);
}

service:

@Override
public PageInfo<Employee> selectPage(Integer pageNum, Integer pageSize) {
   PageHelper.startPage(pageNum, pageSize);
   List<Employee> list = employeeMapper.selectAll();
   return PageInfo.of(list) ;
}

CRUD:

Controller层:

package com.chang.controller;

import com.chang.common.Result;
import com.chang.entity.Employee;
import com.chang.service.EmployeeService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/employee")
public class EmployeeController {

   @Autowired
   private EmployeeService employeeService;

   /**
    * 查询单个数据
    */
   @GetMapping("/selectById/{id}")
   public Result selectById(@PathVariable Integer id){
       Employee employee = employeeService.selectById(id);
       return Result.success(employee);
  }

   /**
    * 查询所有的数据
    */
   @GetMapping("/selectAll")
   public Result selectAll(){
       List<Employee> list = employeeService.selectAll();
       return Result.success(list);
  }

   /**
    * 分页查询数据
    * pageNum: 当前页码
    * pageSize: 每页的个数
    */
   @GetMapping("/selectPage")
   public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
                            @RequestParam(defaultValue = "10") Integer pageSize){
       PageInfo<Employee> pageInfo = employeeService.selectPage(pageNum, pageSize);
       return Result.success(pageInfo);
  }

   /**
    * 新增数据
    */
   @PostMapping("/add")
   public Result add(@RequestBody Employee employee){
       employeeService.add(employee);
       return Result.success();
  }

   /**
    * 跟新数据
    */
   @PutMapping("/update")
   public Result update(@RequestBody Employee employee){
       employeeService.update(employee);
       return Result.success();
  }

   /**
    * 删除单个数据
    */
   @DeleteMapping("/deleteById/{id}")
   public Result update(@PathVariable Integer id){
       employeeService.deleteById(id);
       return Result.success();
  }
}

ServiceImpl接口:

package com.chang.service.impl;

import com.chang.entity.Employee;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface EmployeeServiceImpl {

   Employee selectById(Integer id);

   List<Employee> selectAll();

   PageInfo<Employee> selectPage(Integer pageNum, Integer pageSize);

   void add(Employee employee);

   void update(Employee employee);

   void deleteById(Integer id);
}

Service层:

package com.chang.service;

import com.chang.entity.Employee;
import com.chang.mapper.EmployeeMapper;
import com.chang.service.impl.EmployeeServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class EmployeeService implements EmployeeServiceImpl {

   @Autowired
   private EmployeeMapper employeeMapper;

   @Override
   public Employee selectById(Integer id) {
       return employeeMapper.selectById(id);
  }

   @Override
   public List<Employee> selectAll() {
       //额外业务操作
       return employeeMapper.selectAll();
  }

   @Override
   public PageInfo<Employee> selectPage(Integer pageNum, Integer pageSize) {
       PageHelper.startPage(pageNum, pageSize);
       List<Employee> list = employeeMapper.selectAll();
       return PageInfo.of(list) ;
  }

   @Override
   public void add(Employee employee) {
       employeeMapper.insert(employee);
  }

   @Override
   public void update(Employee employee) {
       employeeMapper.updateById(employee);
  }

   @Override
   public void deleteById(Integer id) {
       employeeMapper.deleteById(id);
  }

}

Mapper层:

package com.chang.mapper;

import com.chang.entity.Employee;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface EmployeeMapper {

   List<Employee> selectAll();

   @Select("select * from `employee` where id = #{id}")
   Employee selectById(Integer id);

   void insert(Employee employee);

   void updateById(Employee employee);

   @Delete("delete from `employee` where id = #{id}")
   void deleteById(Integer id);
}

XML文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chang.mapper.EmployeeMapper">

   <select id="selectAll" resultType="com.chang.entity.Employee">
      select * from employee
   </select>

   <insert id="insert" parameterType="com.chang.entity.Employee">
      insert into `employee` (name,sex,no,age,description,department_id)
      values (#{name},#{sex},#{no},#{age},#{description},#{departmentId})
   </insert>

   <update id="updateById" parameterType="com.chang.entity.Employee">
      update `employee` set name = #{name},sex = #{sex},no=#{no},age=#{age},
      description=#{description},department_id=#{departmentId}
      where id=#{id}
   </update>

</mapper>
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇