一、书籍管理系统代码展示
本文是作者为了熟练使用JDBC技术而做的练手项目,其中应用了DBUtil工具类的知识,我会在代码注释中将整个项目尽量详尽的解释一遍,将会展现其实现代码以及附属的DBUtil工具类和几个自定义类(首先是实现代码):
//JDBC实现的书籍管理系统
public class ClientManage {
public static void main(String[] args) {
print();
while (true) {
menu();
}
}
//输出的书籍管理系统的进入界面
private static void print() {
System.out.println("*********************************");
System.out.println("*\t\t\t\t\t\t*");
System.out.println("*\t欢迎进入书籍管理系统\t\t*");
System.out.println("*\t\t\t\t\t\t*");
System.out.println("*********************************");
}
//本类中定义一个判断名字是否重复的方法,用于判断出版社名字是否已存在,并起到了简化实现代码的作用
static boolean exist(String sql, String name) {
class RowMapper implements IRowMapper{
boolean state;
@Override
//内部类:利用了多态,是实际执行的方法体
public void rowMapper(ResultSet res) {
try {
if (res.next()) {
state = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//建立内部类对象,为接下来的查询方法的执行做准备
RowMapper rowMapper = new RowMapper();
//执行DBUtil工具类中的查询方法,利用了多态,同时执行了之前创建的rowMapper对象中重写的方法体
DBUtil.select(sql, rowMapper,name);
//返回查询结果
return rowMapper.state;
}
//此方法也是用于判断出版社名字是否已存在,不过返回值不同:如果存在则返回此出版社的ID值
static String isExist(String sql, String name) {
class RowMapper implements IRowMapper{
String id = null;
@Override
public void rowMapper(ResultSet res) {
try {
if (res.next()) {
id = res.getString("id");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
RowMapper rowMapper = new RowMapper();
DBUtil.select(sql, rowMapper,name);
return rowMapper.id;
}
static String isExist1(String sql, String id) {
class RowMapper implements IRowMapper{
String publisherName = null;
@Override
public void rowMapper(ResultSet res) {
try {
if (res.next()) {
publisherName = res.getString("name");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
RowMapper rowMapper = new RowMapper();
DBUtil.select(sql, rowMapper,id);
return rowMapper.publisherName;
}
private static void menu() {
System.out.println("1、出版社管理");
System.out.println("2、书籍管理");
System.out.println("3、退出");
System.out.println("请输入操作,按Enter键结束...");
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
switch (option) {
case 1:
System.out.println("1、添加出版社信息");
System.out.println("2、删除出版社信息");
System.out.println("3、修改出版社信息");
System.out.println("4、查询出版社信息");
int option1 = scanner.nextInt();
switch (option1) {
case 1:{
System.out.println("请输入出版社名字:");
String name = scanner.next();
String sql = "select * from publisher where name=?";
if (exist(sql,name)) {
System.out.println("系统中已经有该出版社");
return;
} else {
System.out.println("请输入出版社地址:");
String address = scanner.next();
String id = UUID.randomUUID().toString();
sql = "insert into publisher(id,name,address) values(?,?,?)";
//判断是否添加成功并执行添加操作
if (DBUtil.update(sql