遇见一款很受用的一个工具,推荐给各位程序员_一个程序员的成长1的博客-程序员秘密

技术标签: 程序员  Java  前端  工具  后端  

最近我在做一个电商项目,在设计数据库表的时候遇到过这样一个场景,商品表中的字段特别多,设置完后产品经理又说改一下,然后改了一下,但是我代码中的实体却有点问题,一直报字段不对应,这里大家就暂且不说什么我为什么不使用逆向工程之类的了。

就因为这个问题30多个字段我改了好几次,确实挺费事的,在上周我发现一个很好用的工具,它不仅可以将我们的数据表直接转换为实体类,还可以生成DAO,甚至还可以把我们的json格式的数据直接转换实体类,这里不多说了,给大家简单演示一下这些功能。

数据库表转JavaBean:
在这里插入图片描述

我们直接将我们的表结构字段赋值进去点击开始生成,那么它就会给我们生成下面的这些数据,我们先来看下生成的JavaBean

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
*  用户信息
* @author 大狼狗 2018-10-28
*/
public class Userinfo implements Serializable {
   private static final long serialVersionUID = 1L;

   /**
   * 用户id
   */
   private int userId;

   /**
   * 用户名
   */
   private String username;

   /**
   * 创建时间
   */
   private Date addtime;


   public int getUserId() {
       return userId;
   }

   public void setUserId(int userId) {
       this.userId = userId;
   }

   public String getUsername() {
       return username;
   }

   public void setUsername(String username) {
       this.username = username;
   }

   public Date getAddtime() {
       return addtime;
   }

   public void setAddtime(Date addtime) {
       this.addtime = addtime;
   }

}

我们再来看下它给我们生成的其他东西:
在这里插入图片描述

这就是给我们生成的一些基本的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.softdev.system.dao.UserinfoDao">

   <resultMap id="Userinfo" type="com.softdev.system.entity.Userinfo" >
       <result column="user_id" property="userId" />
       <result column="username" property="username" />
       <result column="addtime" property="addtime" />
   </resultMap>

   <sql id="Base_Column_List">
       `user_id`,
       `username`,
       `addtime`
   </sql>

   <insert id="insert" parameterType="java.util.Map" >
       INSERT INTO userinfo (
           `user_id`,
           `username`,
           `addtime`
       )
       VALUES(
           #{userinfo.userId},
           #{userinfo.username},
           NOW()
       )
   </insert>

   <delete id="delete" parameterType="java.util.Map" >
       DELETE FROM userinfo
       WHERE `id` = #{id}
   </delete>

   <update id="update" parameterType="java.util.Map" >
       UPDATE userinfo
       SET
           user_id = #{userinfo.userId},
           username = #{userinfo.username},
           addtime = #{userinfo.addtime},
           UpdateTime = NOW()
       WHERE `id` = #{userinfo.id}
   </update>


   <select id="load" parameterType="java.util.Map" resultMap="Userinfo">
       SELECT <include refid="Base_Column_List" />
       FROM userinfo
       WHERE `id` = #{id}
   </select>

   <select id="pageList" parameterType="java.util.Map" resultMap="Userinfo">
       SELECT <include refid="Base_Column_List" />
       FROM userinfo
       LIMIT #{offset}, #{pagesize}
   </select>

   <select id="pageListCount" parameterType="java.util.Map" resultType="int">
       SELECT count(1)
       FROM userinfo
   </select>

</mapper>

我们可以通过下面看到,从JavaBean到Controller这个工具都可以帮我们直接生成,是不是感觉好用很多啊!
在这里插入图片描述

还有一个我感觉比较好用的功能,我上一个项目做的是公安相关的,里面要和好几个平台进行对接,有时候数据结构很复杂,你要好好分析他们返回的json然后定义对应的实体类,这个工具也可以根据json帮助我们生成对应的JavaBean,还有很多好用的功能我这里就不一一列举了。

我这里直接把链接放在这里,有兴趣的朋友可以看看。

网站地址

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ygcxydcz/article/details/83478016

智能推荐

java Thread和runnable的区别_程序员面试那点事儿的博客-程序员秘密

Java中线程的创建有两种方式: 1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中2.  通过实现Runnable接口,实例化Thread类     在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程。当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下...

文本attention矩阵可视化_attention 可视化_街道口扛把子的博客-程序员秘密

