JAVA的JDBC連接數據庫以及讀取數據庫數據


一、下載數據庫JDBC驅動

     1、1:Mysql驅動

        https://dev.mysql.com/downloads/connector/

 

 

 

下載得到的是一個壓縮包,解壓后到里面尋找文件:mysql-connector-java-8.0.12.jar

這個:mysql-connector-java-8.0.12.jar就是我們要導入到jJAVA項目中。

二、導入數據庫驅動包

    這次我是應用Intellje IDEA開發軟件,如果應用eclipse直接把包復制到項目中的lib中即可。

或者:

找到你的包所在位置

然后點擊Apply按鈕后點擊OK

結果:

三、代碼實現

  1、建包

  

建類:

package com.yangwansheng.test.util;

import java.sql.*;

public class MysqlJdbcUtil {
    private static String driver = "com.mysql.jdbc.Driver";//驅動
    //數據庫
    private static String url = "jdbc:mysql://localhost:3306/worksql?useUnicode=true&characterEncoding=UTF-8";
    private static String user = "YangWanSheng";//用戶名
    private static String pwd = "Wansheng";//密碼
    private static Connection conn = null;//連接對象
    private static Statement stat = null;//執行語句對象

    //打開數據庫連接
    public static void open() {
        try {
            //加載驅動
            Class.forName("com.mysql.jdbc.Driver");
            //打開連接--實例化數據庫連接對象
            conn = DriverManager.getConnection(url, user, pwd);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //關閉數據庫連接對象,釋放內存
    public static void close() {
        try {
            //判斷數據庫是否處於連接中
            if (conn != null && conn.isClosed()) {
                conn.close();
            }
            if (stat != null) {
                stat.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /***
     * 查詢所有數據
     */
    public static ResultSet executeQuery(String sql) {
        try {
            open();
            stat = conn.createStatement();
            return stat.executeQuery(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 條件查詢、分頁查詢
     * @param sql 數據庫執行語句
     * @param o 參數
     * @return 反回一個集合命令
     */
    public static ResultSet executeQuery(String sql,Object... o){
        try {
            open();
            PreparedStatement pst=conn.prepareStatement(sql);
            for(int i=0;i<o.length;i++)
                pst.setObject(i+1, o[i]);
            return pst.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**執行增、刪、改*/
    public static int executUpeate(String sql, Object... obj) {
        try {
            open();
            PreparedStatement pst = conn.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {
                pst.setObject(i + 1, obj[i]);
            }
            stat = pst;
            return pst.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }
}

四、jdbcUtil類的調用

  4、1:創建bo實體類

  

package com.yangwansheng.test.bo;

public class StudentCourse {
    private int id;
    private String Sno;
    private String Cno;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSno() {
        return Sno;
    }

    public void setSno(String sno) {
        Sno = sno;
    }

    public String getCno() {
        return Cno;
    }

    public void setCno(String cno) {
        Cno = cno;
    }

    public StudentCourse(int id, String sno, String cno) {
        this.id = id;
        Sno = sno;
        Cno = cno;
    }
    public StudentCourse(){}

    @Override
    public String toString() {
        return "StudentCourse{" +
                "id=" + id +
                ", Sno='" + Sno + '\'' +
                ", Cno='" + Cno + '\'' +
                '}';
    }
}

 

  4、2:數據庫訪問層DAO

package com.yangwansheng.test.dao;

import com.yangwansheng.test.bo.StudentCourse;
import com.yangwansheng.test.util.MysqlJdbcUtil;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class StudentCourseDao {
    /**查詢所有的學生選課表的信息*/
    public List<StudentCourse> getAllStudentCourse(){
        List<StudentCourse> list = new ArrayList<>();
        String sql = "SELECT `StudentCourse`.id, `Course`.Cname, `Student`.Sname FROM `StudentCourse`";
        sql +=" LEFT JOIN `Course` ON `StudentCourse`.Cno = `Course`.Cno ";
        sql +=" LEFT JOIN `Student` ON `StudentCourse`.Sno = `Student`.Sno LIMIT 0,5";
        ResultSet rs = MysqlJdbcUtil.executeQuery(sql);
        try{
            while (rs.next()){
                StudentCourse stucou = new StudentCourse(
                        rs.getInt("id"),rs.getString("Cname"),
                        rs.getString("Sname")
                );
                list.add(stucou);
            }
            return list;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            MysqlJdbcUtil.close();
        }
        return null;
    }

    /**
     * 分頁查詢
     * @param state
     * @param end
     * @return
     */
    public List<StudentCourse> getPageStudentCourse(int state, int end){
        List<StudentCourse> list = new ArrayList<>();
        String sql = "SELECT `StudentCourse`.id, `Course`.Cname, `Student`.Sname FROM `StudentCourse`";
        sql +=" LEFT JOIN `Course` ON `StudentCourse`.Cno = `Course`.Cno ";
        sql +=" LEFT JOIN `Student` ON `StudentCourse`.Sno = `Student`.Sno LIMIT ?,?";
        ResultSet rs = MysqlJdbcUtil.executeQuery(sql,state,end);
        try{
            while (rs.next()){
                StudentCourse stucou = new StudentCourse(
                        rs.getInt("id"),rs.getString("Cname"),
                        rs.getString("Sname")
                );
                list.add(stucou);
            }
            return list;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            MysqlJdbcUtil.close();
        }
        return null;
    }

    //修改
    public int updateSc(int id ,String Cno){
        String sql ="update StudentCourse set Cno = ? where id=? ";
        int i = MysqlJdbcUtil.executUpeate(sql,Cno,id);
        return i;
    }

    /**
     * 添加
     * @return 大於一添加成功
     */
    public int addSc(String sno, String con){
        String sql ="insert into StudentCourse(Sno,Cno) VALUES(?,?);";
        int i = MysqlJdbcUtil.executUpeate(sql,sno,con);
        return i;
    }

    /**
     * 刪除
     * @param id 
     * @return 大於1執行成功
     */
    public int delSc(int id){
        String sql ="delete from StudentCourse where id=?;";
        int i = MysqlJdbcUtil.executUpeate(sql,id);
        return i;
    }
}

 

 4、3:創建測試類

package com.yangwansheng.test.test;

import com.yangwansheng.test.bo.StudentCourse;
import com.yangwansheng.test.dao.StudentCourseDao;

public class MysqlTest {
    public static void main(String[] args) {
        StudentCourseDao SCdao = new StudentCourseDao();
        System.out.println(SCdao.getAllStudentCourse());
    }
}

 

結果:

 


免責聲明!

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



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