mysql資料庫的連線以及增刪改查Java程式碼實現(PreparedStatement版)
阿新 • • 發佈:2018-12-27
資料庫:
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');
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 { //結果集關閉方法 if(rs!=null){ rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //關閉宣告的sql語句 try { //關閉宣告的sql語句方法 if(pstmt!=null){ pstmt.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //解除安裝驅動 try { //驅動解除安裝方法 if(con!=null){ con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
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(); } }