今天遇到一个问题报错信息大概是这样的:
Cause: java.sql.sqlException: Lock wait timeout exceeded; try restarting transaction
大概意思就是锁超时的问题,当时还纳闷了。后来发现这张表中数据几百万条, 运行时间太长导致运行超时。
这里我的解决方法是添加索引,索引名称自定义、字段可以直接选、然后索引类型根据实际情况选,一般常用的这两种:unique(唯一的),normal(正常的)
用maven插件做代码生成时
pom导入下边这个依赖
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
<?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>
<!--数据库驱动 此处必须从仓库中找到绝对路径-->
<classpathEntry location="D:\repository\MysqL\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar"/>
<context id="context" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.MysqL.cj.jdbc.Driver" connectionURL="jdbc:MysqL://localhost:3306/wan?serverTimezone=UTC" userId="root" password="123">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.spring.demo.bean" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimstrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.spring.demo.mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.spring.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名-->
<!-- <table tableName="dm_js"-->
<!-- domainObjectName="DmJs"-->
<!-- enableCountByExample="false"-->
<!-- enableupdateByExample="false"-->
<!-- enableDeleteByExample="false"-->
<!-- enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false"/>-->
<table tableName="ry_jcxx"
domainObjectName="RyJcxx"
/>
</context>
</generatorConfiguration>
需要更改的地方有数据库名,用户名密码。然后下边对应的model类mapper层和映射文件的路径。最后生成表名哪里后边是true是生成crud方法,false则不生成,当然不想生成也可以不写
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。