import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SqlLink {
static Scanner sc=new Scanner(System.in);
static Connection dbConn=null;
static Statement sta=null;
static ResultSet resultSet=null;
static List list=new ArrayList();
public SqlLink(String userName,String userPwd)
{
Scanner sc=new Scanner(System.in);
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//协议、主机地址、端口号、数据库名
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=MySqlTest";
try
{
Class.forName(driverName);
//指定3个参数,分别是连接地址,用户名 和密码
dbConn= DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("数据库连接成功");
// tableInit(); //初始化学生信息表
while (true)
{
DBLinkTestMain.mainList();
switch (sc.nextInt())
{
case 1:
setAddStudent();
break;
case 2:
delStudent();
break;
case 3:
revStudent();
break;
case 4:
queStudent();
break;
case 0:
return;
}
}
}
catch ( Exception e)
{
// TODO: handle exception
e.printStackTrace();
System.out.println("连接失败");
}
finally {
if (sta!=null)
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (dbConn!=null) {
try {
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void setAddStudent()//增
{
System.out.println("下面开始新增学生信息:");
System.out.println("学生学号:");
String num = sc.next();
System.out.println("学生姓名:");
String sname=sc.next();
System.out.println("学生性别:");
String sex=sc.next();
System.out.println("学生年龄:");
int age=sc.nextInt();
System.out.println("学生专业:");
String major=sc.next();
addStudent(num,sname,sex,age,major);
}
public static void addStudent(String num,String sname,String sex,int age,String major) //增
{
String addStu = "insert into 学生信息表 (学号,姓名,性别,年龄,专业) " +
"values ('"+num+"','"+sname+"','"+sex+"','"+age+"','"+major+"');";
try {
sta=dbConn.createStatement();
sta.executeUpdate(addStu);
System.out.println("数据添加成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void delStudent()//删
{
System.out.println("请输入要删除的学生学号:");
String num=sc.next();
String delStu="delete from 学生信息表 where 学号='"+num+"'";
try {
sta=dbConn.createStatement();
sta.executeUpdate(delStu);
System.out.println("数据删除成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void revStudent()//改
{
System.out.println("1.根据学号修改信息");
System.out.println("2.根据姓名修改信息");
int key=sc.nextInt();
if (key==1) {
System.out.println("请输入学号:");
numRevStudent(sc.next());
}
else if (key==2) {
System.out.println("请输入姓名:");
nameRevStudent(sc.next());
}
}
public static void numRevStudent(String num)//按学号改
{
numQueStudent(num);
System.out.println("请选择要修改的信息:");
System.out.println("1.学号 2.姓名 3.性别 4.年龄 5.专业");
int key = sc.nextInt();
String revString="";
switch (key)
{
case 1 :
revString="学号";
break;
case 2 :
revString="姓名";
break;
case 3 :
revString="性别";
break;
case 4 :
revString="年龄";
break;
case 5 :
revString="专业";
break;
}
System.out.println("请输入修改的字段");
String tostr=sc.next();
String str = "update 学生信息表 set "+revString+"='"+tostr+"'"+"where 学号='"+num+"'";
try {
sta=dbConn.createStatement();
sta.executeUpdate(str);
System.out.println("修改成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void nameRevStudent(String name)//按姓名改
{
numQueStudent(name);
System.out.println("请选择要修改的信息:");
System.out.println("1.学号 2.姓名 3.性别 4.年龄 5.专业");
int key = sc.nextInt();
String revString="";
switch (key)
{
case 1 :
revString="学号";
break;
case 2 :
revString="姓名";
break;
case 3 :
revString="性别";
break;
case 4 :
revString="年龄";
break;
case 5 :
revString="专业";
break;
}
System.out.println("请输入修改的字段");
String tostr=sc.next();
String str = "update 学生信息表 set "+revString+"='"+tostr+"'"+"where 姓名='"+name+"'";
try {
sta=dbConn.createStatement();
sta.executeUpdate(str);
System.out.println("修改成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void queStudent() //查
{
System.out.println("1.按学号查找");
System.out.println("2.按姓名查找");
System.out.println("3.按性别查找");
System.out.println("4.按专业查找");
switch (sc.nextInt())
{
case 1:
System.out.println("请输入学生学号");
numQueStudent(sc.next());
break;
case 2:
System.out.println("请输入学生姓名");
nameQueStudent(sc.next());
break;
case 3:
System.out.println("请输入性别");
sexQueStudent(sc.next());
break;
case 4:
System.out.println("请输入专业");
majorQueStudent(sc.next());
break;
}
}
public static void numQueStudent(String num)//按学号查
{
try {
sta=dbConn.createStatement();
String numQueStudent="select * from 学生信息表 where 学号='"+num+"'";
resultSet=sta.executeQuery(numQueStudent);
while (resultSet.next())
{
list.add(resultSet.getString("学号"));
list.add(resultSet.getString("姓名"));
list.add(resultSet.getString("性别"));
list.add(resultSet.getString("年龄"));
list.add(resultSet.getString("专业"));
}
} catch (SQLException e) {
e.printStackTrace();
}
int count=0;
for (int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
count++;
if (count%5==0)
System.out.println();
}
}
public static void nameQueStudent(String name)//按姓名查
{
try {
sta=dbConn.createStatement();
String nameQueStudent="select * from 学生信息表 where 姓名='"+name+"'";
resultSet=sta.executeQuery(nameQueStudent);
while (resultSet.next())
{
list.add(resultSet.getString("学号"));
list.add(resultSet.getString("姓名"));
list.add(resultSet.getString("性别"));
list.add(resultSet.getString("年龄"));
list.add(resultSet.getString("专业"));
}
} catch (SQLException e) {
e.printStackTrace();
}
int count=0;
for (int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
count++;
if (count%5==0)
System.out.println();
}
}
public static void sexQueStudent(String sex)//按性别查
{
try {
sta=dbConn.createStatement();
String sexQueStudent="select * from 学生信息表 where 性别='"+sex+"'";
resultSet=sta.executeQuery(sexQueStudent);
while (resultSet.next())
{
list.add(resultSet.getString("学号"));
list.add(resultSet.getString("姓名"));
list.add(resultSet.getString("性别"));
list.add(resultSet.getString("年龄"));
list.add(resultSet.getString("专业"));
}
} catch (SQLException e) {
e.printStackTrace();
}
int count=0;
for (int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
count++;
if (count%5==0)
System.out.println();
}
}
public static void majorQueStudent(String major)//按专业查
{
try {
sta=dbConn.createStatement();
String majorQueStudent="select * from 学生信息表 where 专业='"+major+"'";
resultSet=sta.executeQuery(majorQueStudent);
while (resultSet.next())
{
list.add(resultSet.getString("学号"));
list.add(resultSet.getString("姓名"));
list.add(resultSet.getString("性别"));
list.add(resultSet.getString("年龄"));
list.add(resultSet.getString("专业"));
}
} catch (SQLException e) {
e.printStackTrace();
}
int count=0;
for (int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
count++;
if (count%5==0)
System.out.println();
}
}
public static void tableInit()
{
String creTab = "create table 学生信息表(学号 varchar(15) primary key," +
"姓名 varchar(5) unique , 性别 varchar(2),年龄 int ," +
"专业 varchar(10))";
try {
sta=dbConn.createStatement();
int count=sta.executeUpdate(creTab);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
import java.util.Scanner;
public class DBLinkTestMain {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
boolean flag=true;
String userName = null;
String userPwd = null;
while (true)
{
System.out.println("请输入数据库用户名:");
userName = sc.next();
System.out.println("请输入密码:");
userPwd = sc.next();
flag=isNameOrPwd(userName,userPwd);
if (flag)
break;
else
System.out.println("用户名或密码输入错误,请重新输入:");
}
SqlLink sLink1 = new SqlLink(userName,userPwd);
}
public static void mainList() //根菜单
{
System.out.println("-----------------欢迎进入学生学籍管理系统--------------------");
System.out.println("-------------------------主菜单----------------------------");
System.out.println("请按选项选择你需要的功能:");
System.out.println("1.新增学生数据");
System.out.println("2.删除学生数据");
System.out.println("3.修改学生数据");
System.out.println("4.查询学生数据");
System.out.println("0.退出");
}
public static boolean isNameOrPwd(String userName,String userPwd)
{
//检测用户名密码
if (userName.equals("TangHao")&&userPwd.equals("tanghao6.1"))
return true;
return false;
}
}