1、系统进行一个分析
图书管理,
添加图书 、修改图书、删除图书、查看图书
读者管理,
读者添加,读者删除,读者基本信息的修改,读者查看列表, 借书,还书
系统管理
注册 ,登录, 设置管理员
2、进行数据库表创建
图书表,
DROP TABLE IF EXISTS `book_tb`;
CREATE TABLE `book_tb` (
`b_id` int(11) NOT NULL AUTO_INCREMENT,
`b_name` varchar(32) NOT NULL,
`b_author` varchar(20) NOT NULL,
`b_press` varchar(32) NOT NULL,
`b_price` double(32,0) DEFAULT NULL,
`b_number` int(11) DEFAULT NULL,
PRIMARY KEY (`b_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
读者表(用户),
DROP TABLE IF EXISTS `read_tb`;
CREATE TABLE `read_tb` (
`r_id` int(11) NOT NULL AUTO_INCREMENT,
`r_name` varchar(32) DEFAULT NULL,
`r_account` varchar(32) NOT NULL,
`r_password` varchar(32) NOT NULL,
`r_type` int(11) DEFAULT NULL,
PRIMARY KEY (`r_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
读者和图书之间的关系表,
-- ----------------------------
-- Table structure for read_book_tb
-- ----------------------------
DROP TABLE IF EXISTS `read_book_tb`;
CREATE TABLE `read_book_tb` (
`b_id` int(11) NOT NULL,
`r_id` int(11) NOT NULL,
PRIMARY KEY (`b_id`,`r_id`),
KEY `fk_rb_rid` (`r_id`),
CONSTRAINT `fk_rb_bid` FOREIGN KEY (`b_id`) REFERENCES `book_tb` (`b_id`),
CONSTRAINT `fk_rb_rid` FOREIGN KEY (`r_id`) REFERENCES `read_tb` (`r_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3、创建对应数据库表的实体类
图书类
public class Book
{
private int id;
private
String name;
private
String author;
private
String press;
private double price;
private int number;
}
读者类
public class Reader
{
private int id;
private
String name;
private
String account;
private
String password;
private int type;
}
图书管
/**
* 描述图书管
* @author Administrator
*
*/
public class Bsm {
private Scanner sc = new Scanner(System.in);
private JdbcTemplate jt = new JdbcTemplate();
/**
* 登录
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Reader login() {
System.out.println("请输入账号密码:");
String account = sc.next();
String password = sc.next();
String sql = "select * from read_tb where r_account=? and r_password=?";
List list = new ArrayList();
list.add(account);
list.add(password);
ResultSet rs = jt.query(sql, list);
Reader r = null;
try {
if(rs.next()) {
r = new Reader(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5));
}
} catch (SQLException e) {
e.printStackTrace();
}
return r;
}
/**
* 注册
*/
public boolean register() {
System.out.println("请输入读者信息:账号,密码");
String account = sc.next();
String password = sc.next();
String sql = "insert into read_tb (r_account,r_password) values(?,?)";
List list = new ArrayList();
list.add(account);
list.add(password);
boolean isok = jt.updateData(sql,list);
jt.closeRes();
return isok;
}
}
4、创建这个系统的业务逻辑类
测试类(程序开始的地方)
package com.hyserver.bsm.action;
import java.util.Scanner;
import com.hyserver.bsm.model.Reader;
/**
* 程序开始的地方
* @author Administrator
*/
public class Test
{
public static void main(String[] args)
{
//
可以获得控制台输入的工具
Scanner sc = new
Scanner(System.in);
Bsm bsm = new Bsm();
//
判断是否退出系统
int flag
= 0;
do {
System.out.println("hyserver图书管理系统:
1、登录 2、注册");
int type=sc.nextInt();
if(type==2)
{
//注册
boolean isok = bsm.register();
if(isok)
System.out.println("注册成功");
else
System.out.println("注册失败");
}else if(type==1)
{
//
登录
Reader loginR = bsm.login();
System.out.println("欢迎"+loginR.getName()+"登录hyserver");
}
System.out.println("是否要退出系统!0/1");
flag = sc.nextInt();
if(flag!=0)
{
//
跳出循环 就是退出系统
break;
}
}while(flag==0);
System.out.println("欢迎下次再来!");
}
}
5、在登录成功以后,我们要展现的是,对应的管理模块。
图书管理,
读者管理,
/**
* 读者的管理
* @param loginR
* @throws SQLException
*/
private static void
readManager(Reader loginR) throws SQLException
{
System.out.println("1、修改
2、删除 3、添加 4、查看");
int type = sc.nextInt();
if(type ==
1 ) {
System.out.println("请输入要查看的读者编号:");
int rid = sc.nextInt();
queryReader(rid);
//修改
System.out.println("请再次输入读者信息,不包括编号");
String name = sc.next();
String account = sc.next();
String password = sc.next();
int rtype = sc.nextInt();
String sql = "update
read_tb set r_name = ? ,r_account=?,r_password=? ,r_type=? where r_id =?";
List params = new ArrayList();
params.add(name);
params.add(account);
params.add(password);
params.add(rtype);
params.add(rid);
boolean isok = jt.updateData(sql, params);
jt.closeRes();
System.out.println("修改成功");
}else if(type==4)
{
System.out.println("请输入要查看的读者编号:");
int rid = sc.nextInt();
queryReader(rid);
}
}
/**
* 根据读者id 查看这个读者信息
* @throws SQLException
*/
private static void
queryReader(int rid) throws SQLException
{
String sql = "select
* from read_tb where r_id = "+rid;
ResultSet rs =jt.query(sql);
while(rs.next())
{
System.out.println(rs.getInt(1)+"---姓名"+rs.getString(2)+"---账号:"+rs.getString(3)+"密码:"+rs.getString(4)+"---"+rs.getInt(5));
}
}
系统管理。
6、系统管理的设置管理员。
/**
* 系统管理
*/
private static void
sysManager(Reader loginR)
{
System.out.println("请输入要设置的读者编号:");
int rid = sc.nextInt();
String sql = "update
read_tb set r_type = 1 where r_id = "+rid;
boolean isok = jt.updateData(sql);
jt.myCommit();
System.out.println("设置成功");
jt.closeRes();
}
本文介绍了一个图书管理系统的详细设计过程,包括需求分析、数据库设计、实体类定义、业务逻辑实现及系统交互流程。系统具备图书与读者管理功能,并支持登录与注册。
2789

被折叠的 条评论
为什么被折叠?



