使用JDBC创建出版社和书籍管理系统

1.需求

已知如下两个表:
	publisher id name(唯一) address
	book id isbn name publisher_id
	欢迎进入书籍管理系统
	1.出版社管理:增、删(name)、改(name)、查(name)
	2.书籍管理:增、删(name)、改(name)、查(name)
	3.退出

2.log4j.properties 为什么
3.db.properties 为什么
4.PropertiesUtil
5.DBUtil
6.IRowMapper
7.PublisherManager
8.BookManager
9.Client
一.首先在mysql数据库软件中建立如下两个表

create table publisher(
	   id char(36) primary key,
	   name varchar(24) unique,
	   address varchar(120)
)   
create table book(
	   id char(36) primary key,
	   isbn varchar(12) unique,
	   name varchar(24),
	   publisher_id char(36),
	   foreign key(publisher_id) references publisher(id)
)

关于SQL语句中约束的知识在下面博客中提及过
https://blog.csdn.net/qq_44724446/article/details/90027794
https://blog.csdn.net/qq_44724446/article/details/90031272
log4j为什么用如何配置,查看
https://blog.csdn.net/qq_44724446/article/details/90044781
properties为什么用,如何配置,java代码的实现-封装的工具类PropertiesUtil查看
https://blog.csdn.net/qq_44724446/article/details/90048065
DBUtilIRowMapper查看
https://blog.csdn.net/qq_44724446/article/details/89918464
当时未考虑到SQL注入的情况,所以补充代码,引入PreparedStatement接口的概念,

//关于防止sql注入的步骤参考如下
http://www.cnblogs.com/flei/p/6727520.html

创建36位UUID的工具类

import java.util.UUID;
public class StringUtil {
	public static String getId() {
		return UUID.randomUUID().toString();
	}
}

创建用于出版社系统实现增删改查的封装类

import java.sql.ResultSet;
import java.util.Scanner; 
public class PublisherManager {
   
	static Scanner sc= new Scanner(System.in);
	/**
	 * 出版社管理
	 */
	public static void pManager() {
   
		System.out.println("请输入出版社管理操作:");
		System.out.println("1.添加出版社信息");
		System.out.println("2.删除出版社信息");
		System.out.println("3.修改出版社信息");
		System.out.println("4.查询出版社信息");
		System.out.println("请输入操作,按enter键结束");
		int option = sc.nextInt();
		switch (option) {
   
		case 1:
			pInsert();
			break;
		case 2:
			pDelete();
			break;
		case 3:
			pUpdate();
			break;
		case 4:
			pSelect();
			break;
		default:
			System.out.println("Sorry,there is not the " + option + " option,请重新输入选择:");
			break;
		}
	}
 
	/**
	 * 添加出版社信息
	 */
	public static void pInsert() {
   
 
		String id = StringUtil.getId();
		System.out.println("请输入要添加的出版社的名字");
		String name = sc.next();
		if (new PublisherManager().exit(name)) {
    // 判断出版社是否存在
			System.out.println("出版社名字不允许重复,无法添加,操作停止");
			return;
		}
		System.out.println("请输入要添加的出版社的地址");
		String address = sc.next();
		String sql = "insert into publisher (id,name,address) values (?,?,?)";
		if (DButil.upDate(sql, id, name, address)) {
   
			System.out.println("添加信息成功");
			return;
		}
		System.out.println("系统错误,添加信息失败");
 
	}
 
	/**
	 * 删除出版社信息
	 */
	public static void pDelete() {
   	
		System.out.println("请输入要删除的出版社的名字");
		String name = sc.next();
		if (!new PublisherManager().exit(name)) {
    // 判断出版社是否存在,不存在没办法删除
			System.out.println("出版社名字不存在,无法删除,操作停止");
			return;
		}
		String sql = "delete from publisher where name=?";
		if (DButil.upDate(sql, name)) {
   
			System
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值