mysql數據庫的連接以及增刪改查Java代碼實現

jopen 9年前發布 | 8K 次閱讀 Java MySQL

數據庫:

    create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32));

insert into t1(name,password) values('admin','123');  
insert into t1(name,password) values('zhangsan','123');  
insert into t1(name,password) values('lisi','123');  </pre> 


Java代碼:


mySqlConnection.java代碼:

    package com.dbdao.mysql;

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

import org.junit.Test;  

public class mySqlConnection {  

    //創建數據庫驅動名稱  
    private static String Driver_class="com.mysql.jdbc.Driver";  

    //數據庫鏈接地址  
    private String url="jdbc:mysql://localhost:3306/test";  

    //數據庫用戶名  
    private String user="root";  

    //數據庫密碼  
    private String password="11";  

    //數據庫鏈接  
    private Connection con=null;  

    //準備聲明sql語句  
    private PreparedStatement pstmt=null;  

    //結果集  
    private ResultSet rs=null;  

    //影響行數  
    private int i;  

    /* 
     * 創建驅動 
     * */  
    static{  

        try {  
            Class.forName(Driver_class);  
        } catch (ClassNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

    }  

    /* 
     * 加載驅動 
     * */  
    @Test  
    public void getConnect() {  
        // TODO Auto-generated method stub  
        try {  
            con=DriverManager.getConnection(url, user, password);  
        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

        //判斷數據庫是否加載成功  
        if(con!=null){  

            System.out.println("數據庫加載成功!");  

        }else{  

            System.out.println("數據庫加載失敗!");  

        }  

    }  

    /* 
     * 執行sql語句 
     * */  
    public void doSql(String sql,Object[] object) {  
        // TODO Auto-generated method stub  

        //判斷sql語句是否存在  
        if(sql!=null){  

            //加載驅動  
            getConnect();  

            //判斷object數組是否存在  
            if(object==null){  

                //如果不存在,創建一個,防止出現空指針異常  
                object=new Object[0];  

            }  

            try {  

                //聲明一條準備的sql語句  
                pstmt=con.prepareStatement(sql);  

                //為Object對象一一賦值  
                for(int i=0;i<object.length;i++){  

                    pstmt.setObject(i+1, object[i]);  

                }  

                //執行聲明的sql語句  
                pstmt.execute();  

            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  

        }else{  

            System.out.println("sql語句并不存在!");  

        }  

    }  

    /* 
     * 獲取結果集 
     * */  
    public ResultSet getRS(){  

        try {  

            //獲取結果集方法  
            rs=pstmt.getResultSet();  

        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

        //返回結果集  
        return rs;  

    }  

    /* 
     * 獲取影響行數 
     * */  
    public int getUpdateCount() {  
        // TODO Auto-generated method stub  

        try {  

            //獲取影響行數方法  
            i=pstmt.getUpdateCount();  

        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

        //返回影響行數  
        return i;  

    }  

    /* 
     * 關閉方法 
     * */  
    public void getClose() {  
        // TODO Auto-generated method stub  

        //關閉結果集  
        try {  

            //結果集關閉方法  
            rs.close();  

        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  

            //關閉聲明的sql語句  
            try {  

                //關閉聲明的sql語句方法  
                pstmt.close();  

            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }finally{  

                //卸載驅動  
                try {  

                    //驅動卸載方法  
                    con.close();  

                } catch (SQLException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  

            }  
        }  

    }  

}  </pre> 


loginService.java代碼:

    package com.service;

import java.sql.ResultSet;  
import java.sql.SQLException;  

import org.junit.Test;  

import com.dbdao.mysql.mySqlConnection;  

public class loginService {  

    //導入mySqlConnection類  
    mySqlConnection mysqlCon=new mySqlConnection();  

    //準備sql語句  
    private String sql;  

    //影響行數(數據變更后,影響行數都是大于0,等于0時沒變更,所以說如果變更失敗,那么影響行數必定為負)  
    private int i=-1;  

    //結果集  
    private ResultSet rs;  

    /* 
     * 插入數據 
     * */  
    @Test  
    public void insert() {  
        // TODO Auto-generated method stub  

        //創建sql語句  
        sql="insert into t1(name,password) values(?,?)";  

        //創建object數組  
        Object[] object=new Object[]{"admin","123456"};  

        //執行sql語句  
        mysqlCon.doSql(sql, object);  

        //獲取影響行數  
        i=mysqlCon.getUpdateCount();  

        //判斷是否插入成功  
        if(i!=-1){    

            System.out.println("數據插入成功!");  

        }else{  

            System.out.println("數據插入失敗!");  

        }  

        //關閉鏈接  
        mysqlCon.getClose();  

    }  

    /* 
     * 刪除數據 
     * */  
    @Test  
    public void delete() {  
        // TODO Auto-generated method stub  

        //創建sql語句  
        sql="delete from t1 where id=?";  

        //創建object數組  
        Object[] object=new Object[]{3};  

        //執行sql語句  
        mysqlCon.doSql(sql, object);  

        //獲取影響行數  
        i=mysqlCon.getUpdateCount();  

        //判斷是否刪除成功  
        if(i!=-1){  

            System.out.println("數據刪除成功!");  

        }else{  

            System.out.println("數據刪除失敗!");  

        }  

        //關閉鏈接  
        mysqlCon.getClose();  

    }  

    /* 
     * 更新數據 
     * */  
    @Test  
    public void update() {  
        // TODO Auto-generated method stub  

        //創建sql語句  
        sql="update t1 set password=? where name=?";  

        //創建Object數組  
        Object[] object=new Object[]{"11","admin"};  

        //執行sql語句  
        mysqlCon.doSql(sql, object);  

        //獲取影響行數  
        i=mysqlCon.getUpdateCount();  

        //判斷數據是否更新成功  
        if(i!=-1){  

            System.out.println("數據更新成功!");  

        }else{  

            System.out.println("數據更新失敗!");  

        }  

        //關閉鏈接  
        mysqlCon.getClose();  

    }  

    /* 
     * 遍歷數據 
     * */  
    @Test  
    public void select() {  
        // TODO Auto-generated method stub  

        //創建sql語句  
        sql="select * from t1";  

        //執行sql語句  
        mysqlCon.doSql(sql, null);  

        //獲取結果集  
        rs=mysqlCon.getRS();  

        //判斷結果集是否為空  
        if(rs!=null){  

            try {  

                //將光標移動到結果集末端,注意此處不能使用rs.afterLast();否則為空值。  
                rs.last();  

                //獲取結果集行數  
                i=rs.getRow();  

                //判斷結果集是否存在  
                if(i>0){  

                    //將光標移動到結果集前端  
                    rs.beforeFirst();  

                    //循環遍歷所有行數  
                    while(rs.next()){  

                        //遍歷每行元素的內容  
                        String name=rs.getString("name");  
                        String password=rs.getString("password");  

                        //在控制臺打印出結果  
                        System.out.println("name:"+name+"   password:"+password);  

                    }  


                }else{  

                    System.out.println("結果集為空!");  

                }  

            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  


        }else{  

            System.out.println("結果集不存在!");  

        }  

        //關閉鏈接  
        mysqlCon.getClose();  

    }  

}  </pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!