使用jdbc連接數據庫的java小程序

1、數據庫要求:

mysql數據庫,在mysql數據庫中新建一個tbtest數據庫,在tbtest庫中新建person表。字段如下
    人員表(姓名(字符串),手機(字符串),地址(字符串))

CREATE TABLE `person` (
  `p_name` varchar(50) DEFAULT NULL,
  `p_number` varchar(50) DEFAULT NULL,
  `p_address` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 2、需要的jar包:

maven項目在pom.xml中<dependencies>里加入這個:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.8</version>
        </dependency>

簡單的java項目,在加入jar包,並導入項目依賴

mysql-connector-java5.0.8

3、新建java項目:

3.1、DBManager.java

創建jdbc工具類

package com.lemon.test;

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

public class DBManager {

	 //數據庫信息
    private static final String url = "jdbc:mysql://localhost:3306/tbtest";
    private static final String name = "com.mysql.jdbc.Driver";
    private static final String username = "root";
    private static final String password = "123456";
    
    private static Connection connection = null;
    private static PreparedStatement preparedStatement = null;

    //創建連接
    public DBManager(){
        try{
            Class.forName(name);
            connection = DriverManager.getConnection(url, username, password);

        }catch(Exception e){
            e.printStackTrace();
        }
    }

    //關閉連接
    private void close(){
        try{
            connection.close();
            preparedStatement.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    
    //查詢
    public void queryAll() throws SQLException{
    	String sql = "select * from person";
    	preparedStatement = connection.prepareStatement(sql);
    	
    	 String name,number,address;

         try
         {
             //執行sql語句
             ResultSet result = preparedStatement.executeQuery();

             //查詢到數據,對應賦值
             while(result.next()){
                 name = result.getString(1);
                 number = result.getString(2);
                 address = result.getString(3);

                 //顯示
                 System.out.println(name + ",\t" + number + ",\t" + address + ".\t");
             }

             result.close();

         }catch (Exception e){
             e.printStackTrace();
         }
    }
	
    //增加
    public void addPerson(String name ,String number ,String address) throws SQLException{
    	String sql = "insert into person (p_name,p_number,p_address) values (?,?,?)";
    	preparedStatement = connection.prepareStatement(sql);
    	preparedStatement.setString(1, name);
    	preparedStatement.setString(2, number);
    	preparedStatement.setString(3, address);
    	
    	int row = preparedStatement.executeUpdate();
    		if(row > 0){
    			System.out.println("添加成功!");
    	    }
    		preparedStatement.close();
    	    
    }
    
    //刪除
    public void delPersonByName(String name) throws SQLException{
    	String sql = "delete from person where p_name = ?";
    	//
    	preparedStatement = connection.prepareStatement(sql);
    	//完整sql語句
    	preparedStatement.setString(1, name);

    	int row = preparedStatement.executeUpdate();
    	if(row > 0){
    	    System.out.println("刪除成功!");
    	}else{
    	    System.out.println("請正確輸入需要刪除的姓名!");
    	}
    	preparedStatement.close();
    	    
    }
    
    //更新
    public void updatePerson(String name ,String number ,String address) throws SQLException{

    	String sql = "update person set";
    	if(number != null){
    		sql = sql + " p_number = ?";
    	}
    	if(number != null && address != null){
    	    sql = sql + ",";
        }
    	if(address != null){
    		sql = sql + "p_address = ?";
    	}
    	sql = sql + "where p_name = ?";
    	//
    	preparedStatement = connection.prepareStatement(sql);

    	int i = 1;
        //完整sql語句
        if(number != null){
            preparedStatement.setString(i, number);
            i++;
        }
        if(address != null){
            preparedStatement.setString(i, address);
            i++;
        }
        preparedStatement.setString(i, name);
        int row = preparedStatement.executeUpdate();
        if(row > 0){
            System.out.println("更新成功!");
        }else{
            System.out.println("請正確輸入需要更新的姓名!");
        }
        preparedStatement.close();
    }
}

2、main.java

簡單的java小程序

import com.lemon.test.DBManager;

import java.sql.SQLException;
import java.util.Scanner;

public class main {

    private static DBManager dbManager = new DBManager();//實例化數據庫連接

    public static void main(String[] args) throws SQLException {
        boolean flag = true; //程序結束標誌
        boolean flagNum = true; //操作數正確輸入標誌
        int num = 0; //操作數
        Scanner input =new Scanner(System.in);
        while( flag) {
            //輸出所有用戶信息
            printInfo();
            //初始化flagNum,重新輸入操作數
            flagNum = true;

            //輸入正確操作數
            while (flagNum){
                System.out.println("請輸入操作數[0-3]:");
                try {
                    //輸入操作數字
                    num = input.nextInt();
                    if( num < 0 || num >3){
                        int x = 1/0;
                    }
                    flagNum = false; //是數字,結束
                }catch (Exception e){
                    System.out.println("輸入有誤,請重新輸入!");
                    input.nextLine();
                }
            }

            //執行操作數對應的操作
            switch (num){
                //退出系統
                case 0:
                    flag = false;
                    System.out.println("****歡迎下次使用****");
                    break;
                //添加
                case 1:
                    System.out.println("****添加用戶信息****");
                    addPerson();
                    break;
                //刪除
                case 2:
                    System.out.println("****刪除用戶信息****");
                    delPerson();
                    break;
                 //修改
                case 3:
                    System.out.println("****修改用戶信息****");
                    updatePerson();
                    break;
            }
        }
    }
    //輸出操作提示信息
    public static void printInfo() throws SQLException {
        System.out.println("***********人員管理系統!***********");
        //輸出person所有信息
        System.out.println("姓名" + ",\t" + "電話" + ",\t\t" + "地址");
        dbManager.queryAll();
        System.out.println("************************************");
        System.out.println("1:添加新用戶信息、" + "2:刪除用戶信息、" + "3:修改用戶信息、" + "0:退出");
    }

    //添加用戶信息
    public static void addPerson() throws SQLException {
        Scanner input =new Scanner(System.in);
        System.out.println("請輸入姓名:");
        String name = input.nextLine();
        System.out.println("請輸入電話:");
        String number = input.nextLine();
        System.out.println("請輸入地址:");
        String address = input.nextLine();
        dbManager.addPerson(name,number,address);
    }
    //刪除用戶信息
    public static void delPerson() throws SQLException {
        Scanner input =new Scanner(System.in);
        System.out.println("請輸入需要刪除的用戶姓名:");
        String name = input.nextLine();
        dbManager.delPersonByName(name);
    }
    //修改用戶信息
    public static void updatePerson() throws SQLException {
        Scanner input =new Scanner(System.in);
        System.out.println("***請輸入需要修改的用戶信息***");
        System.out.println("請輸入姓名:");
        String name = input.nextLine();
        System.out.println("請輸入電話:");
        String number = input.nextLine();
        System.out.println("請輸入地址:");
        String address = input.nextLine();
        dbManager.updatePerson(name,number,address);
    }
}

3、直接運行mian.java,體驗下

不喜勿噴,新手上路,歡迎提出建議

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章