环境

​ 使用springboot2,jdk1.8,idea

在pom引入相关依赖

<!--mybatise-generator-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!--在此处指定配置文件位置-->
<configurationFile>src/main/resources/generatorConfig/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!--mybatise-generator-->
<dependencies>
<!--在此处引入所需依赖-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
</dependencies>
</plugin>

注意:

mybatis-generator版本如果和mysql差距過大,可能在生成代码的过程中引起报错

在Resource中配置配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration>
<!--注意这里的targetRuntime="MyBatis3Simple",指定了不生成Example相关内容-->
<context id="MysqlTables" targetRuntime="MyBatis3Simple"> <commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator> <!-- jdbc链接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"
userId="root" password="123456">
</jdbcConnection> <javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver> <!-- 生成PO类的位置 -->
<javaModelGenerator targetPackage="com.huang.po"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator> <!-- mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator> <!-- mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.party.community.template"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator> <!-- 指定要生成的表,主鍵,po类名 -->
<table tableName="Admins" domainObjectName="Admins">
<property name="useActualColumnNames" value="true"/>
<generatedKey column="a_id" sqlStatement="MySql" identity="true"/>
</table> </context>
</generatorConfiguration>

注意:

​ 1.存放生成代码的指定包或者文件夹可以不用提前建好,只要路径没错插件会顺便一起建好

​ 2.根指定路径的不同,部分生成代码可能会需要更改。比如映射配置文件,

​ namespace的生成是根据上面的配置而生成的,如果你在生成代码后还想要移动mapper的話,要记得修改对应路径

生成代码

代开Maven菜单,点击Plugins里的mybatis-generator,即可自动生成

目录结构

生成的代码

java代码

package com.party.community.po;

import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class User {
private String u_idcard; private String u_unsername; private String u_tel; private String u_pwd; private String u_avator; private String u_sex; private Date u_birthday; private String u_history; private String u_remark; public String getU_idcard() {
return u_idcard;
} public void setU_idcard(String u_idcard) {
this.u_idcard = u_idcard == null ? null : u_idcard.trim();
} public String getU_unsername() {
return u_unsername;
} public void setU_unsername(String u_unsername) {
this.u_unsername = u_unsername == null ? null : u_unsername.trim();
} public String getU_tel() {
return u_tel;
} public void setU_tel(String u_tel) {
this.u_tel = u_tel == null ? null : u_tel.trim();
} public String getU_pwd() {
return u_pwd;
} public void setU_pwd(String u_pwd) {
this.u_pwd = u_pwd == null ? null : u_pwd.trim();
} public String getU_avator() {
return u_avator;
} public void setU_avator(String u_avator) {
this.u_avator = u_avator == null ? null : u_avator.trim();
} public String getU_sex() {
return u_sex;
} public void setU_sex(String u_sex) {
this.u_sex = u_sex == null ? null : u_sex.trim();
} public Date getU_birthday() {
return u_birthday;
} public void setU_birthday(Date u_birthday) {
this.u_birthday = u_birthday;
} public String getU_history() {
return u_history;
} public void setU_history(String u_history) {
this.u_history = u_history == null ? null : u_history.trim();
} public String getU_remark() {
return u_remark;
} public void setU_remark(String u_remark) {
this.u_remark = u_remark == null ? null : u_remark.trim();
}
}

生成的po,已写好get和set方法

package com.party.community.mapper;

