DBUtilTest數據庫通用工具類java
package homework; import java.sql.*; /** * @ClassName: homework.DBUtilTest * @Description: 數據庫通用工具類 * @author: aweicy * @date: 2020/4/25 12:04 */ public class DBUtilTest { //將數據庫經常使用鏈接變量設置爲常量 private static final String DRIVERCLASS="com.mysql.jdbc.Driver"; private static final String DB_NAME="info_student"; private static final String URL="jdbc:mysql://127.0.0.1:3306/"+DB_NAME; private static final String JDBC_USERNAME="root"; private static final String JDBC_PASSWORD="gaowei123"; private static Connection conn; private static PreparedStatement pst; private static ResultSet rs; private static int executeUpdate; /** * 獲取數據庫鏈接 * @return conn */ public static Connection getConnection(){ try { Class.forName(DRIVERCLASS); conn=DriverManager.getConnection(URL,JDBC_USERNAME,JDBC_PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); }catch (SQLException e) { e.printStackTrace(); } return conn; } //通用查詢方法 public static ResultSet executeQuery(String sql,Object ...args){//可能有參數可能沒有參數 //判斷數據庫是否鏈接 if(conn==null){ conn=getConnection(); } try { //提交sql pst=conn.prepareStatement(sql); //設置參數 setValue(pst,args); //獲取到結果集 rs=pst.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } //通用的增刪改 public static int executeUpdate(String sql,Object ...args){ //判斷數據庫是否鏈接 if(conn==null){ conn=getConnection(); } try { pst=conn.prepareStatement(sql); //設置參數 setValue(pst,args); executeUpdate=pst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return executeUpdate; } //設置參數 public static void setValue(PreparedStatement pst,Object ...args){ //傳參 if(args!=null&&args.length>0){ for (int i = 0; i < args.length; i++) { try { pst.setObject(i+1,args[i]); } catch (SQLException e) { e.printStackTrace(); } } } } //關閉鏈接 public static void getClose(){ if(rs!=null){ try { rs.close(); rs=null; } catch (SQLException e) { e.printStackTrace(); } } if(pst!=null){ try { pst.close(); pst=null; } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); conn=null; } catch (SQLException e) { e.printStackTrace(); } } } }
Menu菜單類mysql
package homework; /** * @ClassName: Menu * @Description: TODO * @author: aweicy * @date: 2020/4/30 20:29 */ public class Menu { public void showMainMenu(){ System.out.println("***********************************************************"); System.out.println("* 學生信息系統 *"); System.out.println("* *"); System.out.println("***********************************************************"); System.out.println("* 1.添加數據 *"); System.out.println("* 2.修改數據 *"); System.out.println("* 3.查詢數據 *"); System.out.println("* 4.刪除數據 *"); System.out.println("***********************************************************"); System.out.println("請選擇你要進行的操做(請輸入對應的編號):"); } }
test類(主程序)sql
package homework; import org.junit.Test; import util.DBUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; /** * @ClassName: test * @Description: TODO * @author: aweicy * @date: 2020/4/25 12:15 */ public class test { public static void main(String[] args) { Scanner in=new Scanner(System.in); Menu menu=new Menu(); String index; while (true){ menu.showMainMenu(); index=in.next(); if(index.equals("1")){//添加功能 while(true){ System.out.println("請輸入學生姓名:"); String sName=in.next(); System.out.println("請輸入學生年齡:"); int sAge=in.nextInt(); Connection connection=DBUtilTest.getConnection(); String sql="INSERT INTO student(sid,sname,sage) VALUES (null,?,?)"; int executeUpdate=DBUtilTest.executeUpdate(sql,sName,sAge); if(executeUpdate>0){ System.out.println("信息錄入完成,肯定(1),從新輸入(2):"); index=in.next(); if(index.equals("1")){ System.out.println("數據添加成功,繼續添加(1),返回首頁(2):"); index=in.next(); if(index.equals("1")){ continue; }else if(index.equals("2")){ DBUtilTest.getClose(); System.out.println("請選擇:"); break; } } }else { System.out.println("信息錄入失敗"); DBUtilTest.getClose(); System.out.println("請選擇:"); } } continue; }else if(index.equals("2")){//修改功能 while (true){ System.out.println("請輸入你要修改的學員編號:"); int sID=in.nextInt(); Connection connection=DBUtilTest.getConnection(); String sql="select * from student where sid=?"; ResultSet rs=DBUtilTest.executeQuery(sql,sID); try { System.out.println("編號\t\t姓名\t\t年齡"); while (rs.next()){ System.out.print(rs.getInt(1)+"\t\t"); System.out.print(rs.getString(2)+"\t\t"); System.out.println(rs.getInt(3)); } }catch (SQLException e){ e.printStackTrace(); } DBUtilTest.getClose(); System.out.println("請輸入新姓名:"); String sName=in.next(); System.out.println("請輸入新年齡:"); int sAge=in.nextInt(); connection=DBUtilTest.getConnection(); sql="Update student set sname=?,sage=? where sid="+sID; int executeUpdate=DBUtilTest.executeUpdate(sql,sName,sAge); if(executeUpdate>0){ System.out.println("修改數據已接收,肯定修改(1),從新輸入(2):"); index=in.next(); if(index.equals("1")){ System.out.println("數據修改爲功,繼續修改(1),返回首頁(2):"); index=in.next(); if(index.equals("1")){ continue; }else if(index.equals("2")){ DBUtilTest.getClose(); System.out.println("請選擇:"); break; } } }else { System.out.println("數據修改失敗"); DBUtilTest.getClose(); System.out.println("請選擇:"); } } continue; }else if(index.equals("3")){//查詢功能 while (true){ System.out.println("請選擇你要查詢的方式 查詢全部數據(1),根據編號查詢(2)"); index=in.next(); if(index.equals("1")){ System.out.println("編號\t\t姓名\t\t年齡"); Connection connection=DBUtilTest.getConnection(); String sql="select * from student"; ResultSet rs=DBUtilTest.executeQuery(sql); try { while (rs.next()){ System.out.print(rs.getInt(1)+"\t\t"); System.out.print(rs.getString(2)+"\t\t"); System.out.println(rs.getInt(3)); } }catch (SQLException e){ e.printStackTrace(); } DBUtilTest.getClose(); }else if(index.equals("2")){ System.out.println("請輸入你要查詢的編號:"); int sID=in.nextInt(); Connection connection=DBUtilTest.getConnection(); String sql="select * from student where sid=?"; ResultSet rs=DBUtilTest.executeQuery(sql,sID); try { System.out.println("編號\t\t姓名\t\t年齡"); while (rs.next()){ System.out.print(rs.getInt(1)+"\t\t"); System.out.print(rs.getString(2)+"\t\t"); System.out.println(rs.getInt(3)); } }catch (SQLException e){ e.printStackTrace(); } DBUtilTest.getClose(); } System.out.println("從新查詢(1),返回首頁(2)"); System.out.println("請選擇:"); index=in.next(); if(index.equals("1")){ continue; } else if(index.equals("2")){ break; } } continue; }else if(index.equals("4")){//刪除功能 while (true){ System.out.println("請輸入你要刪除的編號:"); int sID=in.nextInt(); Connection connection=DBUtilTest.getConnection(); String sql="delete from student where sid="+sID; int executeUpdate=DBUtilTest.executeUpdate(sql); if(executeUpdate>0){ System.out.println("數據刪除成功,繼續刪除(1),返回首頁(2):"); index=in.next(); if(index.equals("1")){ continue; }else if(index.equals("2")){ DBUtilTest.getClose(); System.out.println("請選擇:"); break; } }else { System.out.println("你輸入的編號不存在,從新輸入(1),返回首頁(2)"); DBUtilTest.getClose(); System.out.println("請選擇:"); index=in.next(); if(index.equals("1")){ continue; }else if(index.equals("2")){ DBUtilTest.getClose(); System.out.println("請選擇:"); break; } } } continue; } } } }