springmvc学习笔记--mybatis--使用插件自动生成实体和mapper

由于表对象在开发过程中会增删字段,有时候需要重新生成实体和对应的mapper,这时候可以通过mybatis的插件的生成。

优点是快速简洁,缺点同样很明显:覆盖。因此,通常是在第一次搭建框架的时候使用,因为开发过程中实体的字段会被修改,如添加注解validator、format等。所以架构师学会用包装对象?包装对象怎么实现在原始表的属性的控制呢,比如日期格式化,比如校验。

1.首先,在pom中依赖插件:

 1  <!-- Mybatis generator代码生成插件 配置 -->
 2             <plugin>
 3                 <groupId>org.mybatis.generator</groupId>
 4                 <artifactId>mybatis-generator-maven-plugin</artifactId>
 5                 <version>${plugin.mybatis.generator}</version>
 6                 <configuration>
 7                     <configurationFile>${mybatis.generator.generatorConfig.xml}</configurationFile>
 8                     <overwrite>true</overwrite>
 9                     <verbose>true</verbose>
10                 </configuration>
11             </plugin>
1  <properties>
2         <!-- plugin setting -->
3         <mybatis.generator.generatorConfig.xml>${basedir}/src/test/resources/generatorConfig.xml</mybatis.generator.generatorConfig.xml>
4         <mybatis.generator.generatorConfig.properties>file:///${basedir}/src/test/resources/generatorConfig.properties</mybatis.generator.generatorConfig.properties>
5 </properties>

2.在maven项目中的test模块里进行配置:

在test/resources下添加generatorConfig.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration
 3         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 4         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 5 
 6 <!-- 配置Run As Maven build : Goals 参数 : mybatis-generator:generate -Dmybatis.generator.overwrite=true -->
 7 <!-- 配置 tableName,使用 Run As Maven build 生成 dao model 层 -->
 8 <generatorConfiguration>
 9     <!-- 配置文件路径 -->
10     <properties url="${mybatis.generator.generatorConfig.properties}"/>
11 
12     <!--数据库驱动包路径 -->
13     <classPathEntry location="${drive.class.path}"/>
14 
15     <context id="DB2Tables" targetRuntime="MyBatis3">
16         <!--关闭注释 -->
17         <commentGenerator>
18             <property name="suppressAllComments" value="true"/>
19         </commentGenerator>
20 
21         <!--数据库连接信息 -->
22         <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
23                         password="${jdbc.password}">
24         </jdbcConnection>
25 
26         <!--生成的model 包路径 -->
27         <javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
28             <property name="enableSubPackages" value="ture"/>
29             <property name="trimStrings" value="true"/>
30         </javaModelGenerator>
31 
32         <!--生成xml mapper文件 路径 -->
33         <sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
34             <property name="enableSubPackages" value="ture"/>
35         </sqlMapGenerator>
36 
37         <!-- 生成的Dao接口 的包路径 -->
38         <javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}">
39             <property name="enableSubPackages" value="ture"/>
40         </javaClientGenerator>
41 
42         <!--对应数据库表名 -->
43         <table tableName="user">
44 
45         </table>
46     </context>
47 </generatorConfiguration>
View Code

修改最后需要生成的表名,我将部分关键数据抽取出来放在generatorConfig.properties,这个文件放在同一目录下。

 1 # 数据库驱动jar 路径
 2 drive.class.path=D:\\MyApp\\repository\\mysql\\mysql-connector-java\\5.1.29\\mysql-connector-java-5.1.29.jar
 3 
 4 # 数据库连接参数
 5 jdbc.driver=com.mysql.jdbc.Driver
 6 jdbc.url=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
 7 jdbc.username=root
 8 jdbc.password=密码
 9 
10 # 包路径配置
11 model.package=com.demo.modules.front.entity
12 dao.package=com.demo.modules.front.mapper
13 xml.mapper.package=com.demo.modules.front.mapper
14 
15 target.project=src/main/java
View Code

3.生成

运行mybatis-generator:generate即可在需要的bao下生成对应的文件。

4.注意

在第二次或之后运行生成文件的时候,java类会被覆盖,也就是说如果对实体对象进行了手动修改的话需要慎重;还有:

xml文件不会被覆盖,只是追加,这样会导致xml文件中重复模块,因此需要删除xml文件后生成。

