使用JDBC写一个学生管理系统

使用jdbc连接数据库对学生表进行操作,对登录进行验证,按照id进行查询,按照姓名进行模糊查询,查询所有学生信息,添加其他学生信息,修改个人信息,退出该系统。

数据库sql

-- Create table
create table STU
(
  id        NUMBER not null,
  stuname   NVARCHAR2(20),
  stupsword NVARCHAR2(20),
  schname   NVARCHAR2(50),
  stuage    NUMBER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table STU
  add constraint STU_PK primary key (ID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

如果数据库sql无法执行,可以手动建立数据库

id number 主键

stuname  nvarchar(20)

stupsword nvarchar(20)

schword nvarchar(50)

stuage number

该系统的启动类

package com.stumanager.controller;

package com.stumanager.controller;
import java.util.List;
import java.util.Scanner;
import com.stumanager.entity.Stu;
import com.stumanager.service.StuService;
import com.stumanager.service.serviceImpl.StuServiceImpl;
public class StuManager {
	public static void main(String[] args) {
		System.out.println("欢迎来到学生管理系统");
		int count=3;
		while (true) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入用户名");
		String stuname=sc.nextLine();
		System.out.println("请输入密码");
		String stupsword=sc.nextLine();
		StuService stus=new StuServiceImpl();
		Stu stu=stus.prelogin(stuname, stupsword);
		
		if (stu == null) {
			if (count == 1) {
				System.out.println("失败次数过多");
				break;
			}
			System.out.println("用户名或密码错误,请重新输入!您还有" + --count + "次机会。");
		} else {
			System.out.println("欢迎" + stuname + "进入本系统。。。。。。。您的学校是:" + stu.getSchname() + ",您的年龄是:" + stu.getStuage());
			while (true) {
				System.out.println("**************************************");
				System.out.println("按照ID查询请输入。。。。。。。。。1");
				System.out.println("按照姓名模糊查询请输入。。。。。2");
				System.out.println("查询所有信息请输入。。。。。。。。3");
				System.out.println("添加其他学生信息请输入。。。。。4");
				System.out.println("修改个人学生信息请输入。。。。。。5");
				System.out.println("退出请输入。。。。。。。。。。。。。。。。。。。9");
				System.out.println("**************************************");
				
				int key = sc.nextInt();
				switch (key) {
				case 1:
					System.out.println("查询学生的ID。。。。。。。。。");
					Scanner scc = new Scanner(System.in);
					int id = scc.nextInt();
					Stu stuu = stus.queryByID(id);
					if (stuu == null) {
						System.out.println("没有符合条件的学员信息");
					} else {
						System.out.println(stuu);
					}
					break;
				case 2:
					System.out.println("请输入想查找的名字。。。。。。。。。");
					Scanner sci = new Scanner(System.in);
					String sn = sci.nextLine();
					
					List<Stu> stu2 = stus.queryByName(sn);
					if (stu2 == null) {
						System.out.println("没有符合条件的学员信息");
					} else {
						System.out.println(stu2);
					}
					break;
				case 3:
					System.out.println("全部学员信息");
					List<Stu> l = stus.queryAll();
					System.out.println(l);
					break;
				case 4:
					System.out.println("添加学员信息,请输入学员信息");
					Scanner in=new Scanner(System.in);
					System.out.println("请输入学员姓名");
					String stuname1=in.nextLine();
					System.out.println("请输入学员密码");
					String stupsword1=in.nextLine();
					System.out.println("请输入学员学校");
					String schname1=in.nextLine();
					System.out.println("请输入学员年龄");
					int age1=in.nextInt();
					Stu stu3=new Stu(0,stuname1,stupsword1,schname1,age1);
					int count1=stus.addStu(stu3);
					if(count1>0) {
						System.out.println("添加学员成功");
					}else {
						System.out.println("添加学员失败");
					}
					break;
				case 5:
					int uid=stu.getId();
					System.out.println("请输入想更改的学员信息");
					Scanner ini=new Scanner(System.in);
					System.out.println("请输入学员姓名");
					String stuname2=ini.nextLine();
					System.out.println("请输入学员密码");
					String stupsword2=ini.nextLine();
					System.out.println("请输入学员学校");
					String schname2=ini.nextLine();
					System.out.println("请输入学员年龄");
					int age2=ini.nextInt();
					Stu stu4=new Stu(0,stuname2,stupsword2,schname2,age2);
					int count2=stus.changeStu(stu4,uid);
					if(count2>0) {
						System.out.println("更改学员成功");
					}else {
						System.out.println("更改学员失败");
					}
					break;
				case 9:
					System.out.println("退出成功,欢迎下次再来。。。");
					System.exit(0);
					// break;
				default:
					System.out.println("请输入指定的数字");
					break;
				}
			}
		}
		}
	}
}

package com.stumanager.dao;

package com.stumanager.dao;

import java.util.List;

import com.stumanager.entity.Stu;

public interface StuDao {
	// 用户登录
	public Stu login(String stuname,String stupsword);
	
	// 用户安全登录
	public Stu prelogin(String stuname,String stupsword);
	
	// 1.根据id查询用户
	Stu queryByID(int id);
	
	// 2.根据姓名模糊查询
	List<Stu> queryByName(String stuname);
	
	// 3.查询所有信息
	List<Stu> queryAll();
	
	// 4.添加其他学生信息
	int addStu(Stu stu);
	
	// 5.修改学生个人信息
	int changeStu(Stu stu,int uid);

}

package com.stumanager.dao;
 

package com.stumanager.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.stumanager.entity.Stu;
import com.stumanager.utils.StuUtils;

public class StuDaoImpl implements StuDao {
	
	@Override
	public Stu login(String stuname,String stupsword) {
		
		Connection con=StuUtils.getCon();
		Statement st=null;
		ResultSet rs=null;
		Stu stu=null;
		try {
			st=con.createStatement();
			
			String sql1="select * from stu where stuname='"+stuname+"'and stupsword='"+stupsword+"'";
			rs=st.executeQuery(sql1);
			
			while(rs.next()) {
				
				stu=new Stu();
				stu.setId(rs.getInt("id"));
				stu.setStuname(rs.getString("stuname"));
				stu.setStupsword(rs.getString("STUPSWORD"));
				stu.setSchname(rs.getString("SCHNAME"));
				stu.setStuage(rs.getInt("stuage"));
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, st, rs);
		}
		return stu;
	}

	
	@Override
	public Stu prelogin(String stuname, String stupsword) {
		Connection con=StuUtils.getCon();
		PreparedStatement pst=null;
		//Statement st=null;
		ResultSet rs=null;
		Stu stu=null;
		try {
			//st=con.createStatement();
			
			String sql1="select * from stu where stuname=? and stupsword=?";
			
			pst=con.prepareStatement(sql1);
			
			pst.setString(1, stuname);
			pst.setString(2,stupsword);
			
			
			rs=pst.executeQuery();
			
			while(rs.next()) {
				stu=new Stu();
				stu.setId(rs.getInt("id"));
				stu.setStuname(rs.getString("stuname"));
				stu.setStupsword(rs.getString("STUPSWORD"));
				stu.setSchname(rs.getString("SCHNAME"));
				stu.setStuage(rs.getInt("stuage"));
			}
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, pst, rs);
		}
		return stu;
	}
	
	
	//根据id查询学生信息
	@Override
	public Stu queryByID(int id) {
		Connection con=StuUtils.getCon();
		Statement st=null;
		ResultSet rs=null;
		Stu stu=null;
		try {
			st=con.createStatement();
			
			String sql1="select * from stu where id="+id;
			rs=st.executeQuery(sql1);
			
			while(rs.next()) {
				
				stu=new Stu();
				stu.setId(rs.getInt("id"));
				stu.setStuname(rs.getString("stuname"));
				stu.setStupsword(rs.getString("STUPSWORD"));
				stu.setSchname(rs.getString("SCHNAME"));
				stu.setStuage(rs.getInt("stuage"));
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, st, rs);
		}
		return stu;
	}

	// 3.查询所有信息
	@Override
	public List<Stu> queryAll() {
		Connection con = StuUtils.getCon();
		Statement st = null;
		ResultSet rs = null;
		List<Stu> l = new ArrayList<Stu>();
		try {
			st = con.createStatement();
			String sql = "select * from stu ";
			rs = st.executeQuery(sql);
			while(rs.next()) {
				Stu stu = new Stu();
				stu.setId(rs.getInt("id"));
				stu.setStuname(rs.getString("stuname"));
				stu.setStupsword(rs.getString("stupsword"));
				stu.setSchname(rs.getString("schname"));
				stu.setStuage(rs.getInt("stuage"));
				//System.out.println(stu.toString());
				l.add(stu);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			StuUtils.closeCon(con, st, rs);
		}
		
		return l;
	}
	// 2.根据姓名模糊查询   
	@Override
	public List<Stu> queryByName(String stuname) {
		Connection con=StuUtils.getCon();
		Statement st=null;
		ResultSet rs=null;
		Stu stu=null;
		List<Stu> l = new ArrayList<Stu>();
		try {
			st=con.createStatement();
			
			String sql1="select * from stu where stuname like '%"+stuname+"%'";
			rs=st.executeQuery(sql1);
			
			while(rs.next()) {
				
				stu=new Stu();
				stu.setId(rs.getInt("id"));
				stu.setStuname(rs.getString("stuname"));
				stu.setStupsword(rs.getString("STUPSWORD"));
				stu.setSchname(rs.getString("SCHNAME"));
				stu.setStuage(rs.getInt("stuage"));
				
				l.add(stu);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, st, rs);
		}
		return l;
	}
	// 4.添加其他学生信息
	@Override
	public int addStu(Stu stu) {
		Connection con=StuUtils.getCon();
		Statement st=null;
		ResultSet rs=null;
		int count=0;
		try {
			st=con.createStatement();
			
//			System.out.println("**************");
			String sql="select max(id) maxid from stu";
			rs=st.executeQuery(sql);
			int maxid=0;
//			System.out.println(rs);
			while(rs.next()) {
				maxid=rs.getInt("maxid");
			}
			
			int nowId=maxid+1;
			
//			System.out.println(nowId);
//			System.out.println(stu.getStuname());
//			System.out.println(stu.getStupsword());
//			System.out.println(stu.getSchname());
//			System.out.println(stu.getStuage());
			String sql1="insert into stu values("+nowId+",'"+stu.getStuname()+"','"+stu.getStupsword()+"','"+stu.getSchname()+"',"+stu.getStuage()+")";
			count=st.executeUpdate(sql1);
			return count;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, st, rs);
		}
		
		return count;
		
	}
	// 5.修改学生个人信息  
	@Override
	public int changeStu(Stu stu,int uid) {
		
		Connection con=StuUtils.getCon();
		Statement st=null;
		ResultSet rs=null;
		
		int count=0;
		try {
			st=con.createStatement();
			String sql1="update stu set stuname='"+stu.getStuname()+"',stupsword='"+stu.getStupsword()+"',schname='"+stu.getSchname()+"',stuage="+stu.getStuage()+" where id="+uid;
			count=st.executeUpdate(sql1);
			return count;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			StuUtils.closeCon(con, st, rs);
		}
		return count;
	}



}

package com.stumanager.entity;
 

package com.stumanager.entity;

public class Stu {
	private int id;
	private String stuname;
	private String stupsword;
	private String schname;
	private int stuage;
	
	public Stu() {
		super();
	}
	public Stu(int id, String stuname, String stupsword, String schname, int stuage) {
		super();
		this.id = id;
		this.stuname = stuname;
		this.stupsword = stupsword;
		this.schname = schname;
		this.stuage = stuage;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStuname() {
		return stuname;
	}
	public void setStuname(String stuname) {
		this.stuname = stuname;
	}
	public String getStupsword() {
		return stupsword;
	}
	public void setStupsword(String stupsword) {
		this.stupsword = stupsword;
	}
	public String getSchname() {
		return schname;
	}
	public void setSchname(String schname) {
		this.schname = schname;
	}
	public int getStuage() {
		return stuage;
	}
	public void setStuage(int stuage) {
		this.stuage = stuage;
	}
	@Override
	public String toString() {
		return "Stu [id=" + id + ", stuname=" + stuname + ", stupsword=" + stupsword + ", schname=" + schname
				+ ", stuage=" + stuage + "]";
	}
	

}

package com.stumanager.service;

package com.stumanager.service;

import java.util.List;

import com.stumanager.entity.Stu;

public interface StuService {
	
	// 用户登录
	public Stu login(String stuname,String stupsword);
	// 用户安全登录
	public Stu prelogin(String stuname,String stupsword);
	
	// 1.根据id查询用户
	Stu queryByID(int id);
		
	// 2.根据姓名模糊查询
	List<Stu> queryByName(String stuname);
		
	// 3.查询所有信息
	List<Stu> queryAll();
		
	// 4.添加其他学生信息
	int addStu(Stu stu);
		
	// 5.修改学生个人信息
	int changeStu(Stu stu,int uid);

}

package com.stumanager.service.serviceImpl;

package com.stumanager.service.serviceImpl;

import java.util.List;

import com.stumanager.dao.StuDao;
import com.stumanager.dao.StuDaoImpl;
import com.stumanager.entity.Stu;
import com.stumanager.service.StuService;

public class StuServiceImpl implements StuService {

	@Override
	public Stu login(String stuname, String stupsword) {
		Stu stu=null;
		if (stuname.length()<3||stupsword.length()<3) {
			return stu;
		}else {	
			StuDao stuDao=new StuDaoImpl();
			stu=stuDao.login(stuname, stupsword);
			return stu;
		}
	}
	
	@Override
	public Stu prelogin(String stuname, String stupsword) {
		Stu stu=null;
		if (stuname.length()<3||stupsword.length()<3) {
			return stu;
		}else {	
			StuDao stuDao=new StuDaoImpl();
			stu=stuDao.prelogin(stuname, stupsword);
			return stu;
		}
	}

