Java代码实现班级通讯录系统(连接mysql数据库)
package one;
import java.sql.*;
import java.util.Scanner;
public class AddressBook_Pro {
private static String connect = "jdbc:mysql:///studentinformation";
private static String user = "root";
private static String passward = "root";
private static String driver="com.mysql.cj.jdbc.Driver";
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
welcome();
System.out.println("请输入您的选择:");
int choice = sc.nextInt();
switch (choice){
case 1:
DataBaseAdd();
break;
case 2:
DataBaseDelete();
break;
case 3:
DataBaseChange();
break;
case 4:
DataBaseFindAll();
break;
case 5:
DataBaseFindsingle();
break;
case 6:
System.out.println("谢谢使用!");
System.exit(0);
break;
default:
System.out.println("您输入的信息有误");
break;
}
}
}
public static void welcome(){
System.out.println("***************欢迎来到学生信息管理系统!!****************");
System.out.println("----------1.添加学生通讯录信息--------------");
System.out.println("----------2.删除学生通讯录信息--------------");
System.out.println("----------3.修改学生通讯录信息--------------");
System.out.println("----------4.查询所有学生的通讯录信息---------");
System.out.println("----------5.按学号查询单个学生的通讯录信息----");
System.out.println("----------6.退出-------------------------");
}
public static void DataBaseAdd(){
Scanner sc = new Scanner(System.in);
Connection();
Connection conn = null;
Statement stmt = null;
ResultSet resultSet = null;
try {
String id;
String name;
String qq;
String phone;
String address;
//定义sql语句
String sql1 = "select * from addressbook";
//3.获取连接对象
conn = DriverManager.getConnection(connect, user, passward);
stmt = conn.createStatement();
resultSet = stmt.executeQuery(sql1);
while(true){
resultSet = stmt.executeQuery(sql1);
resultSet.next();
System.out.println("请输入学生学号:");
id = sc.next();
if(resultSet.isAfterLast()!=resultSet.isBeforeFirst()){
////isBeforeFirst()的作用是获取光标是否位于此 ResultSet 对象的第一行之前,而isAfterLast()的作用是获取光标是否位于此ResultSet 对象的最后一行之后,若这两个得到的值相等,则说明rs获得的内容为空;注意一点是rs获得的内容的判断不能用null来进行判断,若使用,则不能实现所要的结果。
if(resultSet.getString("id").equals(id)) {
System.out.println("您输入的学号已经存在,请重新输入!");
continue;
}else {
resultSet.close();
break;
}
}else {
resultSet.close();
break;
}
}
System.out.println("请输入学生姓名:");
name = sc.next();
System.out.println("请输入学生QQ:");
qq = sc.next();
System.out.println("请输入学生phone");
phone = sc.next();
System.out.println("请输入学生address");
address = sc.next();
//定义SQL
String sql = "insert into addressbook(id,name,qq,phone,address) value('"+id+"','"+name+"','"+ qq +"','"+phone+"','"+address+"')";
int count = stmt.executeUpdate(sql);
if(count>0){
System.out.println("添加成功!");
}else{
System.out.println("添加失败!");
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void DataBaseChange(){
Scanner sc = new Scanner(System.in);
Connection();
Connection conn = null;
Statement stmt = null;
ResultSet resultSet = null;
try{
int count =0;
String qq ;
String name ;
String phone ;
String address ;
System.out.println("请输入您要修改的学号: ");
String id = sc.next();
//获取连接对象
conn = DriverManager.getConnection(connect, user, passward);
//定义sql语句
String sql1 = "select * from addressbook where id = ('"+id+"')";
stmt = conn.createStatement();
resultSet = stmt.executeQuery(sql1);
while(resultSet.next()){
if(resultSet.getString("id").equals(id)) {
System.out.println("请输入学生姓名:");
name = sc.next();
System.out.println("请输入学生QQ:");
qq = sc.next();
System.out.println("请输入学生phone");
phone = sc.next();
System.out.println("请输入学生address");
address = sc.next();
String sql = "update addressbook set name='"+name+"',qq='"+qq+"',phone='"+phone+"',address='"+address+"' where id = '"+id+"' ";
int num = stmt.executeUpdate(sql);
if (num > 0) {
System.out.println("修改成功!");
} else {
System.out.println("修改失败!");
System.out.println("请检查输入的学号!");
}
count++;
break;
}
}
if(count ==0){
System.out.println("very sorry,您要输入的学生信息不存在,请重新输入!");
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void DataBaseDelete(){
Scanner sc = new Scanner(System.in);
Connection();
Connection conn = null;
Statement stmt = null;
try{//获取连接对象
conn = DriverManager.getConnection(connect, user, passward);
stmt = conn.createStatement();
System.out.println("请输入您要删除的学号: ");
String input = sc.next();
//定义sql语句
String sql = "delete from addressbook where id = ('"+input+"')";
int count = stmt.executeUpdate(sql);
if (count > 0) {
System.out.println("删除成功!");
} else {
System.out.println("删除失败!");
System.out.println("非常抱歉,您要删除的学生不存在,请重新输入!!!");
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void DataBaseFindsingle(){
Scanner sc = new Scanner(System.in);
Connection();
Connection conn = null;
Statement stmt = null;
ResultSet resultSet = null;
try{//获取连接对象
conn = DriverManager.getConnection(connect, user, passward);
stmt = conn.createStatement();
int count = 0;
System.out.println("请输入您要查询的学号: ");
String input = sc.next();
//定义sql语句
String sql = "select * from addressbook where id = ('"+input+"')";
resultSet = stmt.executeQuery(sql);
while(resultSet.next()){
if(resultSet.getString("id").equals(input)) {
String id;
String name;
String QQ;
String phone;
String address;
id = resultSet.getString("id");
name = resultSet.getString("name");
QQ = resultSet.getString("QQ");
phone = resultSet.getString("phone");
address = resultSet.getString("address");
System.out.println("学号" + "\t" + "\t" + "姓名" + "\t" + "\t" + "QQ" + "\t" + "\t" + "phone" + "\t" + "\t" + "address");
System.out.println(id + '\t' + "\t" + name + '\t' + "\t" + QQ + '\t' + "\t" + phone + '\t' + "\t" + address);
count++;
break;
}
}
if(count ==0){
System.out.println("没有该学号学生的通讯录信息,请检查输入的学号!!");
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void DataBaseFindAll(){
Connection conn = null;
Statement stmt =null ;
Connection();
try {
//定义sql
String sql = "select * from addressbook";
//3.获取连接对象
conn = DriverManager.getConnection(connect,user,passward);
stmt = conn.createStatement();
ResultSet count = stmt.executeQuery(sql);
if(count.next()==false){
System.out.println("非常抱歉,当前没有学生信息可供查看!");
conn.close();
}else {
ResultSet resultSet = stmt.executeQuery(sql);
String id;
String name;
String QQ;
String phone;
String address;
System.out.println("学号" + "\t" + "\t" + "姓名" + "\t" + "\t" + "QQ" + "\t" + "\t" + "phone" + "\t" + "\t" + "address");
while (resultSet.next()) {
id = resultSet.getString("id");
name = resultSet.getString("name");
QQ = resultSet.getString("QQ");
phone = resultSet.getString("phone");
address = resultSet.getString("address");
System.out.println(id + '\t' + "\t" + name + '\t' + "\t" + QQ + '\t' + "\t" + phone + '\t' + "\t" + address);
}
resultSet.close();
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void Connection(){
try {
//1.注册驱动
Class.forName(driver);
}catch (Exception e){
e.printStackTrace();
}
}
}
java版本:11
MySQL版本:8.0
数据库管理工具:Navicat
实现结果:


写的若有不对的的地方希望大佬多多指正。
本文介绍如何使用Java 11连接到MySQL 8.0数据库,通过jdbc实现班级通讯录系统。借助Navicat作为数据库管理工具,展示具体的实现过程和结果。
2190

被折叠的 条评论
为什么被折叠?



