SpringBoot使用Mybatis逆向工程小记

1.新建立SpringBoot项目(当然在原有的项目添加也行),添加依赖和build插件,主要是下面这一段。

        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <configurationFile>src/main/resources/config.xml</configurationFile>
                <overwrite>true</overwrite>
                <includeCompileDependencies>true</includeCompileDependencies>
            </configuration>
        </plugin>

这是我的新springboot项目添加后的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.4</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.7</version>
				<configuration>
					<configurationFile>src/main/resources/config.xml</configurationFile>
					<overwrite>true</overwrite>
					<includeCompileDependencies>true</includeCompileDependencies>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2.配置模板,来自https://juejin.cn/post/6844903982582743048这里有超详细的教程

<?xml version="1.0" encoding="UTF-8" ?>
<!--mybatis的代码生成器相关配置-->
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <!-- 引入配置文件 -->
    <properties resource="application-dev.properties"/>

    <!-- 一个数据库一个context,context的子元素必须按照它给出的顺序
        property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,
        javaModelGenerator,sqlMapGenerator?,javaClientGenerator?,table+
    -->
    <context id="myContext" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 这个插件给生成的Java模型对象增加了equals和hashCode方法 -->
        <!--<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>-->

        <!-- 注释 -->
        <commentGenerator>
            <!-- 是否不生成注释 -->
            <property name="suppressAllComments" value="true"/>
            <!-- 不希望生成的注释中包含时间戳 -->
            <!--<property name="suppressDate" value="true"/>-->
            <!-- 添加 db 表中字段的注释,只有suppressAllComments为false时才生效-->
            <!--<property name="addRemarkComments" value="true"/>-->
        </commentGenerator>


        <!-- jdbc连接 -->
        <jdbcConnection driverClass="${spring.datasource.driverClassName}"
                        connectionURL="${spring.datasource.url}"
                        userId="${spring.datasource.username}"
                        password="${spring.datasource.password}">
            <!--高版本的 mysql-connector-java 需要设置 nullCatalogMeansCurrent=true-->
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <!-- 类型转换 -->
        <javaTypeResolver>
            <!--是否使用bigDecimal,默认false。
                false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
                true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal-->
            <property name="forceBigDecimals" value="true"/>
            <!--默认false
                false,将所有 JDBC 的时间类型解析为 java.util.Date
                true,将 JDBC 的时间类型按如下规则解析
                    DATE	                -> java.time.LocalDate
                    TIME	                -> java.time.LocalTime
                    TIMESTAMP               -> java.time.LocalDateTime
                    TIME_WITH_TIMEZONE  	-> java.time.OffsetTime
                    TIMESTAMP_WITH_TIMEZONE	-> java.time.OffsetDateTime
                -->
            <!--<property name="useJSR310Types" value="false"/>-->
        </javaTypeResolver>

        <!-- 生成实体类地址 -->
        <javaModelGenerator targetPackage="com.wqlm.boot.user.po" targetProject="src/main/java">
            <!-- 是否让 schema 作为包的后缀,默认为false -->
            <!--<property name="enableSubPackages" value="false"/>-->
            <!-- 是否针对string类型的字段在set方法中进行修剪,默认false -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>


        <!-- 生成Mapper.xml文件 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <!--<property name="enableSubPackages" value="false"/>-->
        </sqlMapGenerator>

        <!-- 生成 XxxMapper.java 接口-->
        <javaClientGenerator targetPackage="com.wqlm.boot.user.dao" targetProject="src/main/java" type="XMLMAPPER">
            <!--<property name="enableSubPackages" value="false"/>-->
        </javaClientGenerator>


        <!-- schema为数据库名,oracle需要配置,mysql不需要配置。
             tableName为对应的数据库表名
             domainObjectName 是要生成的实体类名(可以不指定,默认按帕斯卡命名法将表名转换成类名)
             enableXXXByExample 默认为 true, 为 true 会生成一个对应Example帮助类,帮助你进行条件查询,不想要可以设为false
             -->
        <table schema="" tableName="user" domainObjectName="User"
               enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false" selectByExampleQueryId="false">
            <!--是否使用实际列名,默认为false-->
            <!--<property name="useActualColumnNames" value="false" />-->
        </table>
    </context>
</generatorConfiguration>

3.运行

命令行执行 mvn mybatis-generator:generate -e 即可运行,如果是idea的话可以直接在maven插件中双击该插件运行.

如果提示找不到jdbc对应的驱动类,请检查是否将mysql-connector的scope设置为runtime了

实习(摸鱼)十天随记

不知不觉已经来10天了,感觉做开发工作是真的苦逼。每天从早上到下午就是对着个电脑,还特么每周要加班!!!!!不知道是不是上了贼船了。

