91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫之-------Mysql(JDBC實現&解決存儲亂碼問題)

發布時間:2020-07-12 18:56:18 來源:網絡 閱讀:1067 作者:Code小偉 欄目:數據庫


數據庫之-------Mysql(JDBC實現&解決存儲亂碼問題)



1、亂碼問題的解決很簡單啦!

    首先在建立數據庫的時候要指定字符集為utf-8,然后再進行JDBC編程的時候,在下面代碼的url后面加上參數characterEncoding即可!更多關于url參數的設置可以查看mysql官網文檔:

http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html


2、MySQL的 JDBC URL 格式 for  Connector/J 如下例:

jdbc:mysql://[host][,failoverhost...][:port]/[database] 
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

jdbc:mysql://[host:port],[host:port].../[database] 
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

實例:
jdbc:mysql://localhost:3306/sakila?profileSQL=true

package java_data_jdbc;



現只列舉幾個重要的參數,如下表所示:

參數名稱參數說明缺省值最低版本要求
user數據庫用戶名(用于連接數據庫)
所有版本
password用戶密碼(用于連接數據庫)
所有版本
useUnicode是否使用Unicode字符集,如果參數characterEncoding設置為gb2312或gbk,本參數值必須設置為truefalse1.1g
characterEncoding當useUnicode設置為true時,指定字符編碼。比如可設置為gb2312或gbkfalse1.1g
autoReconnect當數據庫連接異常中斷時,是否自動重新連接?false1.1
autoReconnectForPools是否使用針對數據庫連接池的重連策略false3.1.3
failOverReadOnly自動重連成功后,連接是否設置為只讀?true3.0.12
maxReconnectsautoReconnect設置為true時,重試連接的次數31.1
initialTimeoutautoReconnect設置為true時,兩次重連之間的時間間隔,單位:秒21.1
connectTimeout和數據庫服務器建立socket連接時的超時,單位:毫秒。 0表示永不超時,適用于JDK 1.4及更高版本03.0.1
socketTimeoutsocket操作(讀寫)超時,單位:毫秒。 0表示永不超時03.0.1

 

對應中文環境,通常mysql連接URL可以設置為:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false

在使用數據庫連接池的情況下,最好設置如下兩個參數:
autoReconnect=true&failOverReadOnly=false

需要注意的是,在xml配置文件中,url中的&符號需要轉義成&。比如在tomcat的server.xml中配置數據庫連接池時,mysql jdbc url樣例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false



3、代碼如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Jdbc_01 {
	
	public static void main(String[] args) {
		
		String userName = "root";
		String password = "root";
		/*
		 * 這個url的格式后面是可以帶很多參數的,詳細請參考mysql官網http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html
		 */
		String url = "jdbc:mysql://localhost:3306?characterEncoding=utf-8&useSSL=true";
		String sql1 = "Select * from Class";
		String sql = "INSERT INTO Class (name,age) VALUES ('你好','21')";

		try {
			
			/*
			 * 這個驅動的寫法有兩種,兩者是繼承關系,還有是:org.gjt.mm.mysql.Driver
			 */
			Class.forName("com.mysql.jdbc.Driver");
			
			Connection conn = DriverManager.getConnection(url, userName, password);
			
			Statement stmt = conn.createStatement();
			
			stmt.execute("use student;");
			stmt.execute(sql);
			
			ResultSet res = stmt.executeQuery(sql1);
			
			while(res.next()){
				String id = res.getString("id");
				String name = res.getString("name");
				int age = res.getInt("age");
				
				System.out.println("序號: "+id + "  " +"姓名: "+ name + "  "+ age+"歲!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

部分資料來源:http://elf8848.iteye.com/blog/1684414

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万全县| 凯里市| 偃师市| 双流县| 安化县| 龙口市| 九台市| 哈巴河县| 富顺县| 城市| 南川市| 巴林右旗| 迭部县| 石棉县| 新和县| 寿光市| 托里县| 井研县| 恩平市| 武威市| 榆林市| 琼海市| 龙胜| 扶绥县| 永宁县| 乐平市| 渑池县| 花莲县| 钟山县| 桐梓县| 泗水县| 木里| 武陟县| 永康市| 合阳县| 靖安县| 崇文区| 平邑县| 修文县| 铁岭市| 广宁县|