由于idea默认只在resource下加载xml,如果默认配置mapper.java和xml同一个目录,可能不会识别,所以需要将xml配置到resource下,或者在maven的pom中添加resource:

 1 <!--配置Maven 对resource文件 过滤 -->
 2         <resources>
 3             <resource>
 4                 <directory>src/main/resources</directory>
 5                 <includes>
 6                     <include>**/*.properties</include>
 7                     <include>**/*.xml</include>
 8                 </includes>
 9                 <filtering>true</filtering>
10             </resource>
11             <resource>
12                 <directory>src/main/java</directory>
13                 <includes>
14                     <include>**/*.properties</include>
15                     <include>**/*.xml</include>
16                 </includes>
17                 <filtering>true</filtering>
18             </resource>
19         </resources>
View Code

 

转载于:https://www.cnblogs.com/woshimrf/p/5189371.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

靶场练习第三天~vulnhub靶场之narak

靶机下载链接: https://pan.baidu.com/s/1GxcSL6efwd0GcbY45WsD0A 提取码: dhr5 一、信息收集 1.使用namp 192.168.101.0/24扫描该网段的地址&#xff0c;寻找靶机IP 2.直接访问192.168.101.102 3.进行目录扫描&#xff0c;dirb目录扫描工具&#xff08;kali自带的&#xff…

hdu 1754 块状链表 单点修改+单点查询

经典的线段树题目&#xff0c;也可以用块状链表做。 1 #include <iostream>2 #include <cstring>3 #include <cstdio>4 #include <cmath>5 using namespace std;6 7 const int N 200000;8 const int M 800;9 int n, m, tot;10 11 int max( int a, in…

靶场练习第四天~vulnhub靶场之Lazysysadmin

靶机下载链接: https://pan.baidu.com/s/1MMkgaYLRc78YX4s6nvqdjQ 提取码: djpm 信息收集 查看kali的IP 使用nmap 192.168.101.0/24 探测靶机IP 发现开放445端口&#xff0c;并且开放的服务microsoft-ds。可以用enum4linux工具来扫描共享文件&#xff0c;使用方法: enum4linux…

关于代码手写UI,xib和StoryBoard

代码手写UI 这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用。Geek们喜欢用代码构建UI&#xff0c;是因为代码是键盘敲出来的&#xff0c;这样可以做到不开IB&#xff0c;手不离开键盘就完成工作&#xff0c;可以专注于编码环境&#xff0c;看起来很cool很高效…

ODAC(V9.5.15) 学习笔记(十)TVirtualTable

名称 类型 说明 Options TVirtualTableOptions 选择项&#xff0c;包括&#xff1a; voPersistentData&#xff1a;在数据集关闭时不处理其相关数据内容 voStored&#xff1a;设计期对数据集的处理以及录入的数据将保存在DFM文件中 AddField 增加一个字段&#xff0c…

SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称

1.查询数据库中的所有数据库名&#xff1a; 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名&#xff1a; 1 SELECT Name FROM SysObjects Where XTypeU ORDER BY Name 3.查询表结构信息&#xff1a; 1 SELECT (case when a.colorder1 …

靶场练习第五天~vulnhub靶场之basic_pentesting_1

一、信息收集 1.主机发现 靶机下载链接: https://pan.baidu.com/s/143q3cbZG6-8y8kMk51Lc_Q 提取码: i8hv &#xff08;1&#xff09;Netdiscover&#xff1a;专用的二层发现工具&#xff0c;拥有主动和被动发现两种方式 具体操作如下&#xff0c;查看一下kali的ip 然后使用…

计算机网络学习笔记(二) 计算机网络结构

什么是网络结构&#xff1f; n 网络边缘: 主机网络应用 n 接入网络&#xff0c;物理介质:有线或无线通信链路 n 网络核心&#xff08; 核心网络&#xff09; :互联的路由器&#xff08;或分组转发设备&#xff09;网络之网…

Javascript常用的设计模式详解

Javascript常用的设计模式详解 阅读目录 一&#xff1a;理解工厂模式二&#xff1a;理解单体模式三&#xff1a;理解模块模式四&#xff1a;理解代理模式五&#xff1a;理解职责链模式六&#xff1a;命令模式的理解&#xff1a;七&#xff1a;模板方法模式八&#xff1a;理解ja…