我们这些实习生本身就是地方研发中心的,这次是来总部实习。不知道是不是因为以后也不会待在总部,所以总部研发部的人也不怎么管我们,就让我们随便弄弄学点东西。

这几天跟着写了一下简单的接口,感觉自己的水平确实是欠佳,虽然说是真的学过也接触过很多东西,但是大多都是浅尝辄止,没有深入的理解底层的一些东西和优化,甚至连用也用的不精,很多新工具都不了解,只会玩各种教程学习视频那些老一套。

所以,我决定每过几天就把学到的或者之前花很多时间搜索才得到结果的东西都写进博客,顺便水一水文章数量,之前本来想着自己用react写个简单的博客,不知道以后会不会进展,做这一行还是得多学学,学的多工资才多。

学习!!!!!!!!!!!!!!!!!!

qexw美国三期9929线路评测分享

没啥技术分享,只能用VPS评测凑凑数了。

前几天上车了企鹅小屋家的9929预售机,虽然之前一直有听说这家风评很差(主要是在随意封禁用户、退款周期长、工单支持垃圾这些),不过还是架不住有便宜的9929路线,所以上车一台99年付的。

首先就是大家都关心的线路测试了,竟然还真是从cera拿的母鸡,不知道带不带防御,如果带防御的话甚至还能反代网站玩。看样子是三网联通9929回程,有个别测速节点拉跨,不知道是不是触发了流控机制。性能测试就懒得做了,反正这玩意也干不了啥大事,就是图个线路好。

wget -qO- --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
--------------------------------------------------------------------------------------------------------------------------------------------
 Superbench.sh -- https://www.oldking.net/350.html
 Mode  : Standard    Version : 1.1.7
 Usage : wget -qO- sb.oldking.net | bash
----------------------------------------------------------------------
 CPU Model            : Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50GHz
 CPU Cores            : 1 Cores 2499.998 MHz x86_64
 CPU Cache            : 30720 KB
 OS                   : Debian GNU/Linux 10 (64 Bit) KVM
 Kernel               : 4.19.0-5-amd64
 Total Space          : 1.3 GB / 9.6 GB
 Total RAM            : 69 MB / 483 MB (381 MB Buff)
 Total SWAP           : 1 MB / 255 MB
 Uptime               : 1 days 3 hour 43 min
 Load Average         : 0.00, 0.00, 0.00
 TCP CC               : bbr
 ASN & ISP            : AS40065, Cnservers LLC
 Organization         : CloudRadium L.L.C
 Location             : Los Angeles, United States / US
 Region               : California
----------------------------------------------------------------------
 I/O Speed( 1.0GB )   : 271 MB/s
 I/O Speed( 1.0GB )   : 336 MB/s
 I/O Speed( 1.0GB )   : 378 MB/s
 Average I/O Speed    : 328.3 MB/s
----------------------------------------------------------------------
 Node Name        Upload Speed      Download Speed      Latency
 Speedtest.net    148.41 Mbit/s     377.97 Mbit/s       (*)64.42 ms
 Fast.com         0.00 Mbit/s       135.6 Mbit/s        -
 Nanjing 5G   CT  149.52 Mbit/s     285.06 Mbit/s       155.85 ms
 Hefei 5G     CT  146.13 Mbit/s     235.75 Mbit/s       159.14 ms
 Guangzhou 5G CT  27.81 Mbit/s      155.56 Mbit/s       154.62 ms
 TianJin 5G   CU  149.49 Mbit/s     231.72 Mbit/s       151.24 ms
 Shanghai 5G  CU  150.11 Mbit/s     359.05 Mbit/s       150.43 ms
 Guangzhou 5G CU  149.45 Mbit/s     264.86 Mbit/s       166.61 ms
 Tianjin 5G   CM  18.84 Mbit/s      199.74 Mbit/s       178.93 ms
 Wuxi 5G      CM  142.46 Mbit/s     202.02 Mbit/s       160.32 ms
 Nanjing 5G   CM  28.70 Mbit/s      42.12 Mbit/s        166.80 ms
 Hefei 5G     CM  139.31 Mbit/s     226.26 Mbit/s       163.31 ms
 Changsha 5G  CM  146.99 Mbit/s     324.79 Mbit/s       164.26 ms
----------------------------------------------------------------------
 Finished in  : 6 min 36 sec
 Timestamp    : 2021-03-26 23:05:22 GMT+8
 Results      : ./superbench.log
----------------------------------------------------------------------
 Share result:
 · https://www.speedtest.net/result/c/152cc59c-7b47-4298-9b95-c7e1df63a397
 · https://paste.ubuntu.com/p/qxTVwNbtqQ/
----------------------------------------------------------------------