1. 程式人生 > >java 初步簡單連線(SQL)資料庫和操作

java 初步簡單連線(SQL)資料庫和操作

java初入門簡單連線並操作資料庫

工具:eclipse 

           java1.7版本

   heidisql 或比較新的 MySQL

   MySQL連線驅動:mysql-connector-java-5.1.20.jar

先在資料庫建表


下載mysql-connector-java-5.1.20.jar,放到tes下面。


右鍵工程tes,選擇properties ,單擊Add JARs,新增mysql-connector-java-5.1.20.jar。

    public class Test {
public static void main(String[] args) throws Exception{


Connection con;

String dirver = "com.mysql.jdbc.Driver";//【1】

String url = "jdbc:mysql://localhost:3306/womr_app_s128?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true";//【2】
String user = "root";

String password = "password";

/*註釋

關於  【1】;  推薦去看看這位寫的  https://blog.csdn.net/superdangbo/article/details/78732700


關於【2】localhost可以替換成伺服器的id,womr_app_s128 為資料庫名 ; ?,是一個識別符號,代表後面開始是一些設定。

useUnicode=true&characterEncoding=utf8 他們的作用是指定字元的編碼、解碼格式。比如,mysql資料庫用的是gbk編碼,而專案資料庫用的是utf-8編碼。有了這兩個 useUnicode=true&characterEncoding=utf8,1 資料庫在存放專案資料的時候會先用UTF-8格式將資料解碼成位元組碼,然後再將解碼後的位元組碼重新使用GBK編碼存放到資料庫中;2 在從資料庫中取資料的時候,資料庫會先將資料庫中過得資料按GBK格式解碼成位元組碼,然後再將解碼後的位元組嗎重新按UTF-8格式編碼資料,最後再將資料返回給客戶端。


但是在這邊,我當前電腦連的是公司的伺服器,遇到了點問題。資料庫我是用 heidisql ,我寫 jdbc:mysql://localhost:3306,一直連線失敗 一直會報錯 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 目前找不到解決辦法。

autoReconnect=true 當資料庫斷開始,會自動嘗試連線資料庫

rewriteBatchedStatements=true,並且在mysql-connector-java-5.1.13.jar以上的版本驅動,能實現高效能批量插入。

*/

try{
String uid;
String leadUid ;
String shipId;
String refitId;
int refitLevel ;

Class.forName(dirver);//【3】

/*【3】這個有興趣的話可以看一下 https://www.cnblogs.com/gaojing/archive/2012/03/23/2413638.html

*/

con = DriverManager.getConnection(url, user, password);
if(!con.isClosed())System.out.println("Succeded connecting to the Database !");
Statement statement = con.createStatement();

String sql = "select * from t_refit limit 20";
ResultSet rs = statement.executeQuery(sql);
System.out.println("----------------------------");
System.out.println("執行結果如下所示");
System.out.println("----------------------------");
while (rs.next()) {
leadUid = rs.getString("lead_uid");
refitId = rs.getString("refitId");


System.out.println(leadUid + "\t" + refitId);
}
rs.close();
con.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();
}finally{
System.out.println("資料庫資料獲取成功 !");
}
}

}


插入

                    PreparedStatement psql;
psql = con.prepareStatement("insert into t_refit(uid, lead_uid, shipId, refitId, refitLevel )" + "value(?,?,?,?,?)");
psql.setString(1, "dfdfv");
psql.setString(2, "s128dfve");
psql.setString(3, "202004");
psql.setString(4, "2040225");
psql.setInt(5, 2);

psql.executeUpdate();

結果如下:


修改


PreparedStatement psql;
psql = con.prepareStatement("update t_refit set refitLevel = ? where uid = ?");
psql.setInt(1, 4);
psql.setString(2, "dfdfv");

psql.executeUpdate();

結果如下


刪除



PreparedStatement psql;
psql = con.prepareStatement("delete from t_refit where uid = ?");
psql.setString(1, "dfdfv");
psql.executeUpdate();