新拉的項(xiàng)目下完依賴后dependencies還是出現(xiàn)紅色波浪線
可以嘗試刪除pom中相關(guān)依賴,import change后重新添加津畸。
Mybatis generatorConfig.xml中
http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd
出現(xiàn)紅色波浪線,使用idea的紅色小燈泡,點(diǎn)擊Fetch external resource
啟動(dòng)服務(wù)報(bào)錯(cuò):
Caused by: java.nio.charset.MalformedInputException: Input length = 1
編碼設(shè)置有問題倦畅,F(xiàn)ile --> Settings --> Editor --->File Encodings ,將所有的格式都轉(zhuǎn)成utf-8格式
idea2019.2中中文字體忽大忽小不規(guī)范的問題
File --> Settings --> Editor --->Font調(diào)整“Fallback font”為SimHei、SimSun陨簇、YouYuan等
idea設(shè)置代碼行寬度超出限制時(shí)自動(dòng)換行
1、settings->editor->code style->default options->勾選wrap on typing
2迹淌、settings->editor->code style->java->wrapping and braces欄->ensure right margin is not exceeded
引用自定義包報(bào)錯(cuò)The POM for xxxx is missing, no dependency information available
打成springboot jar包,再引用自己做的包時(shí)河绽,不要用這個(gè)打包命令:
mvn package -Dmaven.test.skip=true
正確的打包命令:
mvn clean install -Dmaven.test.skip=true
mysql插入emoji報(bào)錯(cuò)
Incorrect string value: '\xF0\x9F\x90\x96' for column
原因:
一個(gè)ASCII字符占用1個(gè)字節(jié),一個(gè)漢字占用3個(gè)字節(jié)唉窃;
MySql的utf8編碼最多3個(gè)字節(jié)耙饰,算不上真正的utf8字符集。在MySql5.5.3的版本增加了utf8mb4編碼集纹份,專門用于兼容4個(gè)字節(jié)的unicode苟跪。在MySql中utf8mb4是utf8的超集,除了修改數(shù)據(jù)庫的編碼集為utf8mb4外不需要做其他的修改蔓涧。
解決辦法:MySql使用utf8mb4
第一步:檢查版本
查詢版本語句:
select version();
第二步:修改MySql配置文件
打開mysql配置文件mysql/my.cnf或mysql/my.ini, 并且添加如下內(nèi)容:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
第三步:重啟數(shù)據(jù)庫
1件已、Windows請到服務(wù)管理界面重新啟動(dòng)MySql服務(wù):services.msc
2、Linux請執(zhí)行命令:/etc/init.d/mysql restart
第四步:檢查數(shù)據(jù)庫配置
執(zhí)行查看數(shù)據(jù)庫字符集命令:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
|| character_set_client | utf8mb4
|| character_set_connection | utf8mb4
|| character_set_database | utf8mb4
|| character_set_filesystem | binary
|| character_set_results | utf8mb4
|| character_set_server | utf8mb4
|| character_set_system | utf8
|| collation_connection | utf8mb4_unicode_ci
|| collation_database | utf8mb4_unicode_ci
|| collation_server | utf8mb4_unicode_ci
+--------------------------+--------------------+
必須保證:
character_set_client/character_se_connection/character_set_database/character_set_results/character_set_server
為utf8mb4
元暴。
第五步:更新客戶端配置文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
jdbc.username=username
jdbc.password=password
第六步:修改數(shù)據(jù)庫篷扩、表和列的字符集SQL語句:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name table_name CHANGE column_name VARCHAR(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
第七步:修改應(yīng)用連接字符串(druid):
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc-driver}"/>
<property name="url" value="${jdbc-url}"/>
<property name="username" value="${jdbc-user}"/>
<property name="password" value="${jdbc-password}"/>
<property name="filters" value="stat"/>
<property name="maxActive" value="20"/>
<property name="initialSize" value="1"/>
<property name="maxWait" value="60000"/>
<property name="minIdle" value="1"/>
<property name="timeBetweenEvictionRunsMillis" value="3000"/>
<property name="minEvictableIdleTimeMillis" value="300000"/>
<property name="validationQuery" value="SELECT 'x'"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>
<property name="poolPreparedStatements" value="true"/>
<property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
<property name="connectionInitSqls" value="set names utf8mb4;"/> //必須添加
</bean>
注意:mysql-connector-java驅(qū)動(dòng)在5.1.13之前是不支持utf8mb4,請使用5.1.13以后的版本茉盏。
jdk8 使用stream進(jìn)行Collectors.toMap操作時(shí)的錯(cuò)誤
1鉴未、當(dāng)value為null時(shí)會報(bào)錯(cuò),解決方法為
List.stream().collect(HashMap::new,(m,v)->m.put(v.getId(),v.getValue()),HashMap::putAll);
2援岩、當(dāng)主鍵重復(fù)時(shí)會報(bào)錯(cuò)歼狼,解決方法為
List.stream().collect(Collectors.toMap(V::getId, V::getValue, (oldValue, newValue) -> newValue));