Eclipse下 Java對MySQL數據庫操作


1. 下載Mysql驅動。

Link:http://dev.mysql.com/downloads/connector/j/

2.加載JDBC

在Eclipse中,選中相應的工程,Properties->Java Build path->add external jars->ok.

3.JDBC操作數據庫的一般步驟

注冊驅動 (只做一次)
 
Class.forName(“com.mysql.jdbc.Driver”);
 
建立連接(Connection)
 
Connection conn = DriverManager.getConnection(url, user, password);
url格式:JDBC:子協議:子名稱//主機名:端口/數據庫名?屬性名=屬性值&…
User,password可以用“屬性名=屬性值”方式告訴數據庫;
 
example:

String url="jdbc:mysql://localhost:3306/test";

Connection conn;

conn = DriverManager.getConnection(url,"root","root");
創建執行SQL的語句(Statement)
 
執行語句
 
Statement是一個SQL執行器,可以用來執行一個靜態的SQL語句。
Statement st = conn.createStatement();
st.executeQuery(sql);
 
example:

Statement stmt = conn.createStatement(); //創建Statement對象
String sql= "select * from writers";
ResultSet rs = stmt.executeQuery(sql);

執行存儲過程
CallableStatement(從PreperedStatement擴展來)
cs = connection.prepareCall(“{call psname(?,?,?)}”);
cs.registerOutParameter(index, Types.INTEGER);
cs.setXXX(i, xxxx);
cs.executeUpdate();
int id=cs.getInt(index);
 
處理執行結果(ResultSet)
 
ResultSet表示一個查詢結果集。
ResultSet rs = statement.executeQuery(sql);
While(rs.next()){
 rs.getString(“col_name”);
 rs.getInt(“col_name”);
 //…
}
釋放資源
 
釋放資源的順序是ResultSet, Statement,Connection;
Connection在使用完成后,必須關閉,ResultSet, Statement無所謂,只要Connection關閉了,它們也會被自動關閉(但資源不是立即被釋放)。
Connection的使用原則是盡量晚創建,盡量早的釋放。
 
 
 
 
例子:
package com.jdbc;

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

public class connect {
    
      private Connection conn = null;
      private Statement stmt = null;
      private PreparedStatement preparedStatement = null;
      private ResultSet rs = null;
      
      
    public void readDataBase()  throws Exception{
        
        try{
            Class.forName("com.mysql.jdbc.Driver");
             System.out.println("成功加載MySQL驅動!");
        }catch(ClassNotFoundException e1){
            System.out.println("找不到MySQL驅動!");
            e1.printStackTrace();
        }

        String url="jdbc:mysql://localhost:3306/test";    //JDBC的URL    
       

        
        try {

             //調用DriverManager對象的getConnection()方法,獲得一個Connection對象
                conn = DriverManager.getConnection(url,"root","root");
                //創建一個Statement對象
                stmt = conn.createStatement(); //創建Statement對象
                System.out.println("成功連接到數據庫!");
                
                String sql= "select * from writers";
                rs = stmt.executeQuery(sql);
                writeMetaData(rs);
                writeResultSet(rs);
                
                String sql2= "insert into writers values(?,?)";
                preparedStatement=conn.prepareStatement(sql2);
                
                preparedStatement.setString(1, "11");
                preparedStatement.setString(2, "TestEmail");
                preparedStatement.executeUpdate();
                
                rs = stmt.executeQuery(sql);
                writeMetaData(rs);
                writeResultSet(rs);
                
                
        } catch (Exception e) {
              throw e;
        } 
    }
    
    private void writeMetaData(ResultSet rs)throws SQLException{
        System.out.println("The columns in the table are: ");
        
        System.out.println("Table: " + rs.getMetaData().getTableName(1));
        for  (int i = 1; i<= rs.getMetaData().getColumnCount(); i++){
          System.out.print( rs.getMetaData().getColumnName(i)+"\t");
        }
        System.out.println();
    }
    public void writeResultSet(ResultSet rs) throws SQLException{
        
        while(rs.next()){
            System.out.print(rs.getString(1)+"\t");
            System.out.print(rs.getString(2));
            System.out.println();
        }
        
    }
      private void close() {
            try {
              if (rs != null) {
                rs.close();
              }

              if (stmt != null) {
                stmt.close();
              }

              if (conn != null) {
                conn.close();
              }
            } catch (Exception e) {

            }
          }
}

 

main:
import com.jdbc.connect;
public class Main {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        connect ms= new connect();
        ms.readDataBase();
    }

}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM