JDBC---mysql数据库版学生管理系统(增删改查)

缺点:代码重复多,可以适当简化
首先在数据库中创建一个登入的用户表格,再创建一个学生信息表格
用户登入表:
在这里插入图片描述
学生信息表:
在这里插入图片描述
工具类:
连接数据库,导入表格

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Dbutils {
 	static private String drive;
	 static private String usl;
	 static private String username;
	 static private String password;
	 static{
	 try {
		   Properties pre = new Properties();
		   pre.load(new FileInputStream("co.properties"));
		   drive = pre.getProperty("drivename");
		   usl =pre.getProperty("url");
		   username =pre.getProperty("username");
		   password =pre.getProperty("password");
		  } catch (FileNotFoundException e1) {
		   e1.printStackTrace();
		  } catch (IOException e1) {
		   e1.printStackTrace();
		  }
		  try {
		   Class.forName(drive);
		  } catch (ClassNotFoundException e) {
		   e.printStackTrace();
		  }
		 }
	public static Connection Conn(){
	 	 Connection conn = null;
	  	try {
	  	 conn = DriverManager.getConnection(usl, username, password);
	 	 } catch (SQLException e) {
	  	 e.printStackTrace();
		  }
	 	 return conn;
		 }
	}
	
		 
			
	

工具包2:关闭工具包

