一、下載數據庫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()); } }
結果:

