图书管理系统java版

本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询、插入、删除、修改。
内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
源码:

BookInfo.java

 * 项目名称:图书管理系统
 * 版本:  1.0
 * 创建者: 张俊强
 * 创建时间:2016/5/26
 * */
package librarySystem; 

import java.awt.*; 

import javax.swing.*; 

import java.awt.event.*;
import java.sql.*; 

@SuppressWarnings("serial")
public class BookInfo extends JFrame implements ActionListener{
  //主角面上的控件
  private JLabel inputLabel;
  private JTextField inputText;
  private JButton searchBut; 

  private JTable bookTable;
  private JScrollPane bookScroll;
  private JButton addBut;
  private JButton modifyBut;
  private JButton deleteBut;
  private JButton refreshBut;
  private BookTableModel bookTableModel;
  public static void main(String[] args) throws SQLException {
    // TODO Auto-generated method stub
    BookInfo bookInfo=new BookInfo();
    bookInfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    bookInfo.setBounds(350, 150, 600, 400);
    bookInfo.setVisible(true);
//   bookInfo.importSQL();//导出数据
    bookInfo.setMinWindowLayout();//设置数据
  }
  public BookInfo() throws SQLException{
    //创建主界面上的控件
    inputLabel=new JLabel("请输入书名:");
    inputText=new JTextField(10);
    searchBut=new JButton("查询");
    bookTableModel=new BookTableModel(); 

    bookTable=new JTable(bookTableModel);
    bookScroll=new JScrollPane(bookTable); 

    addBut=new JButton("添加");
    modifyBut=new JButton("修改");
    deleteBut=new JButton("删除");
    refreshBut=new JButton("刷新");
    searchBut.addActionListener(this);
    addBut.addActionListener(this);
    refreshBut.addActionListener(this);
    modifyBut.addActionListener(this);
    deleteBut.addActionListener(this); 

  } 

