使用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退出成功,欢迎下次再来