缺点:代码重复多,可以适当简化
首先在数据库中创建一个登入的用户表格,再创建一个学生信息表格
用户登入表:
学生信息表:
工具类:
连接数据库,导入表格
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;
}
}