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,體驗下
不喜勿噴,新手上路,歡迎提出建議