ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

基于JAVA的图书数据库管理-具有新增,修改,删除,查询功能

2019-09-12 09:03:37  阅读:312  来源: 互联网

标签:setEnabled JAVA getString RS 数据库 查询 new T1 setText


原文链接:https://my.oschina.net/u/2610176/blog/600952

结构类型JDBC-ODBC bridge plus ODBC driver;数据库采用Access。数据源是在ODBC设置好的“myBooK”。源程序如下:(最为练习,修改删除查询功能只留接口,没有编码实现)

import java.awt.*;
import java.awt.event.*;
//import java.beans.Statement;
import java.sql.*;
import javax.swing.*;


public class j03160301 extends JFrame{
 Connection ConnObj;
 Statement SQLStatement;
 ResultSet RS;
 
 JPanel contentPane;
 Panel panel1;
 Label L1,L2,L3,L4;
 TextField T1,T2,T3,T4;
 Button B1,B2,B3,B4,B5,B6,B7,B8,B9,B10;
 
 public j03160301(){
  contentPane=(JPanel)this.getContentPane();
  contentPane.setLayout(null);
  
  panel1=new Panel();
  //panel1.setBackground(BLACK);
  panel1.setBounds(0, 0, 380, 160);
  panel1.setLayout(null);
  panel1.setEnabled(false);
  
  contentPane.add(panel1);
  
  L1=new Label("ISBM: ");
  L1.setBounds(20, 40, 50, 25);
  panel1.add(L1);
  L2=new Label("bookname: ");
  L2.setBounds(20, 70, 50, 25);
  panel1.add(L2);
  L3=new Label("auther: ");
  L3.setBounds(20, 100, 50, 25);
  panel1.add(L3);
  L4=new Label("price: ");
  L4.setBounds(20, 130, 50, 25);
  panel1.add(L4);
  T1=new TextField();
  T1.setBounds(70, 40, 300, 25);
  T1.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e){
    T1_actionPerformed(e);
   }
  });
  panel1.add(T1);
  T2=new TextField();
  T2.setBounds(70, 70, 300, 25);
  T2.addActionListener(new myActionListener());
  panel1.add(T2);
  T3=new TextField();
  T3.setBounds(70, 100, 300, 25);
  T3.addActionListener(new myActionListener());
  panel1.add(T3);
  T4=new TextField();
  T4.setBounds(70, 130, 300, 25);
  T4.addActionListener(new myActionListener());
  panel1.add(T4);
  
  B1=new Button("第一条");
  B1.setBounds(new Rectangle(30,180,65,20));
  B1.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B1_mouseClicked(e);
   }
  });
  contentPane.add(B1);
  B2=new Button("上一条");
  B2.setBounds(new Rectangle(100,180,65,20));
  B2.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B2_mouseClicked(e);
   }
  });
  contentPane.add(B2);
  B3=new Button("下一条");
  B3.setBounds(new Rectangle(170,180,65,20));
  B3.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B3_mouseClicked(e);
   }
  });
  contentPane.add(B3);
  B4=new Button("最末条");
  B4.setBounds(new Rectangle(240,180,65,20));
  B4.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B4_mouseClicked(e);
   }
  });
  contentPane.add(B4); 
  B5=new Button("新增");
  B5.setBounds(new Rectangle(30,210,65,20));
  B5.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B5_mouseClicked(e);
   }
  });
  contentPane.add(B5);
  B6=new Button("修改");
  B6.setBounds(100, 210, 65, 20);
  B6.setEnabled(false);//因为这些功能暂时没有写。
  contentPane.add(B6);
  B7=new Button("删除");
  B7.setBounds(170, 210, 65, 20);
  B7.setEnabled(false);
  contentPane.add(B7);
  B8=new Button("查询");
  B8.setBounds(240, 210, 65, 20);
  B8.setEnabled(false);
  contentPane.add(B8);
  B9=new Button("确定");
  B9.setBounds(310, 180, 65, 20);
  B9.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B9_mouseClicked(e);
   }
  });
  contentPane.add(B9);
  
  B10=new Button("离开");
  B10.setBounds(310, 210, 65, 20);
  B10.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    B10_mouseClicked(e);
   }
  });
  contentPane.add(B10);
  
  this.setBounds(200,100, 415, 280);
  this.setTitle("新增");
  this.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  this.setVisible(true);
  //===========================================
  //加载JDBC driver、连接数据库、送SELECT语句、返回结果集
  try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动程序;
   ConnObj=DriverManager.getConnection("jdbc:odbc:myBook");//连接ODBC设置的myBook数据源;
   SQLStatement=ConnObj.createStatement(
     ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_READ_ONLY);
   //其后由此Statement对象执行SQL指令时,返回的会是可卷动且制度的ResultSet对象
   RS=SQLStatement.executeQuery("SELECT * FROM BookData");
   //执行SELECT语句,会返回一个结果集
   //查询myBook数据源的BOOKDATA数据表全部字段的记录
   
   //必须先向下移到第一条;next(),因为一开始是指到第一条之前;
   if(RS.next())
   {
    //RS内至少有一条记录才会返回true,有一条记录才能读取这条记录个字段的数据;
    T1.setText(RS.getString("ISBN"));
    T2.setText(RS.getString("BookName"));
    T3.setText(RS.getString("Author"));
    T4.setText(String.valueOf(RS.getInt("Price")));
    //前三个字段都是文字,最后一个是长整数;
   
   }
   else
    JOptionPane.showMessageDialog(this, "myBook数据库内无任何数据");
  }catch(Exception ecp)
  {
   JOptionPane.showMessageDialog(this, ecp.getMessage());
  }
 }//public j03160301() end
 class myActionListener implements ActionListener
 {
  public void actionPerformed(ActionEvent e)
  {
   ((TextField)e.getSource()).transferFocus();//按下回车键,focus往下一个组件
  }
 }
 
 protected void T1_actionPerformed(ActionEvent e) {
  //新增时先检验该条是否已经存在
  if(T1.getText().trim().equals(""))
   return;
  String newISBN=T1.getText().trim();
  if(newISBN.length()>13)
  {
   JOptionPane.showMessageDialog(T1, "ISBN字段最大长度为13");
   return;
  }
  try
  {
   RS=SQLStatement.executeQuery(
     "SELECT * FROM BookData WHERE ISBN='"+newISBN+"'");
   if(RS.next())
   {
    T1.setText(RS.getString("ISBN"));
    T2.setText(RS.getString("BookName"));
    T3.setText(RS.getString("Author"));
    T4.setText(String.valueOf(RS.getInt("Price")));
    JOptionPane.showMessageDialog(T1, "此笔数据已存在");
    
   }
   else{//不得再更改新的一条ISBN
    panel1.setEnabled(true);
    T1.setText(newISBN);
    T1.setEditable(true);
    T2.setEnabled(true);
    T3.setEnabled(true);
    T4.setEnabled(true);
    B9.setEnabled(true);
    T2.requestFocus();
   }
  }catch(SQLException o){System.out.println(o.getMessage());}
  
 }

 void B1_mouseClicked(MouseEvent e)
 {
  try
  {
   RS.first();//move to the first item
   T1.setText(RS.getString("ISBN"));
   T2.setText(RS.getString("BookName"));
   T3.setText(RS.getString("Author"));
   T4.setText(String.valueOf(RS.getInt("Price")));
  }catch(SQLException ecp){}
 }//B1_mouseClicked(MouseEvent e) end;
 
 void B2_mouseClicked(MouseEvent e)
 {
  try
  {
   if(RS.previous())
   {//move to the previous item
    T1.setText(RS.getString("ISBN"));
    T2.setText(RS.getString("BookName"));
    T3.setText(RS.getString("Author"));
    T4.setText(String.valueOf(RS.getInt("Price")));
   }
   else
   {
    //返回false表示移到了第一条之前
    RS.first();//再移到第一条;
    JOptionPane.showMessageDialog(B2, "移到第一条");
    //不需要改变T1-T4的文字,因为刚才已经显示第一条内容
   }
  }catch(SQLException ecp){}
 }//B2_mouseClicked(MouseEvent e) end;
 
 void B3_mouseClicked(MouseEvent e)
 {
  try
  {
   if(RS.next())
   {//move to the next item
    T1.setText(RS.getString("ISBN"));
    T2.setText(RS.getString("BookName"));
    T3.setText(RS.getString("Author"));
    T4.setText(String.valueOf(RS.getInt("Price")));
   }
   else
   {
    //返回false表示移到了最末条之后
    RS.last();//再移到最末条;
    JOptionPane.showMessageDialog(B3, "移到最末条");
    //不需要改变T1-T4的文字,因为刚才已经显示第一条内容
   }
  }catch(SQLException ecp){}
 }//B3_mouseClicked(MouseEvent e) end;
 
 void B4_mouseClicked(MouseEvent e)
 {
  try
  {
   RS.last();//move to the last item
   T1.setText(RS.getString("ISBN"));
   T2.setText(RS.getString("BookName"));
   T3.setText(RS.getString("Author"));
   T4.setText(String.valueOf(RS.getInt("Price")));
  }catch(SQLException ecp){}
 }//B4_mouseClicked(MouseEvent e) end;
 
 void B5_mouseClicked(MouseEvent e)
 {
  T1.setText(" ");
  T2.setText(" ");
  T3.setText(" ");
  T4.setText(" ");
  panel1.setEnabled(true);
  T2.setEnabled(false);
  T3.setEnabled(false);
  T4.setEnabled(false);
  B1.setEnabled(false);
  B2.setEnabled(false);
  B3.setEnabled(false);
  B4.setEnabled(false);
  B5.setEnabled(false);
  B9.setEnabled(true);
  B10.setEnabled(true);
  /*try
  {
   RS.last();//move to the last item
   T1.setText(RS.getString("ISBN"));
   T2.setText(RS.getString("BookName"));
   T3.setText(RS.getString("Author"));
   T4.setText(String.valueOf(RS.getInt("Price")));
  }catch(SQLException ecp){}*/
 }//B4_mouseClicked(MouseEvent e) end;
  void B9_mouseClicked(MouseEvent e) {//确认插入按钮;
  ToInsert();
 }
 private void ToInsert() {
  int checkPrice;
  if(T2.getText().trim().equals("")||T3.getText().trim().equals("")||T4.getText().trim().equals("")||T2.getText().trim().length()>50||T3.getText().trim().length()>30)
  {
   JOptionPane.showMessageDialog(B9, "有数据尚未填正确的值");
   return;
  }
  try//检查价格
  {
   checkPrice=Integer.parseInt(T4.getText().trim());
  }catch(NumberFormatException o)
  {
   JOptionPane.showMessageDialog(B9, "价格请填入整数");
   return;
  }
  
  String insertSQL="INSERT INTO BookData(ISBN,BookName,Author,Price)"+"VALUES('"+T1.getText().trim()+"','"+T2.getText().trim()
  +"','"+T3.getText().trim()+"','"+T4.getText().trim()+"')";
  try
  {
   System.out.println(insertSQL);
   SQLStatement.executeUpdate(insertSQL);
  }catch(SQLException o){
   JOptionPane.showMessageDialog(B9, o.getMessage());
  }
  try
  {
   RS=SQLStatement.executeQuery("SELECT *FROM BookData");
   RS.last();//移动到最后一条,因为增加的数据会加到数据库的最后一条后面;
   T1.setText(RS.getString("ISBN"));
   T2.setText(RS.getString("BookName"));
   T3.setText(RS.getString("Author"));
   T4.setText(String.valueOf(RS.getInt("Price")));
  }catch(SQLException o){JOptionPane.showMessageDialog(B9, o.getMessage());}
  
  
 }

  void B10_mouseClicked(MouseEvent e) {//清除按钮;
  try
  {
   RS=SQLStatement.executeQuery("SELECT * FROM BookData");
   if(RS.next())
   {
    T1.setText(RS.getString("ISBN"));
    T2.setText(RS.getString("BookName"));
    T3.setText(RS.getString("Author"));
    T4.setText(String.valueOf(RS.getInt("Price")));
   }
  }catch(SQLException o)
  {JOptionPane.showMessageDialog(B10,o.getMessage());}
  //控制画面操作过程
  panel1.setEnabled(true);
  T1.setEnabled(true);
  T2.setEnabled(true);
  T3.setEnabled(true);
  T4.setEnabled(true);
  B1.setEnabled(true);
  B2.setEnabled(true);
  B3.setEnabled(true);
  B4.setEnabled(true);
  B5.setEnabled(true);
  B9.setEnabled(false);
  B10.setEnabled(false);
 }
 
 
 public static void main(String[] args)
 {
  new j03160301();
 }

}

转载于:https://my.oschina.net/u/2610176/blog/600952

标签:setEnabled,JAVA,getString,RS,数据库,查询,new,T1,setText
来源: https://blog.csdn.net/chunjue5495/article/details/100760981

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有