	@Override
	public Stu queryByID(int id) {
		Stu stu=null;
		StuDao stuDao=new StuDaoImpl();
		stu=stuDao.queryByID(id);
		return stu;
	}

	@Override
	public List<Stu> queryAll() {
		return new StuDaoImpl().queryAll();
	}

	@Override
	public List<Stu> queryByName(String stuname) {
		return new StuDaoImpl().queryByName(stuname);
	}

	@Override
	public int addStu(Stu stu) {
		return new StuDaoImpl().addStu(stu);
		
	}

	@Override
	public int changeStu(Stu stu,int uid) {
		return new StuDaoImpl().changeStu(stu, uid);
	}

	

}

如果你的数据库是oracle请使用这个配置类

package com.stumanager.utils;

package com.stumanager.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class StuUtils {
	
	//开启
	public static Connection getCon() {
		String url="jdbc:oracle:thin:@localhost:1521:你选择的库";
		String username="你的账号";
		String passworld="你的密码";
		Connection con=null;
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con=DriverManager.getConnection(url, username, passworld);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return con;
	}
	
	//关闭
	public static void closeCon(Connection con,Statement st,ResultSet rs) {
		
		try {
			if (rs != null)
				rs.close();
			if (st != null)
				st.close();
			if (con != null)
				con.close();
			} catch (SQLException e) {
			// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		
	}

}

如果你的数据库是mysql请使用这个配置类

package com.stumanager.utils;

package com.stumanager.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class StuMysqlUtils {
	
	//开启
	public static Connection getCon() {
		String url="jdbc:mysql://localhost:3306/你的数据库";
		String username="你的账号";
		String passworld="你的密码";
		Connection con=null;
		
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			con=DriverManager.getConnection(url, username, passworld);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return con;
	}
	
	//关闭
	public static void closeCon(Connection con,Statement st,ResultSet rs) {
		
		try {
			if (rs != null)
				rs.close();
			if (st != null)
				st.close();
			if (con != null)
				con.close();
			} catch (SQLException e) {
			// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		
	}

}

实际演示

欢迎来到学生管理系统
请输入用户名
qwe
请输入密码
123456
欢迎qwe进入本系统。。。。。。。您的学校是:ccu,您的年龄是:34
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
1
查询学生的ID。。。。。。。。。
1
Stu [id=1, stuname=qwe, stupsword=123456, schname=ccu, stuage=34]
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
2
请输入想查找的名字。。。。。。。。。
w
[Stu [id=1, stuname=qwe, stupsword=123456, schname=ccu, stuage=34], Stu [id=2, stuname=wer, stupsword=123456, schname=dhee, stuage=27]]
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
3
全部学员信息
[Stu [id=1, stuname=qwe, stupsword=123456, schname=ccu, stuage=34], Stu [id=2, stuname=wer, stupsword=123456, schname=dhee, stuage=27], Stu [id=3, stuname=ert, stupsword=123456, schname=dhc, stuage=28], Stu [id=8, stuname=zxc, stupsword=123456, schname=cvb, stuage=23], Stu [id=5, stuname=rty, stupsword=123456, schname=dhce, stuage=22], Stu [id=6, stuname=rty, stupsword=123456, schname=dhce, stuage=21], Stu [id=9, stuname=cvb, stupsword=123456, schname=bnm, stuage=34], Stu [id=7, stuname=zxc, stupsword=123456, schname=fgh, stuage=23]]
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
4
添加学员信息,请输入学员信息
请输入学员姓名
fgh
请输入学员密码
123456
请输入学员学校
hjk
请输入学员年龄
45
添加学员成功
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
5
请输入想更改的学员信息
请输入学员姓名
qwe
请输入学员密码
123456
请输入学员学校
ccu
请输入学员年龄
23
更改学员成功
**************************************
按照ID查询请输入。。。。。。。。。1
按照姓名模糊查询请输入。。。。。2
查询所有信息请输入。。。。。。。。3
添加其他学生信息请输入。。。。。4
修改个人学生信息请输入。。。。。。5
退出请输入。。。。。。。。。。。。。。。。。。。9
**************************************
9

退出成功,欢迎下次再来

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗灵JAVA入侵了你的世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值