小言_互联网的博客

自从IDEA配上这个插件开发速度快了N倍

388人阅读  评论(0)

一、前言

由于之前一直在使用Navicat,不得不说这是个很优秀的数据库管理软件,很方便。

很可惜的是,到期了,学生穷呀,不能去支持一下,也懒的找其他版本的。

无意间发现了**本篇文章要说的这个神器,贼好用,已经用了几天了,表示真的很无敌**

二、重量级嘉宾闪亮登场

(一)神秘嘉宾的自我表白

开发Java应用程序,作为明星工具IntelliJ IDEA Ultimate当然是首选,然后进行数据库SQL开发的时候,常常会选择诸如:Navicat, sqlyog, MySQL Workbench 等。

当进行Java数据库编程的时候,会来在两个工具,效率极低,其实这都没有必要的。 IDEA本身就是神器,完全可以在一个工具中同时完成Java编号和SQL开发。本文主要介绍IDEA下,数据库工具(DataBase Tool)的基本使用。

(二)神秘嘉宾的家在哪?

在你刚打开idea的时候就会发现旁边有一个,如下图所示的地方:

解开真面目的时刻:

可以看到可以支持很多种数据库,可以完全满足我的需求,我的,我的,如果是不支持的也没办法了,哈哈其实根据我摸索的,是支持自定义驱动的,小博主不才,才疏学浅,这里面的数据库,我认识的都在里面,不认识的也有

三、婚嫁说明书(基础配置)

为何说是婚嫁说明书,因为我认为我写的详细。

(一)安装相关数据库驱动

左侧找到自己需要的数据库,如果找不到,就点击加号,添加一个新的。

可以根据一下步骤去找到一个自己合适的驱动

可以看到还支持其他版本的,例如我就同时下载了8.x版本的MySql驱动

(二)添加数据库的连接信息

选择一个自己添加好的

这些填写的数据库的账号密码和地址的信息我就不用多解释了吧,相信你既然点开的此文章,肯定是可以看懂的。

在这里,你可以切换不同的驱动,你可以切换不动的驱动的版本

注意雷区:这里我估计卖了一个坑,没填写数据库的名字,一会揭晓

例如切换驱动:

测试是否连接成功

故意输入一个不存在的账号:

结果:

重新修改一下配置信息:

如果不知道数据库名的话,可以查看一下:

重新添加数据库

再看,就可以看到表名字了

(三)查看表中的数据

如果你点击的是表名,则直接显示表的内容:

如果你点击的是某个字段,则会自动定位到该表中的这个字段上:

对于字段太多的表来说,真的是美滋滋呀,

太好了,干得漂亮,我可喜欢这个了

(四)命令行中操作mysql

这个地方也很美,真的

可以自动保存你写的sql,一点也不用你担心会丢失

哈哈,真好,我也是偶尔发现的

也可以new一个新的

(五)如何在这里可视化创建一个新表

注意这里说的是可视化的操作,完全可以自己命令行哦

可自定义表名,还自动同步可视化操作的sql代码,美滋滋啊

这也太方便了吧,具体什么意思,相信你都明白,这里就说这些,自己摸索吧,很神奇

(六)如何删除一个表

直接看图

(七)如何删除一个字段

直接看图,简单明了

(八)如何修改表的结构等

1、右击表,然后:

是不是很少爽

四、与mybatis.generator一起使用更快哉

这个也是我意外发现的,因为我在做项目的时候,使用了mybatis.generator,这个就是可以自动生成,实体类、dao层、service层、controller层、xml文件

(一)pom配置

pom中的配置文件如下:

这是我自动生成的时候配置的,关于自动生成的具体的配置我就不说了,网上也有很多。如果有需要的话,可以在这个文章下留言,我也可以补上一篇文章。

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>

                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.41</version>
                    </dependency>
                </dependencies>

                <executions>
                    <execution>
                        <id>mybatis generator</id>
                        <phase>package</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!-- 允许移动生成文件-->
                    <verbose>true</verbose>
                    <!-- 允许自动覆盖文件-->
                    <overwrite>false</overwrite>

                    <configurationFile>
                        src/main/resources/generatorConfig.xml
                    </configurationFile>
                </configuration>

            </plugin>
        </plugins>
    </build>

(二)生层后目录结构

