使用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,体验下

不喜勿喷,新手上路,欢迎提出建议

发布了143 篇原创文章 · 获赞 40 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/LemonSnm/article/details/101521582