用上篇博客的DBUtil工具类写的学生管理系统,可实现数据的增删改查以及账户的登陆注册
mysql数据库名:usa
两张表:user(存放姓名name和学号id)、user_info(存放用户名uN和密码password)
IRowMapper接口
package com.jd.util;
import java.sql.ResultSet;
public interface IRowMapper{
void rowMapper(ResultSet rs);
}
db.properties文档
jdbc.url=jdbc:mysql://localhost:3306/usa
jdbc.uN=root
jdbc.password=root
propertiesUtil
package com.jd.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesUtil {
static Properties properties = new Properties();
static {
InputStream inputStream = PropertiesUtil.class.getClassLoader().getResourceAsStream("db.properties");
try {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getValue(String key) {
return properties.getProperty(key);
}
}
学生管理系统
package jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import com.jd.util.DBUtil;
import com.jd.util.IRowMapper;
public class Main {
public static void main(String[] args) {
while(true) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入数字选择登录(1)或注册(2)");
int x = scan.nextInt();
switch(x) {
case 1 :{
System.out.println("请输入用户名");
String uN = scan.next();
String sql = "select * from user_info where uN = ?";
if(!DBUtil.exist(sql,uN)) {
System.out.println("用户名不存在");
break;
}
System.out.println("请输入密码");
String password = scan.next();
sql = "select * from user_info where uN = "+uN+" and password = ?";
if(DBUtil.exist(sql, password)) {
System.out.println("登录成功!");
while (true) {
menu();
}
}else {
System.out.println("密码错误");
break;
}
}
case 2 :{
System.out.println("请输入用户名");
String uN = scan.next();
String sql = "select * from user_info where uN = ?";
if(DBUtil.exist(sql,uN)) {
System.out.println("用户名已存在");
break;
}
System.out.println("请输入密码");
String password = scan.next();
sql = "insert into user_info (uN,password) values(?,?)";
DBUtil.login(sql,uN,password);
break;
}
default:{
System.out.println("输入不合法");
}
}
}
}
public static void menu() {
System.out.println("1.增");
System.out.println("2.删");
System.out.println("3.改");
System.out.println("4.查");
System.out.println("请输入数字。。。");
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
switch(n) {
case 1 :{
System.out.println("请输入学号");
String id = scan.next();
String sql = "select * from user where id = ?";
if(DBUtil.exist(sql,id)) {
System.out.println("学号重复");
return;
}
System.out.println("请输入姓名");
String name = scan.next();
sql = "insert into user (id,name) values(?,?)";
if (DBUtil.update(sql,id,name)) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
break;
}
case 2 :{
System.out.println("请输入学号");
String id = scan.next();
String sql = "select * from user where id = ?";
if(!DBUtil.exist(sql,id)) {
System.out.println("不存在此人");
return;
}
sql = "delete from user where id = ?";
if (DBUtil.update(sql,id)) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
break;
}
case 3 :{
System.out.println("请输入学号");
String id = scan.next();
String sql = "select * from user where id = ?";
if(!DBUtil.exist(sql,id)) {
System.out.println("不存在此人");
return;
}
System.out.println("改后的名字是");
String name = scan.next();
sql = "update user set name =? where id =?";
if (DBUtil.update(sql,name,id)) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
break;
}
case 4 :{
class RowMapper implements IRowMapper{
@Override
public void rowMapper(ResultSet rs) {
try {
if(rs.next()) {
String name = rs.getString("name");
System.out.println("name="+name);
}else {
System.out.println("不存在");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
System.out.println("请输入学号");
String id = scan.next();
if(!DBUtil.exist("select * from user where id = ?",id)) {
System.out.println("不存在此人");
return;
}
DBUtil.select("select name from user where id = ?",new RowMapper(),id);
break;
}
default :{
System.out.println("数字不合法");
}
}
}
}