当前位置: 首页 > news >正文

2017政府网站设计方案/百度网址大全旧版本

2017政府网站设计方案,百度网址大全旧版本,合肥网站建设哪里有,如何做网站设计2019独角兽企业重金招聘Python工程师标准>>> mybatis-dsc-generator 还在为写swagger而烦恼吗?还在为忘记写注释而烦恼吗?还在为写简单的api接口而烦恼吗?mybatis-dsc-generator完美集成lombok,swagger的代码生成工具&…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

mybatis-dsc-generator

Fork me on Gitee

还在为写swagger而烦恼吗?还在为忘记写注释而烦恼吗?还在为写简单的api接口而烦恼吗?mybatis-dsc-generator完美集成lombok,swagger的代码生成工具,让你不再为繁琐的注释和简单的接口实现而烦恼:entity集成,格式校验,swagger; dao自动加@ mapper,service自动注释和依赖; 控制器实现单表的增副改查,并实现swaggers的api文档。

源码地址

  • GitHub:https://github.com/flying-cattle/mybatis-dsc-generator
  • 码云:https://gitee.com/flying-cattle/mybatis-dsc-generator

MAVEN地址

2.1.0版本是未集成Mybatis-plus版本——源码分支master

<dependency><groupId>com.github.flying-cattle</groupId><artifactId>mybatis-dsc-generator</artifactId><version>2.1.0.RELEASE</version>
</dependency>

3.0.0版本是集成了Mybatis-plus版本——源码分支mybatisPlus

<dependency><groupId>com.github.flying-cattle</groupId><artifactId>mybatis-dsc-generator</artifactId><version>3.0.0.RELEASE</version>
</dependency>

数据表结构样式

CREATE TABLE `user` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',`login_name` varchar(40) DEFAULT NULL COMMENT '登录名',`password` varchar(100) NOT NULL COMMENT '秘密',`nickname` varchar(50) NOT NULL COMMENT '昵称',`type` int(10) unsigned DEFAULT NULL COMMENT '类型',`state` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '状态:-1失败,0等待,1成功',`note` varchar(255) DEFAULT NULL COMMENT '备注',`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',`update_uid` bigint(20) DEFAULT '0' COMMENT '修改人用户ID',`login_ip` varchar(50) DEFAULT NULL COMMENT '登录IP地址',`login_addr` varchar(100) DEFAULT NULL COMMENT '登录地址',PRIMARY KEY (`id`),UNIQUE KEY `login_name` (`login_name`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

要求必须有表注释,要求必须有主键为id,所有字段必须有注释(便于生成java注释swagger等)。

生成的实体类

生成方法参考源码中的:https://gitee.com/flying-cattle/mybatis-dsc-generator/blob/master/src/main/java/com/github/mybatis/fl/test/TestMain.java

执行结果

实体类

/*** @filename:Order 2018年7月5日* @project deal-center  V1.0* Copyright(c) 2018 BianP Co. Ltd. * All right reserved. */
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户实体类</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         	Author          Version          Description*---------------------------------------------------------------** 2019年4月9日      BianPeng    V1.0         initialize*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class User extends Model<User> {private static final long serialVersionUID = 1L;@TableId(value = "id", type = IdType.AUTO)@ApiModelProperty(name = "id" , value = "用户ID")private Long id;@ApiModelProperty(name = "loginName" , value = "登录账户")private String loginName;@ApiModelProperty(name = "password" , value = "登录密码")private String password;@ApiModelProperty(name = "nickname" , value = "用户昵称")private String nickname;@ApiModelProperty(name = "type" , value = "用户类型")private Integer type;@ApiModelProperty(name = "state" , value = "用户状态")private Integer state;@ApiModelProperty(name = "note" , value = "备注")private String note;@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")@ApiModelProperty(name = "createTime" , value = "用户创建时间")private Date createTime;@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")@ApiModelProperty(name = "updateTime" , value = "修改时间")private Date updateTime;@ApiModelProperty(name = "updateUid" , value = "修改人用户ID")private Long updateUid;@ApiModelProperty(name = "loginIp" , value = "登录IP")private String loginIp;@ApiModelProperty(name = "loginIp" , value = "登录地址")private String loginAddr;@Overrideprotected Serializable pkVal() {return this.id;}
}

DAO

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import com.xin.usercenter.entity.User;/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户数据访问层</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         	Author          Version          Description*---------------------------------------------------------------** 2019年4月9日      BianPeng         V1.0            initialize*/
@Mapper
public interface UserDao extends BaseMapper<User> {}

生成的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.xin.usercenter.dao.UserDao"><resultMap id="BaseResultMap" type="com.xin.usercenter.entity.User"><id column="id" property="id" /><id column="login_name" property="loginName" /><id column="password" property="password" /><id column="nickname" property="nickname" /><id column="type" property="type" /><id column="state" property="state" /><id column="note" property="note" /><id column="create_time" property="createTime" /><id column="update_time" property="updateTime" /><id column="update_uid" property="updateUid" /><id column="login_ip" property="loginIp" /><id column="login_addr" property="loginAddr" /></resultMap><sql id="Base_Column_List">id, login_name, password, nickname, type, state, note, create_time, update_time, update_uid, login_ip, login_addr</sql>
</mapper>