靶场练习第六天~vulnhub靶场之Lampiao

靶机下载链接: https://pan.baidu.com/s/1h0uiwvBkX8iXFyMAO23e1A 提取码: 2kjp 一、信息收集 1.靶机发现 &#xff08;1&#xff09;靶机lampiao与kali均为NAT模式 ,Kali的 IP为192.168.101.10, 扫描网段用命令nmap -sp192.168.101.0/24&#xff0c;发现靶机ip为192.168.10…

生成百度地图 如何弄

http://api.map.baidu.com/lbsapi/creatmap/index.html转载于:https://www.cnblogs.com/qinqiu/p/4476747.html

内存泄露从入门到精通三部曲之排查方法篇

最原始的内存泄露测试 重复多次操作关键的可疑的路径&#xff0c;从内存监控工具中观察内存曲线&#xff0c;是否存在不断上升的趋势且不会在程序返回时明显回落。这种方式可以发现最基本&#xff0c;也是最明显的内存泄露问题&#xff0c;对用户价值最大&#xff0c;操作难度小…

靶场练习第七天~vulnhub靶场之mrRobot

靶机下载链接: 百度网盘 请输入提取码 提取码: sqv3 一、主机发现 1.用ifconfig查看kali的ip&#xff0c;因为kali和靶机都开启了NAT模式&#xff0c;使用namp -sP 192.168.101.0/24探测靶机ip 二、信息收集 1.使用nmap扫描靶机 使用nmap -A 192.168.101.108 &#xff0c;查…

JAVA第二次试验

北京电子科技学院&#xff08;BESTI&#xff09; 实 验 报 告 课程&#xff1a;Java程序设计 班级&#xff1a;1352 姓名&#xff1a;潘俊洋 学号&#xff1a;20135230 成绩&#xff1a; 指导教师:娄嘉鹏 实验日期:2015.5.4 实验密级&#xff1a…

【转】怎么样从一个疯狂下载者成为一个学习者!!!值得反省下的问题·~~

为了方便广大网友&#xff0c;各种网站也应运而生。当网络的建设和发展正进行的如火如荼&#xff0c;喧闹之中&#xff0c;搭配学习这壶美酒的&#xff0c;竟是一瓶名叫资料下载的毒药&#xff0c;更糟糕的是&#xff0c;美酒和毒药已经被灌到了同一个杯子里&#xff0c;浑然一…

靶场练习第八天~vulnhub靶场之CH4INRULZ_v1.0.1

一、前期准备 1.靶机下载 链接: 百度网盘 请输入提取码 提取码: z37y 2.用命令ifconfig查看kali 二、信息收集 1.主机发现&#xff0c;使用nmap命令 具体使用方法&#xff1a;nmap -sP 192.168.101.0/24 2.查看该靶机开放了哪些端口 nmap -A 192.168.101.109 直接访问80端…

C# 不支持关键字: “.;database”。

解决方案分析:这个一定是链接字符串有问题&#xff0c;核对web.config 和程序的字符串是否有误转载于:https://www.cnblogs.com/louby/p/5208986.html

TImus 1073 Square Country DP

题意&#xff1a;给出一个数n(1<n<60000),这个数可以写成一些数的平方的和&#xff0c; 问对于n&#xff0c;最少可以分成多少个数的平方的和。 比如&#xff1a;n344&#xff0c;则34418*184*42*2&#xff0c;输出3. dp[i]表示i这个数最少可以分成多少个数的平方的和。 …

vulnhub靶机获取不到ip

1.启动靶机&#xff0c;出现如下图所示&#xff0c;按e 2.进入如下图所示时&#xff0c;将ro 替换为 rw signie init/bin/bash 3.按下Ctrl键X键&#xff0c;重启服务进入如下界面 4.查看当前网卡IP信息 ip a 5.编辑网卡配置文件vi /etc/network/interfaces 6.发现网卡名字与刚…

apache整合tomcat部署集群

近日&#xff0c;由于公司项目需要&#xff0c;所以学习了apache整合tomcat以及集群的一些知识。 所以做下笔记日后回顾可以用到。 apache只有处理静态事物的能力&#xff0c; 而tomcat的强项就是处理动态的请求&#xff0c;所以apache和tomcat整合相互取长补短&#xff0c;由a…