在传统的项目中,数据库写好以后,需要手动写对应的实体类,DAO层接口,Service接口,以及数据库的映射文件,数据库的表不多的话还好说,如果动则几十张表,上百张表,每个表都得写对应的文件,就显得非常的繁琐。
EasyCode可以自动根据表生成:entity,dao,service,serviceImpl,controller等。这里以SpringBoo环境演示。
找到设置里面的插件选项,搜索EasyCode安装并重启就可以。
新建项目,通过初始化向导可快速建立一个SpringBoot项目。
选择jar包版本和自定义名称。
选择你所需要的依赖。
这里仅选择了springWeb选项,生成controller的包需要用到,这里提供的是基本的依赖,mybatis的依赖需要再手动导入。
再点击下一步,就是配置工作目录,配置完成后,一个springBoot项目完成了。
导入连接数据库和mybatis的依赖。
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>3.5.7version>
dependency>
打开右侧数据库的按钮,选择新建一个数据源,找到mysql选项。
配置数据库的用户名和密码以及连接的数据库名称,点击确定。
选择你要生成的包。
成功后的结果,可以看到自动为我们生成了包。
比如进去entity里面是这个样子的,属性和get和set方法都有了。
再看映射文件里面,生成了基本的增删改查方法,并且封装了resultMap,还有条件查询的动态sql语句,我爱死你了。
<mapper namespace="com.dao.UserDao">
<resultMap type="com.entity.User" id="UserMap">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="age" column="age" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
resultMap>
<select id="queryById" resultMap="UserMap">
select id,
name,
age,
create_time,
update_time
from mybatis1.user
where id = #{id}
select>
<select id="queryAllByLimit" resultMap="UserMap">
select id,
name,
age,
create_time,
update_time
from mybatis1.user limit #{offset}, #{limit}
select>
<select id="queryAll" resultMap="UserMap">
select
id, name, age, create_time, update_time
from mybatis1.user
<where>
<if test="id != null and id != ''">
and id = #{id}
if>
<if test="name != null and name != ''">
and name = #{name}
if>
<if test="age != null">
and age = #{age}
if>
<if test="createTime != null">
and create_time = #{createTime}
if>
<if test="updateTime != null">
and update_time = #{updateTime}
if>
where>
select>
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into mybatis1.user(name, age, create_time, update_time)
values (#{name}, #{age}, #{createTime}, #{updateTime})
insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into mybatis1.user(name, age, create_time, update_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.name}, #{entity.age}, #{entity.createTime}, #{entity.updateTime})
foreach>
insert>
<insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
insert into mybatis1.user(name, age, create_time, update_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.name}, #{entity.age}, #{entity.createTime}, #{entity.updateTime})
foreach>
on duplicate key update
name = values(name) , age = values(age) , create_time = values(create_time) , update_time = values(update_time)
insert>
<update id="update">
update mybatis1.user
<set>
<if test="name != null and name != ''">
name = #{name},
if>
<if test="age != null">
age = #{age},
if>
<if test="createTime != null">
create_time = #{createTime},
if>
<if test="updateTime != null">
update_time = #{updateTime},
if>
set>
where id = #{id}
update>
<delete id="deleteById">
delete
from mybatis1.user
where id = #{id}
delete>
mapper>
再看下controller里,会自动注入service层。
EasyCode大大的简化我们的开放,解放程序员的双手,简直神器。