easy code插件

啊这个,很TM几把牛逼的,自动生成代码,第一次见到代码生成器,有点激动
IDEA-setting-plus里面下载,搜索easy code。下好安装好重启,配置一下数据库

这个只能用于mybatis,不能用于JPA

1、连接数据库,一键生成

在这里插入图片描述
在这里插入图片描述

  • 右键-EasyCode-Genertate Code,

在这里插入图片描述
然后,就自动生成代码了
在这里插入图片描述
红框以内都是生成的。

2、注意

要运行,还要再DAO层加上@Mapper或者在主程序中

@MapperScan("com.qiang.springbootvue.dao"),里面扫描dao层的包

3、配置数据源

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/jdbc?library=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    initialization-mode: always

mybatis:
  mapper-locations: classpath:/mapper/*Dao.xml
  • 最后一个要导入啊,不然读取不到mapper层
    在这里插入图片描述

4、说下具体流程

  • 其有一个实体类entity。
  • 一个dao层(接口类),这个dao层等于于mapper层,只不过这个接口里面全是写方法名,因为配置文件版的不写注解,写xml的。所以下面的mapper/xxxDao.xml 写了dao层里面的具体sql语句,mybatis的xml还在学学习当中
  • 然后是service层,之前的service层我都以为是一个类就好了。但大佬说复杂项目的service层,都是service接口+ServiceImpl类的。service接口写方法名,ServiceImpl类调用dao层方法。
  • 一个controller层,用于接受请求和返回数据。
  • mapper/xxxDao.xml,还在学习语法中

下面都是这个例子的具体情况

1、BookDao


/**
 * (Book)表数据库访问层
 *
 * @author makejava
 * @since 2020-08-16 15:52:32
 */
public interface BookDao {
    
    

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Book queryById(Integer id);
    }
  • 这接口,就真的只是写个名字而已。。

2、BookDao.xml

写具体sql语句

<?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.qiang.springbootvue.dao.BookDao">

<!--    局部变量-->
    <resultMap type="com.qiang.springbootvue.entity.Book" id="BookMap">
        <result property="id" column="id" jdbcType="INTEGER"/>
        <result property="name" column="name" jdbcType="VARCHAR"/>
        <result property="author" column="author" jdbcType="VARCHAR"/>
    </resultMap>

    <!--查询单个-->
<!--   如果resultMap是基本类型,就不用写resultMap -->
    <select id="queryById" resultMap="BookMap">
        select
          id, name, author
        from library.book
        where id = #{id}
    </select>
</mapper>
  • 第1.2行都是照抄
  • 第三行,就说这个xml是BookDao的mapper
  • 接下来就是局部变量,resultMap返回的类型,都是Book类,取个名字BookMap,这样就不用打一大串东西
  • property是java对象的属性,column是表的属性,jdbcType是表的属性类型
  • select id="queryById",这个id对应BookDao层的方法名,Dao层写着返回类型为Book,这里resultMap就写Book

3、BookService

一个接口


/**
 * (Book)表服务接口
 *
 * @author makejava
 * @since 2020-08-16 15:52:34
 */
public interface BookService {
    
    

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Book queryById(Integer id);
}

4、BookServiceImpl

写接口的具体方法

@Service("bookService")
public class BookServiceImpl implements BookService {
    
    
    @Resource
//   @Resource 注解和 @Autowired 一样,只不过@Autowired是spring的,@Resource是Java自带的
    private BookDao bookDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public Book queryById(Integer id) {
    
    
        return this.bookDao.queryById(id);
    }
}
  • @Service表明是Service层
  • @Resource 注解和 @Autowired 一样,只不过@Autowired是spring的,@Resource是Java自带的
  • 调用Dao层的方法

5、BookController

@RestController
@RequestMapping("book")
public class BookController {
    
    
    /**
     * 服务对象
     */
    @Resource
    private BookService bookService;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Book selectOne(Integer id) {
    
    
        return this.bookService.queryById(id);
    }
}

传统艺能,常规操作

猜你喜欢

转载自blog.csdn.net/yi742891270/article/details/108039614