待记录
TODO
https://cloud.tencent.com/developer/article/1631147
https://blog.csdn.net/qq_27127145/article/details/84982225
https://www.cnblogs.com/chyg/p/4139343.html
https://developer.aliyun.com/article/614013
https://www.cnblogs.com/zeng1994/p/8257763.html
https://www.it610.com/article/1362346209208983552.htm
https://www.cnblogs.com/blwy-zmh/p/13186852.html
https://www.csdn.net/tags/MtTaEg5sMzc0OTQ1LWJsb2cO0O0O.html
mysql事务在提交后才真正执行语句,for循环中某次insert抛出异常,前几次循环并没有实际写到库里
@Transaction
public void methodA() {
for(...) {
xxxMapper.insert();
}
}
PPT技巧:用除法的形式体现大小比较
| cmp1 | cmp2 | |
|---|---|---|
| A/B | 1.01 | 0.89 |
MAVEN
使用maven helper进行排包
Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依赖冲突。
在大多数时候,依赖冲突可能并不会对系统造成什么异常,因为Maven始终选择了一个Jar包来使用。但是,不排除在某些特定条件下,会出现类似找不到类的异常,所以,只要存在依赖冲突,在我看来,最好还是解决掉,不要给系统留下隐患。
解决依赖冲突的方法,就是使用Maven提供的标签,标签需要放在标签内部,就像下面这样:
log4j-core本身是依赖了log4j-api的,但是因为一些其他的模块也依赖了 log4j-api,并且两个log4j-api版本不同,所以我们使用标签排除掉 log4j-core所依赖的log4j-api,这样Maven就不会下载log4j-core所依赖的 log4j-api了,也就保证了我们的项目中只有一个版本的log4j-api。
https://blog.csdn.net/wangb_java/article/details/60330000
包冲突和排包是非常恶心的一个场景,有的包在很多不规范的二房包依赖的时候,你可以选择如下偷懒方式:
(强制排除所有对该包的依赖)
Mvn
// 看冲突和重复的具体情况(索引到更详细的底层), mvn dependency:tree和mvn dependency:tree -Dinclude=xxx 只看到直接引用
mvn dependency:tree -Dverbose
批操作
https://www.shuzhiduo.com/A/KE5QDl3MJL/
sql批量insert 和 for循环insert性能比较
https://blog.csdn.net/WillLiaowh/article/details/106028882
https://blog.csdn.net/xyjawq1/article/details/74129316
or和in的效率比较:
https://blog.csdn.net/cws1214/article/details/35239101
updateSelective
https://blog.csdn.net/qq_42584411/article/details/90342951
mybatis批量更新
https://www.cnblogs.com/eternityz/p/12284760.html
https://cloud.tencent.com/developer/article/1430952
https://yuque.antfin.com/wangfan.lxh/xxpt/zwpokk
https://topic.atatech.org/articles/179909
https://topic.atatech.org/articles/71063
https://cloud.tencent.com/developer/article/1349729
mybatis trim标签的使用
https://blog.csdn.net/wt_better/article/details/80992014
查看生成的SQL语句
// 在此方法内断点 (全局搜索)
org.apache.ibatis.mapping.MappedStatement#getBoundSql
...
return boundSql; --> 此处设置断点,断点设置条件为mapper中方法的名字
如:
√ Enabled
√ Suspend: √All Thread
√ Condition:
this.id.equals("cn.xxx.xxx.dal.mapper.xxxMapper.batchInsert")
数据库底层搭建
MyBatis(数据持久层框架)+ T**L(xx分布式数据层)+ MySQL(关系型数据库)
springboot集成mybatis(然后参考现有项目的写法):https://blog.csdn.net/zl18310999566/article/details/54092455
<!-- mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
# mybatis:
mybatis.config-location=classpath:/mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath*:/mapper/*.xml
https://blog.csdn.net/Ying_ph/article/details/121972700
step1.连接到数据库
IDEA右侧Database-> + -> Data Source from URL
URL: jdbc:mysql://xxx...
Driver: MySQL for 5.1
Mybatis原理详解
主要了解怎么从mapper就能访问到数据库的:https://zhuanlan.zhihu.com/p/97879019
mybaits日志打印
https://blog.csdn.net/XiongW2014/article/details/99679232
method1:
logback-spring.xml:root日志等级改为DEBUG
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ASYNC-APPLICATION" />
</root>
method2:
logback-spring.xml:针对DAO进行打印
<logger name="com.youku.pdvmp.mapper" level="DEBUG" />
method3:
test.properties:
logging.level.root=DEBUG
配合插件使用:https://github.com/Link-Kou/intellij-mybaitslog
下载最新release版本进行安装:https://github.com/Link-Kou/intellij-mybaitslog/releases

浙公网安备 33010602011771号