学生信息管理系统+mysql数据库的链接

这个项目需要拥有java基础部分的知识(即javaSE部分)和mysql数据库(JDBC 也就是增删改查的意思) 以及用eclipse编译工具来链接mysql数据库等操作!


下面具体的讲解一下思路问题:

我们做一个具体 查询学生 增加学生 删除学生  保存学生到.txt文档等基本的操作   而学生具有的基本信息是:ID  姓名   

性别  电话号码 等等 这些学生的基本信息都在mysql数据库中已经设定了(包括长度等等) 因为每个基本的操作都需要连接数据库,那么我们就单独做一个数据库连接的函数,然后每个基本的操作函数首先进行数据库的链接,然后在各司其职!

下面我就给出集体的代码:在主函数里面的代码为:

package Testit;


import java.io.IOException;
import java.sql.*;
import java.util.Scanner;


public class Main {


public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
Student p = new Student();
        String name,sex,telephone,id;
        int age;   
ShowMenu();
Scanner scan = new Scanner(System.in);
int choice = scan.nextInt();
while (choice!=5) {
switch (choice) {
case 1:
Scanner scan5 = new Scanner(System.in);
System.out.println("请输入id");
id=  scan5.nextLine();
                p.setId(id);
Scanner scan1 = new Scanner(System.in);
System.out.println(" (1)请输入姓名");
name = scan1.nextLine();
             p.setName(name);

Scanner scan2 = new Scanner(System.in);
System.out.println(" (2)请输入性别");
        sex = scan2.nextLine();
        p.setSex(sex);
    
Scanner scan3 = new Scanner(System.in);
System.out.println(" (3)请输入年龄");
age=  scan3.nextInt();
p.setAge(age);
Scanner scan4 = new Scanner(System.in);
System.out.println(" (4)请输入电话号码");
   telephone = scan4.nextLine();
   p.setTelephone(telephone);
    
ShowMenu();
break;
case 2:
System.out.println("请输入要删除的学生的姓名:");
   Scanner scan6 = new Scanner(System.in);
   name = scan6.nextLine();
    
  p.delete(name);
  
ShowMenu();
break;
case 3:
p.show(p);
ShowMenu();
break;
case 4:
 
p.export("d:\\data.txt");
ShowMenu();
break;
 default  :
// System.out.println("再见!欢迎再次使用本系统。");
break;

}
choice = scan.nextInt();
}
      if(choice==5)
      {
    System.out.println("再见!欢迎再次使用本系统。");
      }
}


public static void ShowMenu() {
System.out.println(" **************************************");
System.out.println(" * 欢迎使用新趋势学生信息管理系统V1.0   *");
System.out.println(" *                                    *");
System.out.println(" * 请选择你要执行的命令:                             *");
System.out.println(" *                                    *");
System.out.println(" * 1.输入学生信息  2.删除学生信息               *");
System.out.println(" * 3.查询学生信息  4.导出学生信息               *");
System.out.println(" * 5.退出系统                                                   *");
System.out.println(" **************************************");
System.out.println(" 请输入你的选择:                                              ");
}


}

下面给出studenlt类中的代码:

package Testit;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


import java.sql.Statement;


import com.mysql.jdbc.PreparedStatement;


import java.sql.ResultSetMetaData;


public class Student {
private String name, sex, telephone;
private int age;
String id;


public String getId() {
return id;
}


public void setId(String id) {
this.id = id;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public String getSex() {
return sex;
}


public void setSex(String sex) {
this.sex = sex;
}


public String getTelephone() {
return telephone;
}


public void setTelephone(String telephone) {
this.telephone = telephone;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public void save(Student student) throws ClassNotFoundException, SQLException {


///Statement cp = student.getConn().createStatement();
String sql1;
sql1 = "insert into student values(?,?,?,?,?)";
PreparedStatement ps = (PreparedStatement) student.getConn().prepareStatement(sql1);
ps.setString(1, id);
ps.setString(2, name);
ps.setString(3, sex);
ps.setInt(4, age);
ps.setString(5, telephone);
ps.executeUpdate();
System.out.println("输入学生信息成功!");


}


public void delete(String name) throws ClassNotFoundException, SQLException {
Connection connection = getConn();
String sql2, sql;
///Statement st = connection.createStatement();
sql2 = "delete from student where name = ? ";
sql = "select * from student where name = ?";
PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql2);
ps.setString(1, name);
PreparedStatement pw = (PreparedStatement) connection.prepareStatement(sql);
pw.setString(1, name);
if (pw.executeQuery().next()) {
// pw.executeQuery().toString();

ps.executeUpdate();
System.out.println("删除学生"+name+"成功");
}
else
{
System.out.println("你输入的学生姓名不存在");
}


}


public void show(Student student) throws ClassNotFoundException, SQLException {


Statement cf = student.getConn().createStatement();
ResultSet rs = cf.executeQuery("select *from student");
ResultSetMetaData data = rs.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
System.out.print(data.getColumnName(i) + "\t");
}
System.out.println();
while (rs.next()) {
for (int i = 1; i <= 5; i++) {
System.out.print(rs.getString(i) + "\t");
}
System.out.println();
}


}


public void export(String fileName) throws ClassNotFoundException, SQLException, IOException {
Connection con = getConn();
Statement cn = con.createStatement();
ResultSet cp = cn.executeQuery("select *from student");
FileWriter fw = new FileWriter(fileName);
ResultSetMetaData data = cp.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
fw.write(data.getColumnName(i) + "\t");
}
while (cp.next()) {


fw.write("\r\n");
for (int i = 1; i <= 5; i++) {


fw.write(cp.getString(i) + "\t");
}


}
fw.close();
       System.out.println("文件导入成功");
}


public Connection getConn() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
// 创建一个连接
// DriverManaager为驱动程序
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student?useSSL=true", "root", "621366");
/// Statement st = conn.createStatement();
return conn;


}
}

这样我们就可以通过数据库的链接进行增删改查了,噢噢,提醒大家一下  数据库的工具用 Navicate for mysql 这个工具是比较好的哦!





你可能感兴趣的:(java项目)