在机器阅读理解的论文中,经常可以看到对“文章-问题”可视化的二维热力图,例如下图。在看实验结果的时候用这种图可以直观的看到attention的效果怎么样。比如下图:于是从github中找到了一个例子,进行了简单的实验。import numpy as npimport matplotlib.pyplot as pltimport pandas as pdimport matplotlib...

uclinux内核中CPLB表项的生成_adsp cplb_dirty_嵌云阁主的博客-程序员秘密

快乐虾http://blog.csdn.net/lights_joy/[email protected] 本文适用于ADSP-BF561优视BF561EVB开发板uclinux-2008r1.5-rc3 (smp patch, 移植到vdsp5)Visual DSP++ 5.0(update 5)

浅谈C++11中的move和forward_forward move_guotianqing的博客-程序员秘密

含义move和forward都是C++11中引入的,它们是移动语义和完美转发实现的基石。move:不能移动任何东西,它唯一的功能是将一个左值强制转化为右值引用,继而可以通过右值引用使用该值,以用于移动语义从实现上讲,std::move基本等同于一个类型转换:static_cast&lt;T&amp;&amp;&gt;(lvalue)forward: 不转发任何东西,也是执行左值到右值的强制类型转换,只是仅在特定条件满足时才执行该转换典型使用场景:某个函数模板取用了万能引用类型为形参,随

随便推点

倍福PLC模拟量输入模块的使用方法_倍福plc接线_光怪陆离的节日的博客-程序员秘密

模拟量输入模块——模拟电流输入:EL3052(4-20mA)大部分模拟量模块,翻阅手册,可以发现基本都是-32768~32767。如果要在PLC中进行转换的,可以自行写一个比例转换,程序如下模拟量规格化算法使用 TwinCAT NC 通过模拟量控制伺服驱动器或者变频器,需要配备的端子模块包括:模拟量输出:比如±10V 电压输出模块, 用于控制电机速度;编码器输入:比如 5V 增量式编码器输入模块, 用于反馈电机位置;数字量输入: 用于采集状态信号,比如 Ready, Error, 正负限位等;数字量

springMVC produces和ajax accept参数的配合使用_享受编程_的博客-程序员秘密

我的风格就是  列出例子,不过多的讲理论。一切从一个普通的前端ajax请求jspringMVC后端的例子开始,前端jQuery ajax 请求:[javascript] view plain copy $.ajax({                  url: getAbsoluteUrl('score/findScor

第十周M$pszi$y是嘛意思(二)_舒绾的博客-程序员秘密

问题及代码: /**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:李莉*完成日期:2014年11月02日*版本号:v1.0**问题描述:输入特定字符串,看解密后的可能的意思;*程序输入:特定字符串*程序输出:输出特定字符串的实际意思:*/#inc

ADSL拨号代理服务器实现HTTP代理的搭建过程_TesterT的博客-程序员秘密

最近做一个项目时,发现购mai的厂商的代理似乎被识别了,总是拿不到正确的响应。于是尝试自己搭建了一个ADSL代理实现HTTP代理。ADSL拨号代理:电信宽带每一次拨号后会更换IP,利用这一点在IP更换后将新的IP存入到代理池中。代理的搭建过程分为以下几步:(1)购买代理服务器,笔者选择了淘b_a_o上销Liang最高的一家;(2)远程客fu给的代理服务器,拨号成功后,安装必要的软件...

硬件设计39之什么是McBSP?_wangdapao12138的博客-程序员秘密

1.McBSPMcBSP是TI公司生产的数字信号处理芯片的多通道缓冲串行口。https://wenku.baidu.com/view/73431ea6f242336c1fb95e45.html。2.McBSP的硬件架构

发布S5PV210 之Sate210 的 SDMMC/inand 启动wince 系统的bootloader_gooogleman的博客-程序员秘密

这几周我都在升级Sate210 的 SDMMC/inand 启动wince 系统的bootloader,其实是完全替代了,以前三星提供的dragin 的烧写方式,O(∩_∩)O~其实我是借助了u-boot的 大风,用u-boot 启动了Sate210 的wince 系统,功能如下:1、验证支持SDMMC/Inand启动Sate210 wince 系统,其实市面上的512M byte的 S5

推荐文章

热门文章

相关标签