import com.party.community.po.User;
import java.util.List; public interface UserMapper {
int deleteByPrimaryKey(String u_idcard); int insert(User record); User selectByPrimaryKey(String u_idcard); List<User> selectAll(); int updateByPrimaryKey(User record); User selectByPhone(String phone); }

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.party.community.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="com.party.community.po.User" >
<id column="u_idcard" property="u_idcard" jdbcType="VARCHAR" />
<result column="u_unsername" property="u_unsername" jdbcType="VARCHAR" />
<result column="u_tel" property="u_tel" jdbcType="VARCHAR" />
<result column="u_pwd" property="u_pwd" jdbcType="VARCHAR" />
<result column="u_avator" property="u_avator" jdbcType="VARCHAR" />
<result column="u_sex" property="u_sex" jdbcType="VARCHAR" />
<result column="u_birthday" property="u_birthday" jdbcType="TIMESTAMP" />
<result column="u_history" property="u_history" jdbcType="VARCHAR" />
<result column="u_remark" property="u_remark" jdbcType="VARCHAR" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from user
where u_idcard = #{u_idcard,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.party.community.po.User" >
<selectKey resultType="java.lang.String" keyProperty="u_idcard" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
insert into user (u_unsername, u_tel, u_pwd,
u_avator, u_sex, u_birthday,
u_history, u_remark)
values (#{u_unsername,jdbcType=VARCHAR}, #{u_tel,jdbcType=VARCHAR}, #{u_pwd,jdbcType=VARCHAR},
#{u_avator,jdbcType=VARCHAR}, #{u_sex,jdbcType=VARCHAR}, #{u_birthday,jdbcType=TIMESTAMP},
#{u_history,jdbcType=VARCHAR}, #{u_remark,jdbcType=VARCHAR})
</insert>
<update id="updateByPrimaryKey" parameterType="com.party.community.po.User" >
update user
set u_unsername = #{u_unsername,jdbcType=VARCHAR},
u_tel = #{u_tel,jdbcType=VARCHAR},
u_pwd = #{u_pwd,jdbcType=VARCHAR},
u_avator = #{u_avator,jdbcType=VARCHAR},
u_sex = #{u_sex,jdbcType=VARCHAR},
u_birthday = #{u_birthday,jdbcType=TIMESTAMP},
u_history = #{u_history,jdbcType=VARCHAR},
u_remark = #{u_remark,jdbcType=VARCHAR}
where u_idcard = #{u_idcard,jdbcType=VARCHAR}
</update>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select u_idcard, u_unsername, u_tel, u_pwd, u_avator, u_sex, u_birthday, u_history,
u_remark
from user
where u_idcard = #{u_idcard,jdbcType=VARCHAR}
</select>
<select id="selectAll" resultMap="BaseResultMap" >
select u_idcard, u_unsername, u_tel, u_pwd, u_avator, u_sex, u_birthday, u_history,
u_remark
from user
</select>
<select id="selectByPhone" resultType="User">
select *
from user
where u_tel = #{phone}
</select> </mapper>

生成的mapper和映射文件,已经生成了基本的增删改查和根据主键查找的方法

使用mybatis-generator生成底层的更多相关文章

  1. mybatis Generator生成代码及使用方式

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5889312.html 为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,OR ...

  2. Maven下用MyBatis Generator生成文件

    使用Maven命令用MyBatis Generator生成MyBatis的文件步骤如下: 1.在mop文件内添加plugin <build> <finalName>KenShr ...

  3. MyBatis Generator生成DAO——序列化

    MyBatis Generator生成DAO 的时候,生成的类都是没有序列化的. 还以为要手工加入(開始是手工加入的),今天遇到分页的问题,才发现生成的时候能够加入插件. 既然分页能够有插件.序列化是 ...

  4. 利用org.mybatis.generator生成实体类

    springboot+maven+mybatis+mysql 利用org.mybatis.generator生成实体类 1.添加pom依赖:   2.编写generatorConfig.xml文件 ( ...

  5. MyBatis Generator 生成的example 使用 and or 简单混合查询

    MyBatis Generator 生成的example 使用 and or 简单混合查询 参考博客:https://www.cnblogs.com/kangping/p/6001519.html 简 ...

  6. 【记录】Mybatis Generator生成数据对象Date/TimeStamp 查询时间格式化

    Mybatis Generator是很好的工具帮助我们生成表映射关联代码,最近博主遇到一个问题,找了很久才解决, 就是用Mybatis Generator生成实体类的时候,Date 时间无法格式化输出 ...

  7. MyBatis---使用MyBatis Generator生成Dto、Dao、Mapping

    由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类.Dao接口类甚至Mappi ...

  8. Mybatis Generator生成工具配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  9. 使用MyBatis Generator生成DAO

    虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便. 需要注意的是,虽 ...

  10. Mybatis Generator生成Mybatis Dao接口层*Mapper.xml以及对应实体类

    [前言] 使用Mybatis-Generator自动生成Dao.Model.Mapping相关文件,Mybatis-Generator的作用就是充当了一个代码生成器的角色,使用代码生成器不仅可以简化我 ...

随机推荐

  1. Android App安装包瘦身计划

    Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主 ...

  2. Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题

    在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...

  3. Java网络和代理

    Java网络和代理 1)简介 在当今的网络环境中,特别是企业网络环境中,应用程序开发人员必须像系统管理员一样频繁地处理代理.在某些情况下,应用程序应该使用系统默认设置,在其他情况下,我们希望能够非常严 ...

  4. 勘误:EOS资源抵押退还

    关键字:勘误,delegatebw,undelegatebw,listbw,资源管理,抵押,解抵押,返还资源 EOS中,资源抵押与解抵押是通过一对命令完成的:delegatebw,undelegate ...

  5. .NET读写DBF

    C# 读写DBF分为两种模式,一种为OLEDB驱动,需要安装一个文件“VFPOLEDBSetup.msi”: 一种为Odbc模式,这种几乎上不需要安装Odbc驱动 我这边用的是第一种. /// < ...

  6. 微信小程序中悬浮窗功能的实现(主要探讨和解决在原生组件上的拖动)

    问题场景 所谓悬浮窗就是图中微信图标的按钮,采用fixed定位,可拖动和点击. 这算是一个比较常见的实现场景了. 为什么要用cover-view做悬浮窗?原生组件出来背锅了~ 最初我做悬浮窗用的不是c ...

  7. Web容器启动中执行某个Java类

    1.监听(Listener) <!-- 配置监听 --> <listener> <listener-class>com.xian.jdbc.GetPropertie ...

  8. 激活函数、正向传播、反向传播及softmax分类器,一篇就够了!

    1. 深度学习有哪些应用 图像:图像识别.物体识别.图片美化.图片修复.目标检测. 自然语言处理:机器创作.个性化推荐.文本分类.翻译.自动纠错.情感分析. 数值预测.量化交易 2. 什么是神经网络 ...

  9. spark shuffle写操作三部曲之BypassMergeSortShuffleWriter

    前言 再上一篇文章 spark shuffle的写操作之准备工作 中,主要介绍了 spark shuffle的准备工作,本篇文章主要介绍spark shuffle使用BypassMergeSortSh ...

  10. CSS等分布局方法

    原文链接:http://caibaojian.com/css-equal-layout.html CSS等比例划分,在CSS布局中是比较重要的,下面分享几种常用方法和探讨一下兼容性. 一:浮动布局+百 ...