自动生层之后就会下面这样:

(三)插件配置

当然了的靓仔还是今天的主角

右击选择mybatis-generator

补充自己需求的信息:

(四)最终结果

神奇的发生了:

1、生成的实体类

package cn.agriculture;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * shipping_address
 * @author 
 */
@Data
public class ShippingAddress extends ShippingAddressKey implements Serializable {
    private String userName;

    private String mobilePhone;

    private Integer province;

    private Integer city;

    private Integer county;

    private String street;

    private String completeAddress;

    private String remarks;

    private Date createDate;

    private static final long serialVersionUID = 1L;
}

2、生成的dao层

package cn.agriculture;

import cn.agriculture.ShippingAddress;
import cn.agriculture.ShippingAddressKey;

public interface ShippingAddressDao {
    int deleteByPrimaryKey(ShippingAddressKey key);

    int insert(ShippingAddress record);

    int insertSelective(ShippingAddress record);

    ShippingAddress selectByPrimaryKey(ShippingAddressKey key);

    int updateByPrimaryKeySelective(ShippingAddress record);

    int updateByPrimaryKey(ShippingAddress record);
}

3、生成的主键、外键类

package cn.agriculture;

import java.io.Serializable;
import lombok.Data;

/**
 * shipping_address
 * @author 
 */
@Data
public class ShippingAddressKey implements Serializable {
    private Integer shippingAddressId;

    private Integer userId;

    private static final long serialVersionUID = 1L;
}

4、生成的mapper文件