public class Closeutils {
public static void closeAll(AutoCloseable... cs){
  for(AutoCloseable c : cs){
   if(c!=null){
    try {
     c.close();
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
 }
}

创建两个对象,一个user登入用户的对象,一个student对象

public class User {
	private String name;
 	private String passwd;
 	public User() {
  
	 }
	 @Override
	 public String toString() {
	  return "User [ name=" + name + ", passwd=" + passwd + "]";
	 }
	 public User( String name, String passwd) {
	  
	  this.name = name;
	  this.passwd = passwd;
	 }
	 public String getName() {
	  return name;
	 }
	 public void setName(String name) {
	  this.name = name;
	 }
	 public String getPasswd() {
	  return passwd;
	 }
	 public void setPasswd(String passwd) {
	  this.passwd = passwd;
	 }
	 
}
	 	
	
public class Student {
	private int id;
	 private String name;
	 private int age;
	 public Student() {
	 }
 
	 public Student(int id,String name, int age) {
	  this.id  =id;
	  this.name = name;
	  this.age = age;
	 }
	 public int getId() {
	  return id;
	 }
	 public void setId(int id) {
	  this.id = id;
	 }
	 @Override
	 public String toString() {
	  return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	 }
	 public String getName() {
	  return name;
	 }
	 public void setName(String name) {
	  this.name = name;
	 }
	 public int getAge() {
	  return age;
	 }
	 public void setAge(int age) {
	  this.age = age;
	 }
	 
}

学生信息系统执行增删该查操作

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import com.Connection.Closeutils;
import com.DButils.Dbutils;
public class Test {

 public static void main(String[] args) {
  System.out.println("\t\t学员管理系统");
  System.out.println("请输入用户名:");
  Scanner scanner = new Scanner(System.in);
  String name = scanner.next();
  System.out.println("请输入密码:");
  String passwd = scanner.next();
  if(login(new User(name,passwd))){
   System.out.println("登入成功");
  }else{
   return;
  }
  System.out.println("\t\t欢迎来到学生管理系统");
  System.out.println("**********************************************");
  do{
   System.out.println("\t\t1:添加信息");
   System.out.println("\t\t2:修改信息");
   System.out.println("\t\t3:查询信息");
   System.out.println("\t\t4:删除信息");
   System.out.println("请选择您的操作(按0退出):");
   int a = scanner.nextInt();
   switch(a){
   case 0:
     System.out.println("成功退出~~");
     return;
    case 1:
     System.out.println("请输入添加的学员姓名:");
     String a1 = scanner.next();
     System.out.println("请输入添加的学员年龄:");
     int b1 = scanner.nextInt();
     int a2 = panduan(a1,b1);
     if(a2 == 1){
      System.out.println("学员已存在,添加失败");
      break;
     }else {
      if(add(new Student(0,a1,b1))){
       System.out.println("添加成功~~");
      }
     }
     break;
     case 2:
     System.out.println("请输入要修改的学员id:");
     int c =scanner.nextInt();
     int d = panduan1(c);
     if(d == -1){
      System.out.println("要修改的学员不存在");
      break;
     }else {
      System.out.println("请输入要修改的学员姓名:");
      String f =scanner.next();
      System.out.println("请输入要修改的学员年龄:");
      int e =scanner.nextInt();
      if(riverse(new Student(c,f,e))){
       System.out.println("修改成功");
      }
     }
     
     break;
     case 3:
     FindAll();
     break;
    case 4:
     System.out.println("请输入要删除的学员id:");
     int a3 =scanner.nextInt();
     int a5 = panduan1(a3);
     if(a5 == -1){
      System.out.println("要删除的学员不存在");
     }else{
      if(delete(a3)){
       System.out.println("删除成功~~");
      }
     }
     break;
      }
  }while(true);
 }
 
 //修改
 private static boolean riverse(Student student) {
  Connection conn = null;
  PreparedStatement st = null;
  try {
   conn  = Dbutils.Conn();
   String sql="update student set name=?,age=? where id=?";
   st = conn.prepareStatement(sql);
   st.setString(1, student.getName());
   st.setInt(2, student.getAge());
   st.setInt(3, student.getId());
   int result = st.executeUpdate();; 
   return result>0;
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(st,conn);
  }
  return false;
 }
 
 //删除
 private static boolean delete(int a3) {
  Connection conn = null;
  PreparedStatement st = null;
  try {
   conn  = Dbutils.Conn();
   String sql="delete from student where id=?";
   st = conn.prepareStatement(sql);
   st.setInt(1, a3);
   int result = st.executeUpdate();; 
   return result>0;
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(st,conn);
  }
  return false;
 }
 
 //判断删除,修改的学生是否存在
 private static int panduan1(int a3) {
  int i = -1;
  Connection conn = null;
  PreparedStatement st = null;
  ResultSet r = null;
  try {
   conn  = Dbutils.Conn();
   String sql="select * from student";
   st = conn.prepareStatement(sql);
   r = st.executeQuery();
   while(r.next()){
    int id =r.getInt("id");
    if(a3 !=id ){
     i = 1;
     return i;
    }
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(r,st,conn);
  }
  return i;
 }
 
 //判断添加的学生是否存在
 private static int panduan(String a1, int b1) {
  int i = -1;
  Connection conn = null;
  PreparedStatement st = null;
  ResultSet r = null;
  try {
   conn  = Dbutils.Conn();
   String sql="select * from student";
   st = conn.prepareStatement(sql);
   r = st.executeQuery();
   while(r.next()){
    String name =r.getString("name");
    int age = r.getInt("age");
    if(a1.equals(name) && b1==age){
     i = 1;
     return i;
    }
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(r,st,conn);
  }
  return i;
 }
 
 //查询
 private static void FindAll() {
  Connection conn = null;
  PreparedStatement st = null;
  ResultSet r = null;
  try {
   conn  = Dbutils.Conn();
   String sql="select * from student";
   st = conn.prepareStatement(sql);
   r = st.executeQuery();
   while(r.next()){
    int id = r.getInt("id");
    String name =r.getString("name");
    int age = r.getInt("age");
    System.out.println(id+"=="+name+"=="+age);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(r,st,conn);
  }
 }
 
 //添加
 private static boolean add(Student student) {
  Connection conn = null;
  PreparedStatement st = null;
  try {
   conn  = Dbutils.Conn();
   String sql="insert into student(name,age) values(?,?)";
   st = conn.prepareStatement(sql);
   st.setString(1, student.getName());
   st.setInt(2, student.getAge());
   int result = st.executeUpdate();; 
   return result>0;
  } catch (SQLException e) {
   e.printStackTrace();
  }finally {
   Closeutils.closeAll(st,conn);
  }
  return false;
 }
 
 //登入
 private static boolean login(User user) {
  Connection conn = null;
  PreparedStatement prst = null;
  ResultSet rs    = null;
  try {
    conn = DBUtils.getConnection();
    String sql = "select count(1) from t_user where name=? and password=?";
    prst = conn.prepareStatement(sql);
    prst.setString(1, user.getName());
    prst.setString(2, user.getPassword());
    rs = prst.executeQuery();
    if(rs.next()){
     int result = rs.getInt(1);
     return result>0;
    }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtils.closeAll(rs,prst,conn);
  }
  return false;
 }
}

 

 
 
     
   
  
  


  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值