在平时的开发过程中,一个好用的IDE可以明显提高我们的开发效率,但是如果你在一个好用的IDE中再装上一些好用的插件的话,更是如虎添翼。下面我就介绍一款帮助我们CRUD的神奇。一起来看吧。
一、首先建立一个SpringBoot的项目
该插件是基于Mybatis的,所以如果项目中用的是JPA的话,可能功能就没这么强大了。这里我们只需要加入Spring web、Mybatis、和Mysql的Driver就可以了。
创建好项目之后依然是我们熟悉的样子。。。
二、配置数据源
配置数据源这一步只能是ultimate版本才有,社区版的没有该功能。
配置好数据源之后我们看到的页面就是这样了。
三、使用插件一键生成代码
点击之后会如果存在不匹配的类型就会弹出如下的提示框
没关系,我们点击yes就好了。
如上图,手动添加缺少的Mapping,其中(\(\d+\))是正则匹配所有的数字,然后点击ok。
1、Pacakge选择当前项目已有的就可以,会自动生成子目录。
2、下边选择All。
3、点击OK生成代码。
生成的代码目录结果如下:
下面一起来看下生成的代码是什么样子的。
因为表名字是t_user,所以名字都是TUser开头的。首先看下Controller。
默认只生成了一个根据ID获取数据的接口。
service层:
实现类:
service层有基础的增删改查功能了。是不是很赞。
下面看下dao层和Mapper.xml文件信息。
package com.example.demo.dao;
import com.example.demo.entity.TUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* (TUser)表数据库访问层
*
* @author makejava
* @since 2020-02-25 23:38:39
*/
public interface TUserDao {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TUser queryById(Long id);
/**
* 查询指定行数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
List<TUser> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);
/**
* 通过实体作为筛选条件查询
*
* @param tUser 实例对象
* @return 对象列表
*/
List<TUser> queryAll(TUser tUser);
/**
* 新增数据
*
* @param tUser 实例对象
* @return 影响行数
*/
int insert(TUser tUser);
/**
* 修改数据
*
* @param tUser 实例对象
* @return 影响行数
*/
int update(TUser tUser);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Long id);
}
TUserDao.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.example.demo.dao.TUserDao">
<resultMap type="com.example.demo.entity.TUser" id="TUserMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="age" column="age" jdbcType="INTEGER"/>
<result property="address" column="address" jdbcType="VARCHAR"/>
<result property="gender" column="gender" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="TUserMap">
select
id, name, age, address, gender
from tyler.t_user
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="TUserMap">
select
id, name, age, address, gender
from tyler.t_user
limit #{offset}, #{limit}
</select>
<!--通过实体作为筛选条件查询-->
<select id="queryAll" resultMap="TUserMap">
select
id, name, age, address, gender
from tyler.t_user
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="age != null">
and age = #{age}
</if>
<if test="address != null and address != ''">
and address = #{address}
</if>
<if test="gender != null">
and gender = #{gender}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tyler.t_user(name, age, address, gender)
values (#{name}, #{age}, #{address}, #{gender})
</insert>
<!--通过主键修改数据-->
<update id="update">
update tyler.t_user
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="age != null">
age = #{age},
</if>
<if test="address != null and address != ''">
address = #{address},
</if>
<if test="gender != null">
gender = #{gender},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from tyler.t_user where id = #{id}
</delete>
</mapper>
实体类:
package com.example.demo.entity;
import java.io.Serializable;
/**
* (TUser)实体类
*
* @author makejava
* @since 2020-02-25 23:38:37
*/
public class TUser implements Serializable {
private static final long serialVersionUID = -25621863885690058L;
private Long id;
private String name;
private Integer age;
private String address;
/**
* 0-male,1-female
*/
private Integer gender;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
}
最后,在application.properties中添加数据源并指定mapper.xml的路径:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=sz12689
spring.datasource.url=jdbc:mysql://localhost:3306/tyler
mybatis.mapper-locations=classpath:/mapper/*.xml
运行一下,看看是否运行正常。
一切OK,大功告成。中午加鸡腿。~\(≧▽≦)/~