<?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="cn.agriculture.ShippingAddressDao">
  <resultMap id="BaseResultMap" type="cn.agriculture.ShippingAddress">
    <id column="SHIPPING_ADDRESS_ID" jdbcType="INTEGER" property="shippingAddressId" />
    <id column="USER_ID" jdbcType="INTEGER" property="userId" />
    <result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
    <result column="MOBILE_PHONE" jdbcType="VARCHAR" property="mobilePhone" />
    <result column="PROVINCE" jdbcType="INTEGER" property="province" />
    <result column="CITY" jdbcType="INTEGER" property="city" />
    <result column="COUNTY" jdbcType="INTEGER" property="county" />
    <result column="STREET" jdbcType="VARCHAR" property="street" />
    <result column="COMPLETE_ADDRESS" jdbcType="VARCHAR" property="completeAddress" />
    <result column="REMARKS" jdbcType="VARCHAR" property="remarks" />
    <result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
  </resultMap>
  <sql id="Base_Column_List">
    SHIPPING_ADDRESS_ID, USER_ID, USER_NAME, MOBILE_PHONE, PROVINCE, CITY, COUNTY, STREET, 
    COMPLETE_ADDRESS, REMARKS, CREATE_DATE
  </sql>
  <select id="selectByPrimaryKey" parameterType="cn.agriculture.ShippingAddressKey" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from shipping_address
    where SHIPPING_ADDRESS_ID = #{shippingAddressId,jdbcType=INTEGER}
      and USER_ID = #{userId,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="cn.agriculture.ShippingAddressKey">
    delete from shipping_address
    where SHIPPING_ADDRESS_ID = #{shippingAddressId,jdbcType=INTEGER}
      and USER_ID = #{userId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" keyColumn="SHIPPING_ADDRESS_ID" keyProperty="shippingAddressId" parameterType="cn.agriculture.ShippingAddress" useGeneratedKeys="true">
    insert into shipping_address (USER_ID, USER_NAME, MOBILE_PHONE, 
      PROVINCE, CITY, COUNTY, 
      STREET, COMPLETE_ADDRESS, REMARKS, 
      CREATE_DATE)
    values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{mobilePhone,jdbcType=VARCHAR}, 
      #{province,jdbcType=INTEGER}, #{city,jdbcType=INTEGER}, #{county,jdbcType=INTEGER}, 
      #{street,jdbcType=VARCHAR}, #{completeAddress,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, 
      #{createDate,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" keyColumn="SHIPPING_ADDRESS_ID" keyProperty="shippingAddressId" parameterType="cn.agriculture.ShippingAddress" useGeneratedKeys="true">
    insert into shipping_address
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="userId != null">
        USER_ID,
      </if>
      <if test="userName != null">
        USER_NAME,
      </if>
      <if test="mobilePhone != null">
        MOBILE_PHONE,
      </if>
      <if test="province != null">
        PROVINCE,
      </if>
      <if test="city != null">
        CITY,
      </if>
      <if test="county != null">
        COUNTY,
      </if>
      <if test="street != null">
        STREET,
      </if>
      <if test="completeAddress != null">
        COMPLETE_ADDRESS,
      </if>
      <if test="remarks != null">
        REMARKS,
      </if>
      <if test="createDate != null">
        CREATE_DATE,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="userId != null">
        #{userId,jdbcType=INTEGER},
      </if>
      <if test="userName != null">
        #{userName,jdbcType=VARCHAR},
      </if>
      <if test="mobilePhone != null">
        #{mobilePhone,jdbcType=VARCHAR},
      </if>
      <if test="province != null">
        #{province,jdbcType=INTEGER},
      </if>
      <if test="city != null">
        #{city,jdbcType=INTEGER},
      </if>
      <if test="county != null">
        #{county,jdbcType=INTEGER},
      </if>
      <if test="street != null">
        #{street,jdbcType=VARCHAR},
      </if>
      <if test="completeAddress != null">
        #{completeAddress,jdbcType=VARCHAR},
      </if>
      <if test="remarks != null">
        #{remarks,jdbcType=VARCHAR},
      </if>
      <if test="createDate != null">
        #{createDate,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="cn.agriculture.ShippingAddress">
    update shipping_address
    <set>
      <if test="userName != null">
        USER_NAME = #{userName,jdbcType=VARCHAR},
      </if>
      <if test="mobilePhone != null">
        MOBILE_PHONE = #{mobilePhone,jdbcType=VARCHAR},
      </if>
      <if test="province != null">
        PROVINCE = #{province,jdbcType=INTEGER},
      </if>
      <if test="city != null">
        CITY = #{city,jdbcType=INTEGER},
      </if>
      <if test="county != null">
        COUNTY = #{county,jdbcType=INTEGER},
      </if>
      <if test="street != null">
        STREET = #{street,jdbcType=VARCHAR},
      </if>
      <if test="completeAddress != null">
        COMPLETE_ADDRESS = #{completeAddress,jdbcType=VARCHAR},
      </if>
      <if test="remarks != null">
        REMARKS = #{remarks,jdbcType=VARCHAR},
      </if>
      <if test="createDate != null">
        CREATE_DATE = #{createDate,jdbcType=TIMESTAMP},
      </if>
    </set>
    where SHIPPING_ADDRESS_ID = #{shippingAddressId,jdbcType=INTEGER}
      and USER_ID = #{userId,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="cn.agriculture.ShippingAddress">
    update shipping_address
    set USER_NAME = #{userName,jdbcType=VARCHAR},
      MOBILE_PHONE = #{mobilePhone,jdbcType=VARCHAR},
      PROVINCE = #{province,jdbcType=INTEGER},
      CITY = #{city,jdbcType=INTEGER},
      COUNTY = #{county,jdbcType=INTEGER},
      STREET = #{street,jdbcType=VARCHAR},
      COMPLETE_ADDRESS = #{completeAddress,jdbcType=VARCHAR},
      REMARKS = #{remarks,jdbcType=VARCHAR},
      CREATE_DATE = #{createDate,jdbcType=TIMESTAMP}
    where SHIPPING_ADDRESS_ID = #{shippingAddressId,jdbcType=INTEGER}
      and USER_ID = #{userId,jdbcType=INTEGER}
  </update>
</mapper>

五、与IDEA结合使用

看到这个图就很爽,再也不用去切换到其他的数据库管理工具了。
一个界面就搞定了,美哉美哉,哈哈哈

提示也是很友好

开发速度能不快吗???

如果对你有帮助,可以分享给你身边的朋友。或者给俺点个大大的赞和大大的评论,点赞和评论就是给我最大的支持,感谢。
水平有限,难免会有疏漏或者书写不合理的地方,欢迎交流讨论。
作者:TrueDei
作者唯一博客CSDN:https://truedei.blog.csdn.net/
转载说明:如需转载请注明原地址和作者名。

如果喜欢我的文章,还没看够可以关注我,我会用心写好每一篇文章。

Java小白修炼手册


转载:https://blog.csdn.net/qq_17623363/article/details/106392752
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场