  void setMinWindowLayout(){
    //主界面布局
    Container con1=new Container();
    con1.setLayout(new FlowLayout());
    con1.add(inputLabel);
    con1.add(inputText);
    con1.add(searchBut);
    con1.add(refreshBut);
    Container con2=new Container();
    con2.setLayout(new FlowLayout());
    con2.add(addBut);
    con2.add(modifyBut);
    con2.add(deleteBut);
    this.setLayout(new BorderLayout());
    this.add(con1,BorderLayout.NORTH);
    this.add(bookScroll,BorderLayout.CENTER);
    this.add(con2,BorderLayout.SOUTH);
    this.validate();
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==searchBut){
      if(!this.inputText.getText().equals("")){
        String bookName=this.inputText.getText();
        String sql="SELECT * FROM book_info WHERE book_name ='"+bookName+"'";
        try {
        bookTableModel=new BookTableModel(sql);
        bookTable.setModel(bookTableModel);
      } catch (SQLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
      } 

      }else{
        JOptionPane.showMessageDialog(this,"输入不能为空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
    }
    else if(e.getSource()==addBut){
      @SuppressWarnings("unused")
      AddBookDialog addWin=new AddBookDialog(this,"添加图书",true);
      this.refreshTable();
    }
    else if(e.getSource()==refreshBut){
      this.refreshTable();
    }
    else if(e.getSource()==deleteBut){
      int rowNum=bookTable.getSelectedRow();
      if(rowNum<0||rowNum>bookTable.getRowCount()){
        JOptionPane.showMessageDialog(this,"未选中", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        //System.out.print(bookName);
        int n = JOptionPane.showConfirmDialog(null, "确认删除吗?", "确认删除框", JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          String bookNum=(String) bookTable.getValueAt(rowNum, 0);
          String sql="DELETE FROM book_info WHERE book_num= '"+bookNum+"'";
          bookTableModel.deleteBook(sql);
          this.refreshTable();
          JOptionPane.showMessageDialog(this,"删除成功", "提示",JOptionPane.PLAIN_MESSAGE);
        } else if (n == JOptionPane.NO_OPTION) {
          return;
        }
      }
    }
    else if(e.getSource()==modifyBut){
      bookTable.setModel(bookTableModel);
      int rowNum=bookTable.getSelectedRow();
      if(rowNum<0||rowNum>bookTable.getRowCount()){
        JOptionPane.showMessageDialog(this,"未选中", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        @SuppressWarnings("unused")
        ModifyBook modifyWin=new ModifyBook(this,"修改信息",true,bookTableModel,rowNum);
        this.refreshTable();
      }
    } 

  }
  public void refreshTable(){
    BookTableModel searchBook;
    try {
      searchBook = new BookTableModel("SELECT * FROM book_info");
      bookTable.setModel(searchBook);
      bookTableModel=searchBook;
    } catch (SQLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    }
  }
}

BookTableModel.java

package librarySystem;
import java.sql.*;
import java.util.*; 

/*
 * 图书表模型
 * */
import javax.swing.table.*;
@SuppressWarnings("serial")
public class BookTableModel extends AbstractTableModel{
  //表的元素
  private Vector<Vector<String>> rowData;
  private Vector<String> colName;
  // 数据库
  private PreparedStatement stmt;
  private ResultSet result;
  public BookTableModel(String sql) throws SQLException{
    this.initData(sql);
  }
  public BookTableModel() throws SQLException{
    this.initData("SELECT * FROM book_info");
  }
  public void initData(String sql) throws SQLException{
    setRowData(new Vector<Vector<String>>());
    setColName(new Vector<String>());
    getColName().add("书号");
    getColName().add("书名");
    getColName().add("作者");
    getColName().add("出版社");
    getColName().add("出版时间");
    getColName().add("价格");
    /*
     * 数据库的导入
     * */
    try {
      Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    String url= "jdbc:mysql://localhost:3306/device";
    String user="root";
    String password="zjq1314520";
    Connection con=DriverManager.getConnection(url,user,password);
    stmt = con.prepareStatement(sql);
    result=stmt.executeQuery();
    importSQL();
  }
  void importSQL() throws SQLException{
    // TODO Auto-generated method stub
    @SuppressWarnings("unused")
    boolean signNull=true;
    while(result.next()){
      Vector<String> item=new Vector<String>();
      for(int i=1;i<7;i++){
        item.add(result.getString(i));
      }
      getRowData().add(item);
      signNull=false;
    }
    result.close();
  }
  @Override
  public int getColumnCount() {//得到列数
    // TODO Auto-generated method stub
    return this.colName.size();
  } 

  @Override
  public int getRowCount() {//得到行数
    // TODO Auto-generated method stub
    return this.rowData.size();
  } 

  @Override
  public Object getValueAt(int row, int col) {//得到某行某列的数据
    // TODO Auto-generated method stub
    return (this.rowData.get(row)).get(col);
  } 

  @Override
  public String getColumnName(int column) {
    // TODO Auto-generated method stub
    return this.colName.get(column);
  } 

  public Vector<Vector<String>> getRowData() {
    return rowData;
  }
  public void setRowData(Vector<Vector<String>> rowData) {
    this.rowData = rowData;
  }
  public Vector<String> getColName() {
    return colName;
  }
  public void setColName(Vector<String> colName) {
    this.colName = colName;
  }
  public void addBook(String sql){
    try {
      stmt.executeUpdate(sql);
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
//   initData("SELECT * FROM book_info");
  }
  public void deleteBook(String sql){
    try {
      stmt.executeUpdate(sql);
    } catch (SQLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    }
  }
}

AddBookDialog.java

package librarySystem; 

import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException; 

import javax.swing.*; 

@SuppressWarnings("serial")
public class AddBookDialog extends JDialog implements ActionListener{
  private JLabel bookNumLabel;
  private JLabel bookNameLabel;
  private JLabel bookWriterLabel;
  private JLabel bookPublishLabel;
  private JLabel bookPriceLabel;
  private JLabel bookTimeLabel;
  private JTextField bookNumText;
  private JTextField bookNameText;
  private JTextField bookWriterText;
  private JTextField bookPublishText;
  private JTextField bookPriceText;
  private JTextField bookTimeText; 

  private JButton submitBut;
  private JButton cancelBut;
  public AddBookDialog(Frame owner,String title,boolean model){
    //父窗口,窗口名,是否是模式窗口
    super(owner,title,model);
    bookNumLabel=new JLabel("书  号:");
    bookNameLabel=new JLabel("书  名:");
    bookWriterLabel=new JLabel("作  者:");
    bookPublishLabel=new JLabel("出版社:");
    bookPriceLabel=new JLabel("价  格:");
    bookTimeLabel=new JLabel("出版时间:"); 

    bookNumText=new JTextField(10);
    bookNameText=new JTextField(10);
    bookWriterText=new JTextField(10);
    bookPublishText=new JTextField(10);
    bookPriceText=new JTextField(10);
    bookTimeText=new JTextField(9); 

    submitBut=new JButton("确认");
    cancelBut=new JButton("取消");
    submitBut.addActionListener(this);
    cancelBut.addActionListener(this);
    this.setBounds(350,150,400,260);
    this.setResizable(false);
    this.setLayout(new BorderLayout());
    initLayout();
  }
  public void initLayout(){
    Container[] con1=new Container[6];
    for(int i=0;i<6;i++) con1[i]=new Container();
    con1[0].setLayout(new FlowLayout());
    con1[0].add(bookNumLabel);
    con1[0].add(bookNumText); 

    con1[1].setLayout(new FlowLayout());
    con1[1].add(bookNameLabel);
    con1[1].add(bookNameText); 

    con1[2].setLayout(new FlowLayout());
    con1[2].add(bookWriterLabel);
    con1[2].add(bookWriterText); 

    con1[3].setLayout(new FlowLayout());
    con1[3].add(bookPublishLabel);
    con1[3].add(bookPublishText); 

    con1[4].setLayout(new FlowLayout());
    con1[4].add(bookPriceLabel);
    con1[4].add(bookPriceText); 

    con1[5].setLayout(new FlowLayout());
    con1[5].add(bookTimeLabel);
    con1[5].add(bookTimeText); 

    Container con2=new Container();
    con2.setLayout(new BorderLayout());
    con2.add(con1[0],BorderLayout.NORTH);
    con2.add(con1[1],BorderLayout.CENTER);
    con2.add(con1[2],BorderLayout.SOUTH); 

    Container con3=new Container();
    con3.setLayout(new BorderLayout());
    con3.add(con1[3],BorderLayout.NORTH);
    con3.add(con1[4],BorderLayout.CENTER);
    con3.add(con1[5],BorderLayout.SOUTH); 

    Container con4=new Container();
    con4.setLayout(new FlowLayout());
    con4.add(submitBut);
    con4.add(cancelBut);
    Container con5=new Container();
    con5.setLayout(new BorderLayout());
    con5.add(con2,BorderLayout.NORTH);
    con5.add(con3,BorderLayout.CENTER);
    con5.add(con4,BorderLayout.SOUTH); 

    this.add(con5,BorderLayout.CENTER);
    this.validate();
    this.setVisible(true);
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==submitBut){
      if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
          bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
          bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
        //System.out.println("输入失败");
        JOptionPane.showMessageDialog(this,"输入不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        //System.out.println("输入成功");
        String sql="insert into "
            + "book_info(book_num,book_name,book_writer,publish_house,book_price,publish_time)"
            + "values('"+bookNumText.getText()+"','"+bookNameText.getText()+"','"+bookWriterText.getText()+"','"+bookPublishText.getText()+"','"+bookPriceText.getText()+"','"+bookTimeText.getText()+"')";
        try {
          BookTableModel book=new BookTableModel();
          book.addBook(sql);
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }
        JOptionPane.showMessageDialog(this,"添加成功", "提示",JOptionPane.PLAIN_MESSAGE);
        this.setVisible(false);
      }
    }
    if(e.getSource()==cancelBut){
      this.setVisible(false);
    }
  }
}

ModifyBook.java

package librarySystem; 

import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
import javax.swing.*; 

@SuppressWarnings("serial")
public class ModifyBook extends JDialog implements ActionListener{
  private JLabel bookNumLabel;
  private JLabel bookNameLabel;
  private JLabel bookWriterLabel;
  private JLabel bookPublishLabel;
  private JLabel bookPriceLabel;
  private JLabel bookTimeLabel;
  private JTextField bookNumText;
  private JTextField bookNameText;
  private JTextField bookWriterText;
  private JTextField bookPublishText;
  private JTextField bookPriceText;
  private JTextField bookTimeText;
  private JButton submitBut;
  private JButton cancelBut;
  private BookTableModel bookModel;
  private int rowNum;
  public ModifyBook(Frame owner,String title,boolean type,BookTableModel model,int row){
    super(owner,title,type);
    bookModel=model;
    rowNum=row;
    bookNumLabel=new JLabel("书  号:");
    bookNameLabel=new JLabel("书  名:");
    bookWriterLabel=new JLabel("作  者:");
    bookPublishLabel=new JLabel("出版社:");
    bookPriceLabel=new JLabel("价  格:");
    bookTimeLabel=new JLabel("出版时间:"); 

    bookNumText=new JTextField(10);
    bookNameText=new JTextField(10);
    bookWriterText=new JTextField(10);
    bookPublishText=new JTextField(10);
    bookPriceText=new JTextField(10);
    bookTimeText=new JTextField(9); 

    submitBut=new JButton("确认修改");
    cancelBut=new JButton("取消");
    submitBut.addActionListener(this);
    cancelBut.addActionListener(this);
    this.setBounds(350,150,400,260);
    this.setResizable(false);
    this.setLayout(new BorderLayout());
    this.setValue();
    this.initLayout(); 

  }
  public void initLayout(){
    Container[] con1=new Container[6];
    for(int i=0;i<6;i++) con1[i]=new Container();
    con1[0].setLayout(new FlowLayout());
    con1[0].add(bookNumLabel);
    con1[0].add(bookNumText); 

    con1[1].setLayout(new FlowLayout());
    con1[1].add(bookNameLabel);
    con1[1].add(bookNameText); 

    con1[2].setLayout(new FlowLayout());
    con1[2].add(bookWriterLabel);
    con1[2].add(bookWriterText); 

    con1[3].setLayout(new FlowLayout());
    con1[3].add(bookPublishLabel);
    con1[3].add(bookPublishText); 

    con1[4].setLayout(new FlowLayout());
    con1[4].add(bookPriceLabel);
    con1[4].add(bookPriceText); 

    con1[5].setLayout(new FlowLayout());
    con1[5].add(bookTimeLabel);
    con1[5].add(bookTimeText); 

    Container con2=new Container();
    con2.setLayout(new BorderLayout());
    con2.add(con1[0],BorderLayout.NORTH);
    con2.add(con1[1],BorderLayout.CENTER);
    con2.add(con1[2],BorderLayout.SOUTH); 

    Container con3=new Container();
    con3.setLayout(new BorderLayout());
    con3.add(con1[3],BorderLayout.NORTH);
    con3.add(con1[4],BorderLayout.CENTER);
    con3.add(con1[5],BorderLayout.SOUTH); 

    Container con4=new Container();
    con4.setLayout(new FlowLayout());
    con4.add(submitBut);
    con4.add(cancelBut);
    Container con5=new Container();
    con5.setLayout(new BorderLayout());
    con5.add(con2,BorderLayout.NORTH);
    con5.add(con3,BorderLayout.CENTER);
    con5.add(con4,BorderLayout.SOUTH);
    this.add(con5,BorderLayout.CENTER);
    this.validate();
    this.setVisible(true);
  }
  public void setValue(){
    this.bookNumText.setText((String) bookModel.getValueAt(rowNum, 0));
    this.bookNumText.setEditable(false); 

    this.bookNameText.setText((String) bookModel.getValueAt(rowNum, 1));
    this.bookWriterText.setText((String) bookModel.getValueAt(rowNum, 2));
    this.bookPublishText.setText((String) bookModel.getValueAt(rowNum, 3));
    this.bookTimeText.setText((String) bookModel.getValueAt(rowNum, 4));
    this.bookPriceText.setText((String) bookModel.getValueAt(rowNum, 5));
    this.validate();
  }
  @Override
  public void actionPerformed(ActionEvent e) {
  // System.out.println(bookPriceText.getText());
    // TODO Auto-generated method stub
    if(e.getSource()==submitBut){
      if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
          bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
          bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
        //System.out.println("输入失败");
        JOptionPane.showMessageDialog(this,"修改不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        int n = JOptionPane.showConfirmDialog(null, "确认修改吗?", "确认修改框", JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          String sql="UPDATE book_info SET book_name ='"+bookNameText.getText()+"', book_writer= '"+bookWriterText.getText()+"',publish_house='"+bookPublishText.getText()+"',book_price='"+bookPriceText.getText()+"',publish_time='"+bookTimeText.getText()+"' WHERE book_num = '"+bookNumText.getText()+"' ";
          try {
            BookTableModel book=new BookTableModel();
            book.addBook(sql);
          } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
          }
          JOptionPane.showMessageDialog(this,"修改成功", "提示",JOptionPane.PLAIN_MESSAGE);
          this.setVisible(false);
        } else if (n == JOptionPane.NO_OPTION) {
          return;
        }
      }
    }
    if(e.getSource()==cancelBut){
      this.setVisible(false);
    }
  }
}

程序运行结果:
主界面:

查询界面:

添加图书界面:

修改界面:

删除操作:

数据库界面:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java编写简单的ATM存取系统

    新手练手必备~ 密码账户为: 先创建账户类: 复制代码 代码如下: package cn.Atm; /** * @author 偶my耶 */ import java.io.*; import com.project.project; public class Account {   private String number=null;   private String name=null;   private String password=null;   private double mo

  • java学生信息管理系统设计

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • Java+Mysql学生管理系统源码

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

  • Java 模拟银行自助终端系统

    一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主菜单为: 银行自助终端系统 ************

  • Java实现排球比赛计分系统

    初步计划: 或许由于个人原因,排球计分系统在假期就完成了,一直未写博客,就这样一直在推就是不想写,在加上过完年就工作了,可能刚实习工作比较紧所以一直等到现在. 写这个系统之前我简单构思了一下,因为离校前我去洛阳参加了一个多月的Java培训,所以写项目用的ide是Java环境.刚开始考虑用jsp做界面,架构用mvc,但是后来一想工作量太大而且效果也不是很好.最终写了纯Java代码,在虚拟机上展示. 需求分析: 排球竞赛为五局三胜制,每局比赛中得够25分并且领先对方2分以上的一方将获得一局胜利,先获

  • 使用Java编写一个简单的Web的监控系统

    公司的服务器需要实时监控,而且当用户空间已经满了,操作失败,或者出现程序Exception的时候就需要实时提醒,便于网管和程序员调式,这样就把这个实时监控系统分为了两部分,   第一部分:实时系统监控(cpu利用率,cpu温度,总内存大小,已使用内存大小) 第二部分:实时告警 由于无刷新实时性,所以只能使用Ajax,这里没有用到任何ajax框架,因为调用比较简单 大家知道,由于java的先天不足,对底层系统的调用和操作一般用jni来完成,特别是cpu温度,你在window下是打死用命令行是得不到

  • 简单实现Java版学生管理系统

    本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • JAVA实现简单系统登陆注册模块

    前期准备 首先要先明确有个大体的思路,要实现什么样的功能,了解完成整个模块要运用到哪些方面的知识,以及从做的过程中去发现自己的不足.技术方面的进步大都都需要从实践中出来的. 功能:用户注册功能+系统登录功能+生成验证码 知识:窗体设计.数据库设计.JavaBean封装属性.JDBC实现对数据库的连接.验证码(包括彩色验证码)生成技术,还有就些比如像使用正则表达式校验用户注册信息.随机获得字符串.对文本可用字符数的控制等 设计的模块预览图: 彩色验证码预览图: 所用数据库:MySQL 数据库设计

  • 一个简陋的java图书管理系统

    本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

随机推荐