生成的SERVICE

import com.xin.usercenter.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户服务层</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         	Author          Version        Description*------------------------------------------------------------** 2019年4月9日      BianPeng        V1.0           initialize*/
public interface UserService extends IService<User> {}

生成的SERVICE_IMPL

import com.xin.usercenter.entity.User;
import com.xin.usercenter.dao.UserDao;
import com.xin.usercenter.service.UserService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户服务实现层</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         	Author          Version        Description*------------------------------------------------------------** 2019年4月9日      BianPeng        V1.0           initialize*/
@Service
public class UserServiceImpl  extends ServiceImpl<UserDao, User> implements UserService  {}

生成的CONTROLLER

import com.item.util.JsonResult;
import com.xin.usercenter.entity.User;
import com.xin.usercenter.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户API接口层</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         	Author          Version          Description*---------------------------------------------------------------** 2019年4月9日      BianPeng    V1.0           initialize*/
@Api(description = "用户",value="用户" )
@RestController
@RequestMapping("/user")
public class UserController {Logger logger = LoggerFactory.getLogger(this.getClass());@Autowiredpublic UserService userServiceImpl;/*** @explain 查询用户对象  <swagger GET请求>* @param   对象参数:id* @return  user* @author  BianPeng* @time    2019年4月9日*/@GetMapping("/getUserById/{id}")@ApiOperation(value = "获取用户信息", notes = "获取用户信息[user],作者:BianPeng")@ApiImplicitParam(paramType="path", name = "id", value = "用户id", required = true, dataType = "Long")public JsonResult<User> getUserById(@PathVariable("id")Long id){JsonResult<User> result=new JsonResult<User>();try {User user=userServiceImpl.getById(id);if (user!=null) {result.setType("success");result.setMessage("成功");result.setData(user);} else {logger.error("获取用户失败ID:"+id);result.setType("fail");result.setMessage("你获取的用户不存在");}} catch (Exception e) {logger.error("获取用户执行异常:"+e.getMessage());result=new JsonResult<User>(e);}return result;}/*** @explain 添加或者更新用户对象* @param   对象参数:user* @return  int* @author  BianPeng* @time    2019年4月9日*/@PostMapping("/insertSelective")@ApiOperation(value = "添加用户", notes = "添加用户[user],作者:BianPeng")public JsonResult<User> insertSelective(User user){JsonResult<User> result=new JsonResult<User>();try {boolean rg=userServiceImpl.saveOrUpdate(user);if (rg) {result.setType("success");result.setMessage("成功");result.setData(user);} else {logger.error("添加用户执行失败:"+user.toString());result.setType("fail");result.setMessage("执行失败,请稍后重试");}} catch (Exception e) {logger.error("添加用户执行异常:"+e.getMessage());result=new JsonResult<User>(e);}return result;}/*** @explain 删除用户对象* @param   对象参数:id* @return  int* @author  BianPeng* @time    2019年4月9日*/@PostMapping("/deleteByPrimaryKey")@ApiOperation(value = "删除用户", notes = "删除用户,作者:BianPeng")@ApiImplicitParam(paramType="query", name = "id", value = "用户id", required = true, dataType = "Long")public JsonResult<Object> deleteByPrimaryKey(Long id){JsonResult<Object> result=new JsonResult<Object>();try {boolean reg=userServiceImpl.removeById(id);if (reg) {result.setType("success");result.setMessage("成功");result.setData(id);} else {logger.error("删除用户失败ID:"+id);result.setType("fail");result.setMessage("执行错误,请稍后重试");}} catch (Exception e) {logger.error("删除用户执行异常:"+e.getMessage());result=new JsonResult<Object>(e);}return result;}/*** @explain 分页条件查询用户   * @param   对象参数:AppPage<User>* @return  PageInfo<User>* @author  BianPeng* @time    2019年4月9日*/@GetMapping("/getUserPages")@ApiOperation(value = "分页查询", notes = "分页查询返回对象[IPage<User>],作者:边鹏")@ApiImplicitParams({@ApiImplicitParam(paramType="query", name = "pageNum", value = "当前页", required = true, dataType = "int"),@ApiImplicitParam(paramType="query", name = "pageSize", value = "页行数", required = true, dataType = "int")})public JsonResult<Object> getUserPages(Integer pageNum,Integer pageSize){JsonResult<Object> result=new JsonResult<Object>();Page<User> page=new Page<User>(pageNum,pageSize);QueryWrapper<User> queryWrapper =new QueryWrapper<User>();//分页数据try {//List<User> list=userServiceImpl.list(queryWrapper); IPage<User> pageInfo=userServiceImpl.page(page, queryWrapper);result.setType("success");result.setMessage("成功");result.setData(pageInfo);} catch (Exception e) {logger.error("分页查询用户执行异常:"+e.getMessage());result=new JsonResult<Object>(e);}return result;}
}

生成完毕,控制器中的JsonResult

import java.io.Serializable;
import java.net.ConnectException;
import java.sql.SQLException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**   * Copyright: Copyright (c) 2019 * * <p>说明: 用户服务层</P>* @version: V1.0* @author: BianPeng* * Modification History:* Date         Author         Version         Description*---------------------------------------------------------** 2019/4/9 	flying-cattle  V1.0            initialize*/
public class JsonResult<T> implements Serializable{Logger logger = LoggerFactory.getLogger(this.getClass());private static final long serialVersionUID = 1071681926787951549L;/*** <p>返回状态</p>*/private Boolean isTrue=true;/***<p> 状态码</p>*/private String code;/*** <p>业务码</p>*/private String type;/***<p> 状态说明</p>*/private String message;/*** <p>返回数据</p>*/private T data;public Boolean getTrue() {return isTrue;}public void setTrue(Boolean aTrue) {isTrue = aTrue;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getData() {return data;}public void setData(T data) {this.data = data;}public String getType() {return type;}public void setType(String type) {this.type = type;}/*** <p>返回成功</p>* @param type 业务码* @param message 错误说明* @param data 数据*/public JsonResult(String type, String message, T data) {this.isTrue=true;this.code ="0000";this.type=type;this.message = message;this.data=data;}public JsonResult() {this.isTrue=true;this.code ="0000";}public JsonResult(Throwable throwable) {logger.error(throwable+"tt");this.isTrue=false;if(throwable instanceof NullPointerException){this.code= "1001";this.message="空指针:"+throwable;}else if(throwable instanceof ClassCastException ){this.code= "1002";this.message="类型强制转换异常:"+throwable;}else if(throwable instanceof ConnectException){this.code= "1003";this.message="链接失败:"+throwable;}else if(throwable instanceof IllegalArgumentException ){this.code= "1004";this.message="传递非法参数异常:"+throwable;}else if(throwable instanceof NumberFormatException){this.code= "1005";this.message="数字格式异常:"+throwable;}else if(throwable instanceof IndexOutOfBoundsException){this.code= "1006";this.message="下标越界异常:"+throwable;}else if(throwable instanceof SecurityException){this.code= "1007";this.message="安全异常:"+throwable;}else if(throwable instanceof SQLException){this.code= "1008";this.message="数据库异常:"+throwable;}else if(throwable instanceof ArithmeticException){this.code= "1009";this.message="算术运算异常:"+throwable;}else if(throwable instanceof RuntimeException){this.code= "1010";this.message="运行时异常:"+throwable;}else if(throwable instanceof Exception){ logger.error("未知异常:"+throwable);this.code= "9999";this.message="未知异常"+throwable;}}
}

如果你生成的分页的方法不能分页:根据官方提升,记得在启动类中加入

@Bean
public PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();
}

转载于:https://my.oschina.net/bianxin/blog/3035352

http://www.lbrq.cn/news/1338949.html

相关文章:

  • 哪个网站反盗版做的最好/百度下载2021新版安装
  • 在线购物网站建设流程图/电商中seo是什么意思
  • 企业微信邮箱怎么开通注册/网站优化seo教程
  • 哪些网站是用php开发的/广州网站优化
  • 热烈祝贺公司网站上线/关键词排名是由什么决定的
  • wordpress ajax评论/长沙seo优化推广公司
  • 财务公司管理系统/惠州seo排名
  • 什么网站可以做拍a发布会/色盲和色弱的区别
  • 网站建设 网址导航/全网关键词云查询
  • 海口网站建设公司/做做网站
  • 专门做进口产品的网站6/百度引擎搜索
  • 做衬衣的网站/企业网站seo多少钱
  • 景安网站上传完还要怎么做/长沙企业关键词优化哪家好
  • 兰州网站建设公司/视频网站搭建
  • 网站建设时间安排/seo搜索引擎优化工资多少钱
  • 属于o2o的电商平台有哪些/排名优化方法
  • css怎么做网站菜单/网站seo啥意思
  • 网站公司怎么做运营/漳州seo建站
  • 门户网站建设要点/网站推广的方式有哪些?
  • 中企动力大连分公司/百度seo优化多少钱
  • javaee做网站/企业培训考试系统
  • 网站制作 广州/北京百度seo
  • 合肥外贸网站建设公司价格/小白如何学电商运营
  • 苏州网站建设logo/seo实战培训
  • 大厂网站建设/搜狐新闻手机网
  • 装修网站设计平台/上海seo优化bwyseo
  • 移动网站开发培训/合肥seo按天收费
  • 滨州哪里有做网站的/永久免费域名申请
  • 医疗类网站哪家做的好/常用的网络营销策略有哪些
  • 哪个网站做美食自媒体更好/微信营销成功案例8个
  • 【linux】企业级WEB应用服务器tomcat
  • 打破内网枷锁!TRAE SOLO + cpolar 让AI开发告别“孤岛困境”
  • QML开发:动画元素
  • [4.2-2] NCCL新版本的register如何实现的?
  • 【测试报告】SoundWave(Java+Selenium+Jmeter自动化测试)
  • Vue.js设计于实现 - 概览(二)