JAVA 訪問 MySQL 數據庫問題

 

   其實之前說過 JAVA 代碼訪問數據庫的問題,這裏再重新說明一下訪問 MySQL 的問題。

 

   資源有限,所以在 Windows XP 下利用 VM 搭建了一個 Unbuntu 的 Linux 系統,比較邪門的是,同樣的方法裝了三次,唯獨這臺機器就是無法通過 Network 訪問 Windows 的共享文件夾,不過不管它,回到正題。安裝 MySQL 很簡單,控制檯下輸入:

 

apt-get install mysql-server

 

   安裝過程中,會提示輸入用戶名和密碼,用於數據庫的管理。這裏輸入用戶名 root ,密碼 root 。

 

MySQL 的配置

 

  •    綁定IP地址。

   找到 /etc/mysql/my.cnf 配置文件,將 bind-address=127.0.0.1 改爲 bind-address=192.168.72.130,其中 192.168.72.130 爲本機的 IP 地址,意思是將 MySQL 綁定到此 IP 地址,修改後在本機試驗時,顯示無法訪問,因爲在配置文件 /etc/hosts 中,localhost 對應的 IP 地址爲 127.0.0.1,而 MySQL 已經綁定到了 192.168.72.130 這個 IP 地址。

 

  •    添加用戶。

   進入控制檯,按如下操作:

 

  1.  
    1. mysql -uroot -proot mysql
    2. show tables;
    3. select * from user;
    4. grant all privileges on db.* to leidiqiu@'%' identified by '888888';
    5. flush privileges;
    6. select * from user;
    7. exit;
    8. /etc/init.d/mysql restart

 

      解釋

 

  1.  
    1. 進入 mysql ,用戶爲 root,密碼爲 root,數據庫爲 mysql(後者),-u 意爲用戶,-p 意爲密碼,數據庫 mysql 保存着一些數據庫相關的表,如表 user 保存着一些用戶信息。
    2. 顯示 mysql 數據庫的所有表,記得後面有個 ; 號。
    3. 顯示錶 user 的信息。
    4. 增加用戶 leidiqiu ,所有權限,數據庫爲 db ,後面的 .* 不可少,% 代表對所有遠程的 IP 地址,如果要限定 IP 地址的話,單獨寫上 IP 地址,密碼是 888888,注意引號 ' 不可少,用來表示是字符串。
    5. 使設置生效。
    6. 查看錶 user,看是否添加上了。
    7. 退出 MySQL。
    8. 重啓 MySQL 服務器。

 

 

遠程的JAVA代碼

  • 下載支持MySQL的jar包 mysql-connector-java-5.0.8-bin.jar ,放在工程目錄下。
  • 之前配置的 MySQL 中,已經有一個數據庫 db,其中有一個表 student。

 

package com.ldq;

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

public class Test05 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String sql = "SELECT * FROM student";
			Connection con = DriverManager
					.getConnection("jdbc:mysql://192.168.72.130:3306/db",
							"leidiqiu", "888888");
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery(sql);

			while (rs.next()) {
				System.out
						.println(rs.getInt("id") + " " + rs.getString("name"));
			}

			rs.close();
			stmt.close();
			con.close();

		} catch (Exception e) {
			e.printStackTrace();
			// TODO: handle exception
		}
	}
}

 

 

輸出結果:

1001 zhang
1002 wang

 

注:

     如果是在本機試驗,應使用:

DriverManager.getConnection("jdbc:mysql://192.168.72.130:3306/db", "leidiqiu", "888888");

    進入到工程目錄,控制檯命令:

javac Test05.java

java -cp mysql-connector-java-5.0.8-bin.jar:. Test05

-cp 意思是指定類的路徑。

: 用於分隔 jar 路徑和當前路徑 .  ,別忘那個點。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章