程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> java jdbc連接mysql,javajdbcmysql

java jdbc連接mysql,javajdbcmysql

編輯:MySQL綜合教程

java jdbc連接mysql,javajdbcmysql


JDBC(Java Data Base Connectivity,java數據庫連接)是一種用於執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為數據庫開發人員提供了一個標准的API,使數據庫開發人員能夠用純 Java API 編寫數據庫應用程序,並且可跨平台運行,並且不受數據庫供應商的限制。其優點:

  • 操作便捷:開發人員不需要再使用復雜的驅動器調用命令和函數;
  • 可移植性強:JDBC支持不同的關系數據庫
  • 通用性好:JDBC-ODBC橋接驅動器將JDBC函數換成ODBC;
  • 面向對象:可以將常用的JDBC數據庫連接封裝成一個類,在使用的時候直接調用即可
package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.mysql.jdbc.Statement;

public class JDBC {
    protected  Connection conn;
    protected  Statement statement;

    public static Connection getConnection() throws Exception {
        Connection connection = null; // 創建用於連接數據庫的Connection對象
        try {
            Class.forName("com.mysql.jdbc.Driver");// 加載Mysql數據驅動
            /**
             * 127.0.0.1指本機,若是鏈接遠程服務機器,則填寫遠程機器的ip 3306 mysql默認的端口號 test 數據庫名稱
             * user 數據庫用戶名稱 password 密碼
             */
            connection = DriverManager.getConnection(
                    "jdbc:mysql://127.0.0.1:3306/test", "user", "password");// 創建數據連接

        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception("鏈接mysql數據失敗");
        }
        return connection; // 返回所建立的數據庫連接
    }

    /**
     * 向mysql插入數據記錄 返回插入數據的個數
     * 
     * @param sql
     *            要插入的sql語句
     * @return count 插入數據的個數
     * @throws Exception
     */
    public  int insert(String sql) throws Exception {
        conn = getConnection(); // 連接到數據庫
        try {
            statement = (Statement) conn.createStatement(); // 創建用於執行靜態sql語句的Statement對象
            int count = statement.executeUpdate(sql); // 執行插入操作的sql語句
            conn.close(); // 關閉數據庫連接
            return count;// 返回插入數據的個數
        } catch (SQLException e) {
            e.printStackTrace();
            throw new Exception("插入數據失敗");
        }
    }

    /**
     * 更新符合要求的記錄 返回更新的記錄數目
     * 
     * @param sql
     *            更新數據的sql語句
     * @return count 更新數據的個數
     * @throws Exception
     */
    public  int update(String sql) throws Exception {
        conn = getConnection(); // 連接到數據庫
        try {
            // 創建用於執行靜態sql語句的Statement對象,
            statement = (Statement) conn.createStatement();
            int count = statement.executeUpdate(sql);// 執行更新操作的sql語句,
            conn.close(); // 關閉數據庫連接
            return count; // 返回更新數據的個數
        } catch (SQLException e) {
            e.printStackTrace();
            throw new Exception("更新數據失敗");
        }
    }

    /**
     * 查詢數據庫,返回符合要求的記錄的數據
     * 
     * @param sql 查詢數據的sql語句
     * @throws Exception
     * @return list 
     */
    public  List<Object> query(String sql) throws Exception {

        conn = getConnection(); // 連接到數據庫
        try {
            statement = (Statement) conn.createStatement(); // 創建用於執行靜態sql語句的Statement對象
            ResultSet rs = statement.executeQuery(sql); // 執行sql查詢語句,返回查詢數據的結果集
            List<Object> list=ResultSetToList(rs);
            conn.close(); // 關閉數據庫連接
            return list;

        } catch (SQLException e) {
            e.printStackTrace();
            throw new Exception("查詢數據失敗");
        }
    }
    /* 刪除符合要求的記錄,輸出情況*/  
    /**
     * 
     * @param sql 刪除數據的sql語句
     * @return count 返回刪除數據的數量
     * @throws Exception
     */
    public  int delete(String sql) throws Exception {  
        conn = getConnection(); //連接到數據庫  
        try {  
            statement = (Statement) conn.createStatement();    //創建用於執行靜態sql語句的Statement對象
            int count = statement.executeUpdate(sql);// 執行sql刪除語句  
            conn.close();   //關閉數據庫連接  
              return count;//返回刪除數據的數量
        } catch (SQLException e) {  
            e.printStackTrace();
            throw new Exception("刪除數據失敗");
        }  
          
    }
    /**
     * 分頁查找
     * @param sql 要查找的sql語句
     * @param page 頁數
     * @param count 數據條數
     * @return List<Object>
     * @throws Exception
     */
    public  List<Object> findByPage(String sql,  
            int page,int count) throws Exception {  
          conn = getConnection(); //連接到數據庫  
        PreparedStatement pre = conn.prepareStatement(sql);  
        pre.setMaxRows(count);  
        ResultSet rs = pre.executeQuery();  
        if(page<1){
            rs.absolute(0);  
        }else{
            page=page*count-1;
            rs.absolute(page);  
        }
        List<Object> list=ResultSetToList(rs);
        return list;  
    }  
    /**
     * ResultSet 轉換成List
     */
    public  List<Object> ResultSetToList(ResultSet rs) throws SQLException{
        if (rs == null)
            return Collections.emptyList();
        ResultSetMetaData md = rs.getMetaData(); // 得到結果集(rs)的結構信息
        int columnCount = md.getColumnCount(); // 返回此 ResultSet 對象中的列數
        List<Object> list = new ArrayList<Object>();
        Map<Object, Object> rowData = new HashMap<Object, Object>();
        while (rs.next()) {
            rowData = new HashMap<Object, Object>(columnCount);
            for (int i = 1; i <= columnCount; i++) {
                rowData.put(md.getColumnName(i), rs.getObject(i));
            }
            list.add(rowData);
        }
        return list;
    }


}

 


java中使用JDBC連接數據庫的步驟?

1.注冊驅動
Class.forname("com.mysql.jdbc.Driver");//這是連接mysql數據庫的驅動
2.獲取數據庫連接
java.sql.Connection conn=java.sql.DriverManager.getConnection(); 3.獲取表達式
java.sql.Statement stmt=conn.createStatement("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root","null");//三個參數分別是數據庫連接的URL,用戶名,密碼 4.執行SQL
java.sql.ResultSet rs=stmt.executeQuery("select * from user"); 5.顯示結果集裡面的數據
while(rs.next()){
System.out.println(rs.getInt(1));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
System.out.pringln();
}//執行插入語句
//stmt.executeUpdate("insert into user values(1,'中文','345')");
6.釋放資源
rs.close();
stmt.close();
conn.close();
 

java jdbc連接數據庫

創建對象是通過關鍵字new 創建的,這裡只是一個聲明,聲明con是一個Connection類型的,真正創建對象是在等號後面代碼。這個下面的熟悉的語句是一樣的 User user=new User();等號前面聲明類型,等號後面創建實例
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved