简单的图书管理系统(练习JDBC+Oracle数据库)

来源:互联网 发布:中国公安大学网络教育 编辑:程序博客网 时间:2024/05/17 01:15

这是一个简单的图书管理系统,对部分功能的进行了实现,主要就是练习对数据库的增删改查和逻辑的运用!

1、使用的Oracle数据库,先建数据库,并插入几条简单的数据



2、在MyEclipse中建立Web Project,命名为bookManager,建包结构如下


3、首先写dao包中的IBaseDao,然后用OracleBaseDao实现方法连接数据库(getConnection)和关闭连接(closeCon),代码如下 

package cn.dao.utils.impl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import cn.dao.utils.interfaces.IBaseDao;/** * 使用Oracle数据库 *  * @author CCQ *  */public class oracleBaseDao implements IBaseDao {static String DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";static String USER = "hope";static String PWD = "123456";@Overridepublic Connection getConn() throws Exception {// TODO Auto-generated method stubConnection conn = null;try {Class.forName(DRIVER_CLASS);conn = DriverManager.getConnection(URL, USER, PWD);} catch (Exception e) {throw new Exception(e.getMessage());}return conn;}@Overridepublic void closeConn(ResultSet rs, PreparedStatement ps, Connection conn)throws Exception {// TODO Auto-generated method stubtry {if (rs != null) {rs.close();}if (ps != null) {ps.close();}if (conn != null) {conn.close();}} catch (Exception e) {throw new Exception(e.getMessage());}}}


4、书写dao包中的UserDaoImpl,实现用户登录,再写bookDaoImpl,实现对图书的操作,代码如下

package cn.dao.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import cn.dao.interfaces.IUserDao;import cn.dao.utils.impl.oracleBaseDao;import cn.dao.utils.interfaces.IBaseDao;import cn.po.User;/** * 用户操作实现类 * @author CCQ * */public class UserDaoImpl implements IUserDao {IBaseDao baseDao = new oracleBaseDao();@Overridepublic User login(User user) throws Exception {// TODO Auto-generated method stubUser users = null;try {Connection conn = baseDao.getConn();String sql = "select * from users where username = ? and userpwd = ?";PreparedStatement ps = conn.prepareStatement(sql);ps.setObject(1, user.getUserName());ps.setObject(2, user.getUserPwd());ResultSet rs = ps.executeQuery();if(rs.next()){users = new User();users.setUserId(rs.getInt("userId"));users.setUserName(rs.getString("userName"));users.setUserPwd(rs.getString("userPwd"));}baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return users;}}
package cn.dao.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import cn.dao.interfaces.IBookDao;import cn.dao.utils.impl.oracleBaseDao;import cn.dao.utils.interfaces.IBaseDao;import cn.po.Book;/** * 对图书操作的实现类 *  * @author CCQ *  */public class BookDaoImpl implements IBookDao {IBaseDao baseDao = new oracleBaseDao();private Connection conn = null;private PreparedStatement ps = null;private ResultSet rs = null;int r = 0;@Overridepublic List<Book> findBooks() throws Exception {// TODO Auto-generated method stubList<Book> books = new ArrayList<Book>();try {conn = baseDao.getConn();String sql = "select * from books order by bookid";ps = conn.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {Book book = new Book();book.setBookId(rs.getInt("bookId"));book.setBookName(rs.getString("bookName"));book.setBookAutor(rs.getString("bookAutor"));book.setBookType(rs.getString("bookType"));book.setBookPrice(rs.getDouble("bookPrice"));books.add(book);}baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return books;}@Overridepublic int addBook(Book book) throws Exception {// TODO Auto-generated method stubtry {conn = baseDao.getConn();String sql = "insert into books values(?,?,?,?,?)";ps = conn.prepareStatement(sql);ps.setObject(1, book.getBookId());ps.setObject(2, book.getBookName());ps.setObject(3, book.getBookAutor());ps.setObject(4, book.getBookType());ps.setObject(5, book.getBookPrice());r = ps.executeUpdate();baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return r;}@Overridepublic Book findBookByBookName(String bookName) throws Exception {// TODO Auto-generated method stubBook book = null;try {conn = baseDao.getConn();String sql = "select * from books where bookname = ?";ps = conn.prepareStatement(sql);ps.setObject(1, bookName);rs = ps.executeQuery();if (rs.next()) {book = new Book();book.setBookId(rs.getInt("bookId"));book.setBookName(rs.getString("bookName"));book.setBookAutor(rs.getString("bookAutor"));book.setBookType(rs.getString("bookType"));book.setBookPrice(rs.getDouble("bookPrice"));}baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return book;}@Overridepublic int deleteBook(String bookName) throws Exception {// TODO Auto-generated method stubtry {conn = baseDao.getConn();String sql = "delete books where bookname = ?";ps = conn.prepareStatement(sql);ps.setObject(1, bookName);r = ps.executeUpdate();baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return r;}@Overridepublic int modifyBook(Book book) throws Exception {// TODO Auto-generated method stubtry {conn = baseDao.getConn();String sql = "update books set bookname = ?,bookautor = ?,booktype = ?,bookprice = ? where bookid = ?";ps = conn.prepareStatement(sql);ps.setObject(1, book.getBookName());ps.setObject(2, book.getBookAutor());ps.setObject(3, book.getBookType());ps.setObject(4, book.getBookPrice());ps.setObject(5, book.getBookId());r = ps.executeUpdate();baseDao.closeConn(rs, ps, conn);} catch (Exception e) {throw new Exception(e);}return r;}}
5、书写services包,中的接口类,和实现类,也就是调用相应的dao包的中方法(简单)。

6、书写一个BookManagerSys类来通过控制台输入验证功能是否正确,代码如下:

package cn.test;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import cn.po.Book;import cn.po.User;import cn.services.impl.BookServiceImpl;import cn.services.impl.UserServiceImpl;import cn.services.interfaces.IBookService;import cn.services.interfaces.IUserService;/** * 图书管理系统界面 *  * @author CCQ *  */public class BookManagerSys {IUserService userService = new UserServiceImpl();IBookService bookService = new BookServiceImpl();Scanner input = new Scanner(System.in);public void menu() throws Exception {User user = new User();System.out.println("\n\t图书管理系统登录界面");System.out.print("用户名:");user.setUserName(input.next());System.out.print("密    码:");user.setUserPwd(input.next());user = userService.login(user);if (user != null) {bmenu();} else {System.out.println("用户名或密码错误,请重新输入!");menu();}}public void bmenu() throws Exception {System.out.println("\n\t图书管理系统主界面");System.out.println("1.添加图书");System.out.println("2.查看所有图书信息");System.out.println("3.删除图书");System.out.println("4.修改图书信息");System.out.println("5.退出系统");System.out.print("请选择(1-5):");int op = input.nextInt();switch (op) {case 1:addBook();break;case 2:findBooks();break;case 3:deleteBook();break;case 4:modifyBook();break;case 5:System.out.println("谢谢使用图书管理系统!");System.exit(0);default:System.out.println("输入错误,请输入1-5数字");}}public void addBook() throws Exception {Book book = new Book();System.out.println("\n\t图书信息添加界面");System.out.print("图书编号:");book.setBookId(input.nextInt());System.out.print("图书名称:");book.setBookName(input.next());if (bookService.findBookByBookName(book.getBookName()) == null) {System.out.print("图书作者:");book.setBookAutor(input.next());System.out.print("图书类别:");book.setBookType(input.next());System.out.print("图书价格:");book.setBookPrice(input.nextDouble());int r = bookService.addBook(book);if (r != 0) {System.out.println(book.getBookName() + "添加成功!");bmenu();}} else {System.out.println(book.getBookName() + "已经存在,不可重复添加!");addBook();}}public void findBooks() throws Exception {System.out.println("\n\t\t查看所有图书信息界面");System.out.println("图书编号\t图书名称\t作者\t类别\t图书价格");List<Book> books = new ArrayList<Book>();books = bookService.findBooks();for (Book book : books) {System.out.println(book.getBookId() + "\t" + book.getBookName()+ "\t" + book.getBookAutor() + "\t" + book.getBookType()+ "\t" + book.getBookPrice());}bmenu();}public void deleteBook() throws Exception {System.out.println("\n\t\t删除图书信息界面");System.out.print("请输入删除图书名称:");String bookName = input.next();if (bookService.findBookByBookName(bookName) != null) {int r = bookService.deleteBook(bookName);if(r != 0){System.out.println("删除"+bookName+"成功!");bmenu();}} else {System.out.println("您输入的"+bookName+"不存在!");bmenu();}}public void modifyBook() throws Exception {Book book = new Book();System.out.println("\n\t\t修改图书信息界面");System.out.print("请输入修改的图书名称:");book.setBookName(input.next());if (bookService.findBookByBookName(book.getBookName()) != null) {book.setBookId(bookService.findBookByBookName(book.getBookName()).getBookId());System.out.print("请输入修改的图书作者:");book.setBookAutor(input.next());System.out.print("请输入修改的图书类别:");book.setBookType(input.next());System.out.print("请输入修改的图书价格:");book.setBookPrice(input.nextDouble());int r = bookService.modifyBook(book);if(r != 0){System.out.println("修改"+book.getBookName()+"成功!");bmenu();}else{System.out.println("修改失败!");}} else {System.out.println("您输入的"+book.getBookName()+"不存在!");bmenu();}}}

7、结果展示:





8、总结:

经过这一个星期的学习,具体把Java中的面对对象的思想进行了深刻的掌握,然后学习Oracle中的简单建表和一些简单地SQL的增删改查!感觉掌握的还是不错的,Oracle数据库用着还是比较的顺手,感觉很好用,下阶段我要继续加油哦!加油!加油!加油!重要的事情说三遍!


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被淘宝店家骂了怎么办 淘宝买家骂店家骚扰店家怎么办? 不想开淘宝店了怎么办 我是客服经常有客户骂人怎么办 淘宝直播前期没人看怎么办 淘宝被投诉商标侵权怎么办 淘宝后商家页面打不开了怎么办 淘宝遇到职业打假人怎么办 发票被复写上字怎么办 淘宝直播广告图片的商品怎么办 美团商家排名低怎么办 想成为淘宝主播怎么办 用移动流量很卡怎么办 淘宝店铺被恶意刷流量怎么办 一个想要公司权利的人怎么办 淘宝商家短信推广告怎么办 在群里乱发信息怎么办 支付宝扫不了码怎么办 淘宝商家收款不发货怎么办 淘宝申请退款商家拒绝怎么办 一件代发找不到供货商怎么办 淘宝京东兼职上当怎么办 退货时快递丢件怎么办 淘宝店铺代销1688有订单怎么办 供应商已解除合作无法代销怎么办 被代运营骗了怎么办 被淘宝运营骗了怎么办 淘宝运营公司骗了怎么办 被金融公司骗了怎么办 天猫品牌方投诉怎么办 淘宝卖家售假被扣了12分怎么办? 淘宝店被投诉了怎么办 淘宝商品被投诉侵权怎么办 淘宝小二胡乱判怎么办 淘宝卖家不干了怎么办 花呗剩下的钱怎么办 蚂蚁花呗无法使用怎么办 淘宝不能用花呗怎么办 淘宝号给冻结了怎么办 淘宝买家号封了怎么办 拼多多商家盗图怎么办