要注意兩點:
1下載JDBC驅動mysql-connector-java-5.0.5-bin.jar導入到工程中去
工程(右鍵)--buildpath--configure build path--add external jars。
2 url的寫法:“jdbc:mysql://主機IP或主機名:3306/數據庫名”
主機ip或主機名查找方法:
在DOS“命令提示符”窗口中輸入“ipconfig /all”,可以查看本機的詳細信息。
import java.sql.*;
public class EmpDAO {
public static void main(String[] args){
// 驅動程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要訪問的數據庫名scutcs
String url = "jdbc:mysql://192.168.1.3:3306/emp";
// MySQL配置時的用戶名
String user = "root";
// MySQL配置時的密碼
String password = "123";
try {
// 加載驅動程序
Class.forName(driver);
// 連續數據庫
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用來執行SQL語句
Statement statement = conn.createStatement();
// 要執行的SQL語句
String sql = "select * from mytable";
// 結果集
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
String name = null;
String sex = null;
while(rs.next()) {
// 選擇sname這列數據
name = rs.getString("name");
sex = rs.getString("sex");
// 首先使用ISO-8859-1字符集將name解碼爲字節序列並將結果存儲新的字節數組中。
// 然後使用GB2312字符集解碼指定的字節數組
name = new String(name.getBytes("ISO-8859-1"),"GB2312");
// 輸出結果
System.out.println(name + "\t" + sex);
}
rs.close();
conn.close();
} catch(ClassNotFoundException e) {
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
將數據庫的連接和獲取封裝到DBUtility類中。
db.properties文件內容:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=123
jdbc.url=jdbc\:mysql\://192.168.1.3\:3306/emp
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
import java.sql.Connection;
public class DBUtility {
private static Properties properties = new Properties();
private static String driver = null;
private static String url = null;
private static String user = null;
private static String pwd = null;
static{
try {
properties.load(DBUtility.class.getClassLoader().getResourceAsStream(
"databaseDao/db.properties"));
driver = properties.getProperty("jdbc.driver");
url = properties.getProperty("jdbc.url");
user = properties.getProperty("jdbc.user");
pwd = properties.getProperty("jdbc.password");
Class.forName(driver);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection openConnection() throws SQLException{
return DriverManager.getConnection(url, user, pwd);
}
public static void closeConnection(Connection con){
if(con != null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("關閉連接時發生異常");
}
}
}
}
新的EmpDAO:
import java.sql.*;
public class EmpDAO {
public static void main(String[] args){
EmpDAO dao = new EmpDAO();
dao.findAll();
}
public void findAll(){
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = DBUtility.openConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("select name,sex from mytable");
while(rs.next()){
System.out.println(rs.getString("name")+ "," +rs.getString("sex"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs != null){
rs.close();
}
if(stmt != null){
stmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("數據庫釋放資源異常");
}
DBUtility.closeConnection(con);
}
}
}