实验项目名称:数据库编程

一、实验目的

熟悉并掌握嵌入式 SQL 编程、使用数据库访问接口技术实现对数据库的访问。

二、实验要求

熟悉使用嵌入式 SQL 编程访问数据库,熟悉 VB 中开发数据库应用程序的过程。

三、实验步骤

任务:设计一个小型的数据库应用程序

可利用现有的数据库,也可重新设计数据库。

要求实现数据的增加、删除、修改、查询的功能。

在报告中描述清楚使用的数据库、数据表及实现的功能(要求截图,并附代

码)。

注:数据库采用 SQLServer,编程工具任选,在实验报告中说明。

DbUtl.java

ackage com.HPioneer.util;import java.sql.DriverManager;import com.mysql.jdbc.Connection;public class DbUtil {
//也可以这样
//private String dbUrl = "jdbc:mysql:///db_book";private String dbUrl = "jdbc:mysql://localhost:3306/db_book";private String dbUserName = "root";private String dbPassword = "123456";private String jdbcName = "com.mysql.jdbc.Driver";/*** 获取数据库连接* @return* @throws Exception*/public Connection getCon()throws Exception{Class.forName(jdbcName);Connection con = (Connection) DriverManager.getConnection(dbUrl,dbUserName,dbPassword);//链接数据库return con;}/*** 关闭数据库连接* @param con* @throws Exception*/public void closeCon (java.sql.Connection con)throws Exception {if(con!=null){con.close();}}/*** * @param args*/public static void main(String[] args) {DbUtil dbUtil = new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();    //在命令行打印异常信息在程序中出错的位置及原因。System.out.println("数据库连接");}}}package com.HPioneer.util;import org.junit.Test;import com.mysql.jdbc.StringUtils;/*** 字符串工具类* @author H_Pioneer**/
public class StringUtil {/*** 判断是否为空* @param str* @return*/public static boolean isEmpty(String str){if(str==null||"".equals(str.trim())){return true;}else{return false;}}/*** 判断不为空* @param str* @return*/public static boolean isNotEmpty(String str){if(str!=null&&!"".equals(str.trim())){return true;}else{return false;}}
}
MainFrm.java                                                                package com.HPioneer.view;import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import java.awt.GridLayout;
import javax.swing.SpringLayout;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JDesktopPane;
import java.awt.Color;
import java.awt.SystemColor;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class MainFrm extends JFrame {private JPanel contentPane;private JDesktopPane table = null;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {MainFrm frame = new MainFrm();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public MainFrm() {setTitle("图书管理主界面");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);JMenuBar menuBar = new JMenuBar();setJMenuBar(menuBar);JMenu menu = new JMenu("基本数据维护");menu.setIcon(new ImageIcon(MainFrm.class.getResource("/images/base.png")));menuBar.add(menu);JMenu mnNewMenu = new JMenu("图书类别管理");mnNewMenu.setIcon(new ImageIcon(MainFrm.class.getResource("/images/bookTypeManager.png")));menu.add(mnNewMenu);JMenuItem menuItem = new JMenuItem("图书类别添加");menuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {BookTypeAddInterFrm bookTypeAddInterFrm = new BookTypeAddInterFrm();bookTypeAddInterFrm.setVisible(true);table.add(bookTypeAddInterFrm);}});menuItem.setIcon(new ImageIcon(MainFrm.class.getResource("/images/add.png")));mnNewMenu.add(menuItem);JMenuItem menuItem_2 = new JMenuItem("图书类别维护");menuItem_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {BookTypeManagerInterFrm bookTypeManagerInterFrm = new BookTypeManagerInterFrm();bookTypeManagerInterFrm.setVisible(true);table.add(bookTypeManagerInterFrm);}});menuItem_2.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));mnNewMenu.add(menuItem_2);JMenu mnNewMenu_1 = new JMenu("图书管理");mnNewMenu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/bookManager.png")));menu.add(mnNewMenu_1);JMenuItem menuItem_1 = new JMenuItem("图书添加");menuItem_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {BookAddInterFrm bookAddInterFrm = new BookAddInterFrm();bookAddInterFrm.setVisible(true);table.add(bookAddInterFrm);}});menuItem_1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/add.png")));mnNewMenu_1.add(menuItem_1);JMenuItem mntmNewMenuItem = new JMenuItem("图书维护");mntmNewMenuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {BookManageInterFrm bookManagerInterFrm = new BookManageInterFrm();bookManagerInterFrm.setVisible(true);table.add(bookManagerInterFrm);}});mntmNewMenuItem.setIcon(new ImageIcon(MainFrm.class.getResource("/images/edit.png")));mnNewMenu_1.add(mntmNewMenuItem);JMenuItem menuItem_3 = new JMenuItem("安全退出");menuItem_3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int result =JOptionPane.showConfirmDialog(null,"是否退出系统");}});menuItem_3.setIcon(new ImageIcon(MainFrm.class.getResource("/images/exit.png")));menu.add(menuItem_3);JMenu menu_1 = new JMenu("关于我们");menu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/images/about.png")));menuBar.add(menu_1);JMenuItem mntmhpioneer = new JMenuItem("关于HPioneer");mntmhpioneer.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {HPioneer1234InterFrm hPioneer1234InterFrm = new HPioneer1234InterFrm();hPioneer1234InterFrm.setVisible(true);table.add(hPioneer1234InterFrm);}});mntmhpioneer.setIcon(new ImageIcon(MainFrm.class.getResource("/images/userName.png")));menu_1.add(mntmhpioneer);contentPane = new JPanel();contentPane.setForeground(Color.BLUE);contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(new BorderLayout(0, 0));table = new JDesktopPane();     table.setBackground(Color.WHITE);contentPane.add(table);//设置Jrame最大化this.setExtendedState(JFrame.MAXIMIZED_BOTH);}
}增BookAddInterFrm.java
package com.HPioneer.view;import java.awt.EventQueue;import javax.swing.JInternalFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.LineBorder;import com.HPioneer.dao.BookDao;
import com.HPioneer.dao.BookTypeDao;
import com.HPioneer.model.Book;
import com.HPioneer.model.BookType;
import com.HPioneer.util.DbUtil;
import com.HPioneer.util.StringUtil;
import com.mysql.jdbc.Connection;import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JTextArea;
import javax.swing.JComboBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.awt.event.ActionEvent;
import javax.swing.ImageIcon;public class BookAddInterFrm extends JInternalFrame {private JTextField bookNameTxt;private JTextField authorTxt;private final ButtonGroup buttonGroup = new ButtonGroup();private JTextField priceTxt;private DbUtil dbUtil = new DbUtil();private BookTypeDao bookTypeDao = new BookTypeDao();private BookDao bookDao = new BookDao();private JComboBox bookTypeJcb;private JTextArea bookDescTxt;private JRadioButton manJrb; private JRadioButton femaleJrb;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {BookAddInterFrm frame = new BookAddInterFrm();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public BookAddInterFrm() {setIconifiable(true);setClosable(true);setTitle("图书添加");setBounds(100, 100, 450, 463);JLabel lblNewLabel = new JLabel("图书名字:");bookNameTxt = new JTextField();bookNameTxt.setColumns(10);JLabel lblNewLabel_1 = new JLabel("图书作者:");authorTxt = new JTextField();authorTxt.setColumns(10);JLabel lblNewLabel_2 = new JLabel("作者性别:");manJrb = new JRadioButton("男");buttonGroup.add(manJrb);manJrb.setSelected(true);femaleJrb = new JRadioButton("女");buttonGroup.add(femaleJrb);JLabel lblNewLabel_3 = new JLabel("图书价格:");priceTxt = new JTextField();priceTxt.setColumns(10);JLabel lblNewLabel_4 = new JLabel("图书描述:");bookDescTxt = new JTextArea();JLabel lblNewLabel_5 = new JLabel("图书类别:");bookTypeJcb = new JComboBox();JButton btnNewButton = new JButton("添加");btnNewButton.setIcon(new ImageIcon(BookAddInterFrm.class.getResource("/images/add.png")));btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookAddActionPerformed(e);}});JButton btnNewButton_1 = new JButton("重置");btnNewButton_1.setIcon(new ImageIcon(BookAddInterFrm.class.getResource("/images/add.png")));btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookValueActionPerformed(e);}});btnNewButton_1.setIcon(new ImageIcon(BookAddInterFrm.class.getResource("/images/reset.png")));GroupLayout groupLayout = new GroupLayout(getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(28).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel_4).addPreferredGap(ComponentPlacement.RELATED).addComponent(bookDescTxt, GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)).addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false).addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel_2).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(manJrb).addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(femaleJrb)).addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel).addPreferredGap(ComponentPlacement.RELATED).addComponent(bookNameTxt, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))).addGap(18).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel_3).addComponent(lblNewLabel_1)).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(authorTxt, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE).addComponent(priceTxt, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE))).addGroup(groupLayout.createSequentialGroup().addComponent(btnNewButton).addGap(33).addComponent(btnNewButton_1)).addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel_5).addPreferredGap(ComponentPlacement.RELATED).addComponent(bookTypeJcb, 0, 262, Short.MAX_VALUE))).addGap(80)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(33).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(bookNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(authorTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_1)).addGap(26).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_2).addComponent(manJrb).addComponent(femaleJrb).addComponent(lblNewLabel_3).addComponent(priceTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(26).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_5).addComponent(bookTypeJcb, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(30).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel_4).addComponent(bookDescTxt, GroupLayout.PREFERRED_SIZE, 140, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.RELATED, 38, Short.MAX_VALUE).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton).addComponent(btnNewButton_1)).addGap(50)));getContentPane().setLayout(groupLayout);//显示文本域边框bookDescTxt.setBorder(new LineBorder(new java.awt.Color(127,157,185),1,false));fillBookType();}/*** 重置事件处理* @param e*/private void bookValueActionPerformed(ActionEvent e) {// TODO Auto-generated method stubthis.resetValue();}private void bookAddActionPerformed(ActionEvent evt) {// TODO Auto-generated method stubString bookName = this.bookNameTxt.getText();String author = this.authorTxt.getText();String price = this.priceTxt.getText();String bookDesc = this.bookDescTxt.getText();if(StringUtil.isEmpty(bookName)){JOptionPane.showMessageDialog(null,"图书名称不能为空");}if(StringUtil.isEmpty(author)){JOptionPane.showMessageDialog(null,"图书作者不能为空");}if(StringUtil.isEmpty(price)){JOptionPane.showMessageDialog(null,"图书价格不能为空");}String sex ="";if(manJrb.isSelected()){sex="男";}else{sex="女";}BookType bookType =(BookType) bookTypeJcb.getSelectedItem();int bookTypeId = bookType.getId();Book book = new Book(bookName,author,sex,Float.parseFloat(price),bookTypeId,bookDesc);Connection con = null;try{con=dbUtil.getCon();int addNum = bookDao.add(con, book);    if(addNum == 1){JOptionPane.showMessageDialog(null,"图书类别添加成功"); resetValue();}else{JOptionPane.showMessageDialog(null,"图书类别添加失败");}}catch(Exception e){e.printStackTrace();  JOptionPane.showMessageDialog(null,"图书类别添加失败");}finally{try{dbUtil.closeCon(con);}catch (Exception e) {// TODO: handle exceptione.printStackTrace();    }}}/*** 重置表单*/private void resetValue() {// TODO Auto-generated method stubthis.bookNameTxt.setText("");this.authorTxt.setText("");this.priceTxt.setText("");this.manJrb.setSelected(true);this.bookDescTxt.setText("");if(this.bookTypeJcb.getItemCount()>0){this.bookTypeJcb.setSelectedIndex(0);}}/*** 初始化图书类别下拉框*/private void fillBookType(){Connection con = null;BookType bookType = null;try{con = dbUtil.getCon();ResultSet rs = bookTypeDao.list(con, new BookType());while( rs.next() ){bookType = new BookType();bookType.setId(rs.getInt("id"));bookType.setBookTypeName(rs.getString("bookTypeName"));this.bookTypeJcb.addItem(bookType);}}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{}}
}删BookManageInterFrm.java
package com.HPioneer.view;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;import com.HPioneer.dao.BookDao;
import com.HPioneer.dao.BookTypeDao;
import com.HPioneer.model.Book;
import com.HPioneer.model.BookType;
import com.HPioneer.util.DbUtil;
import com.HPioneer.util.StringUtil;public class BookManageInterFrm extends JInternalFrame {private JTable bookTable;private JTextField s_bookNameTxt;private JTextField s_authorTxt;private JComboBox s_bookTypeJcb;private JRadioButton manJrb ;private JRadioButton femaleJrb ;private JTextArea bookDescTxt;private JComboBox bookTypeJcb ;private DbUtil dbUtil=new DbUtil();private BookTypeDao bookTypeDao=new BookTypeDao();private BookDao bookDao=new BookDao();private JTextField idTxt;private JTextField bookNameTxt;private final ButtonGroup buttonGroup = new ButtonGroup();private JTextField priceTxt;private JTextField authorTxt;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {BookManageInterFrm frame = new BookManageInterFrm();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public BookManageInterFrm() {setClosable(true);setIconifiable(true);setTitle("\u56FE\u4E66\u7BA1\u7406");setBounds(100, 100, 677, 487);JScrollPane scrollPane = new JScrollPane();JPanel panel = new JPanel();panel.setBorder(new TitledBorder(null, "\u641C\u7D22\u6761\u4EF6", TitledBorder.LEADING, TitledBorder.TOP, null, null));JPanel panel_1 = new JPanel();panel_1.setBorder(new TitledBorder(null, "\u8868\u5355\u64CD\u4F5C", TitledBorder.LEADING, TitledBorder.TOP, null, null));GroupLayout groupLayout = new GroupLayout(getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addContainerGap().addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(panel_1, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(Alignment.LEADING, groupLayout.createParallelGroup(Alignment.LEADING, false).addComponent(panel, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(scrollPane))).addContainerGap(66, Short.MAX_VALUE)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(28).addComponent(panel, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 116, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(panel_1, GroupLayout.DEFAULT_SIZE, 203, Short.MAX_VALUE).addContainerGap()));JLabel lblNewLabel = new JLabel("\u7F16\u53F7\uFF1A");idTxt = new JTextField();idTxt.setEditable(false);idTxt.setColumns(10);JLabel lblNewLabel_1 = new JLabel("\u56FE\u4E66\u540D\u79F0\uFF1A");bookNameTxt = new JTextField();bookNameTxt.setColumns(10);JLabel label_3 = new JLabel("\u4F5C\u8005\u6027\u522B\uFF1A");manJrb = new JRadioButton("\u7537");buttonGroup.add(manJrb);manJrb.setSelected(true);femaleJrb = new JRadioButton("\u5973");buttonGroup.add(femaleJrb);JLabel label_4 = new JLabel("\u4EF7\u683C\uFF1A");priceTxt = new JTextField();priceTxt.setColumns(10);JLabel lblNewLabel_2 = new JLabel("\u56FE\u4E66\u4F5C\u8005\uFF1A");authorTxt = new JTextField();authorTxt.setColumns(10);JLabel label_5 = new JLabel("\u56FE\u4E66\u7C7B\u522B\uFF1A");bookTypeJcb = new JComboBox();JLabel label_6 = new JLabel("\u56FE\u4E66\u63CF\u8FF0\uFF1A");bookDescTxt = new JTextArea();JButton button_1 = new JButton("\u4FEE\u6539");button_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {bookUpdateActionPerformed(evt);}});button_1.setIcon(new ImageIcon(BookManageInterFrm.class.getResource("/images/modify.png")));JButton button_2 = new JButton("\u5220\u9664");button_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {bookDeleteActionPerformed(evt);}});button_2.setIcon(new ImageIcon(BookManageInterFrm.class.getResource("/images/delete.png")));GroupLayout gl_panel_1 = new GroupLayout(panel_1);gl_panel_1.setHorizontalGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1.createSequentialGroup().addGap(19).addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1.createSequentialGroup().addComponent(button_1).addGap(18).addComponent(button_2).addGap(386)).addGroup(gl_panel_1.createSequentialGroup().addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1.createSequentialGroup().addComponent(label_6).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(bookDescTxt)).addGroup(gl_panel_1.createSequentialGroup().addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING, false).addGroup(gl_panel_1.createSequentialGroup().addComponent(label_4).addPreferredGap(ComponentPlacement.RELATED).addComponent(priceTxt)).addGroup(gl_panel_1.createSequentialGroup().addComponent(lblNewLabel).addPreferredGap(ComponentPlacement.RELATED).addComponent(idTxt, GroupLayout.PREFERRED_SIZE, 87, GroupLayout.PREFERRED_SIZE))).addGap(26).addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING, false).addGroup(gl_panel_1.createSequentialGroup().addComponent(lblNewLabel_1).addPreferredGap(ComponentPlacement.RELATED).addComponent(bookNameTxt, GroupLayout.PREFERRED_SIZE, 85, GroupLayout.PREFERRED_SIZE)).addGroup(gl_panel_1.createSequentialGroup().addComponent(lblNewLabel_2).addPreferredGap(ComponentPlacement.RELATED).addComponent(authorTxt))).addGap(26).addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING, false).addGroup(gl_panel_1.createSequentialGroup().addComponent(label_3).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(manJrb).addPreferredGap(ComponentPlacement.RELATED).addComponent(femaleJrb)).addGroup(gl_panel_1.createSequentialGroup().addComponent(label_5).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(bookTypeJcb, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))).addContainerGap(86, Short.MAX_VALUE)))));gl_panel_1.setVerticalGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_1.createSequentialGroup().addGap(21).addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(idTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_1).addComponent(bookNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_3).addComponent(manJrb).addComponent(femaleJrb)).addGap(18).addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(label_4).addComponent(priceTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_2).addComponent(authorTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_5).addComponent(bookTypeJcb, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18).addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING).addComponent(label_6).addComponent(bookDescTxt, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.RELATED, 20, Short.MAX_VALUE).addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE).addComponent(button_1).addComponent(button_2))));panel_1.setLayout(gl_panel_1);JLabel label = new JLabel("\u56FE\u4E66\u540D\u79F0\uFF1A");s_bookNameTxt = new JTextField();s_bookNameTxt.setColumns(10);JLabel label_1 = new JLabel("\u56FE\u4E66\u4F5C\u8005\uFF1A");s_authorTxt = new JTextField();s_authorTxt.setColumns(10);JLabel label_2 = new JLabel("\u56FE\u4E66\u7C7B\u522B\uFF1A");s_bookTypeJcb = new JComboBox();JButton button = new JButton("\u67E5\u8BE2");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookSearchActionPerformed(e);}});button.setIcon(new ImageIcon(BookManageInterFrm.class.getResource("/images/search.png")));GroupLayout gl_panel = new GroupLayout(panel);gl_panel.setHorizontalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel.createSequentialGroup().addGap(19).addComponent(label).addPreferredGap(ComponentPlacement.RELATED).addComponent(s_bookNameTxt, GroupLayout.PREFERRED_SIZE, 77, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(label_1).addPreferredGap(ComponentPlacement.RELATED).addComponent(s_authorTxt, GroupLayout.PREFERRED_SIZE, 74, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(label_2).addPreferredGap(ComponentPlacement.RELATED).addComponent(s_bookTypeJcb, GroupLayout.PREFERRED_SIZE, 78, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(button).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));gl_panel.setVerticalGroup(gl_panel.createParallelGroup(Alignment.TRAILING).addGroup(gl_panel.createSequentialGroup().addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(label).addComponent(s_bookNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_1).addComponent(s_authorTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_2).addComponent(s_bookTypeJcb, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(button)).addGap(16)));panel.setLayout(gl_panel);bookTable = new JTable();bookTable.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent met) {bookTableMousePressed(met);}});scrollPane.setViewportView(bookTable);bookTable.setModel(new DefaultTableModel(new Object[][] {},new String[] {"\u7F16\u53F7", "\u56FE\u4E66\u540D\u79F0", "\u56FE\u4E66\u4F5C\u8005", "\u4F5C\u8005\u6027\u522B", "\u56FE\u4E66\u4EF7\u683C", "\u56FE\u4E66\u63CF\u8FF0", "\u56FE\u4E66\u7C7B\u522B"}) {boolean[] columnEditables = new boolean[] {false, false, false, false, false, false, false};public boolean isCellEditable(int row, int column) {return columnEditables[column];}});bookTable.getColumnModel().getColumn(5).setPreferredWidth(119);getContentPane().setLayout(groupLayout);//设置文本域边框bookDescTxt.setBorder(new LineBorder(new java.awt.Color(127,157,185), 1, false));this.fillBookType("search");this.fillBookType("modify");this.fillTable(new Book());}/*** 图书删除事件处理* @param evt*/private void bookDeleteActionPerformed(ActionEvent evt) {String id=idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要删除的记录");return;}int n=JOptionPane.showConfirmDialog(null, "确定要删除这条记录么");if(n==0){Connection con=null;try{con=dbUtil.getCon();int deleteNum=bookDao.delete((com.mysql.jdbc.Connection) con, id);if(deleteNum==1){JOptionPane.showMessageDialog(null, "删除成功");this.resetValue();this.fillTable(new Book());}else{JOptionPane.showMessageDialog(null, "删除失败");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "删除失败");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 图书修改事件处理* @param evt*/ private void bookUpdateActionPerformed(ActionEvent evt) {String id=this.idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要修改的内容");return;}String bookName=this.bookNameTxt.getText();String author=this.authorTxt.getText();String price=this.priceTxt.getText();String bookDesc=this.bookDescTxt.getText();if(StringUtil.isEmpty(bookName)){JOptionPane.showMessageDialog(null, "图书类别名称不能为空");return;}if(StringUtil.isEmpty(author)){JOptionPane.showMessageDialog(null, "图书作者名称不能为空");return;}if(StringUtil.isEmpty(price)){JOptionPane.showMessageDialog(null, "图书价格名称不能为空");return;}String sex="";if(manJrb.isSelected()){sex="男";}else if(femaleJrb.isSelected()){sex="女";}BookType bookType=(BookType) bookTypeJcb.getSelectedItem();int bookTypeId=bookType.getId();Book book=new Book(Integer.parseInt(id),  bookName, author, sex, Float.parseFloat(price),  bookTypeId,  bookDesc);Connection con=null;try{con=dbUtil.getCon();int addNum=bookDao.update((com.mysql.jdbc.Connection) con, book);if(addNum==1){JOptionPane.showMessageDialog(null, "修改成功");resetValue();this.fillTable(new Book());}else{JOptionPane.showMessageDialog(null, "修改失败");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "修改失败");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 重置表单*/private void resetValue(){this.idTxt.setText("");this.bookNameTxt.setText("");this.authorTxt.setText("");this.priceTxt.setText("");this.manJrb.setSelected(true);this.bookDescTxt.setText("");if(this.bookTypeJcb.getItemCount()>0){this.bookTypeJcb.setSelectedIndex(0);}}/*** 表格行点击事件处理* @param met*/private void bookTableMousePressed(MouseEvent met) {int row=this.bookTable.getSelectedRow();this.idTxt.setText((String)bookTable.getValueAt(row, 0));this.bookNameTxt.setText((String)bookTable.getValueAt(row, 1));this.authorTxt.setText((String)bookTable.getValueAt(row, 2));String sex=(String)bookTable.getValueAt(row, 3);if("男".equals(sex)){this.manJrb.setSelected(true);}else if("女".equals(sex)){this.femaleJrb.setSelected(true);}this.priceTxt.setText((Float)bookTable.getValueAt(row, 4)+"");this.bookDescTxt.setText((String)bookTable.getValueAt(row, 5));String bookTypeName=(String)this.bookTable.getValueAt(row, 6);int n=this.bookTypeJcb.getItemCount();for(int i=0;i<n;i++){BookType item=(BookType)this.bookTypeJcb.getItemAt(i);if(item.getBookTypeName().equals(bookTypeName)){this.bookTypeJcb.setSelectedIndex(i);}}}/*** 图书查询事件处理* @param e*/private void bookSearchActionPerformed(ActionEvent evt) {String bookName=this.s_bookNameTxt.getText();String author=this.s_authorTxt.getText();BookType bookType=(BookType) this.s_bookTypeJcb.getSelectedItem();int bookTypeId=bookType.getId();Book book=new Book(bookName,author,bookTypeId);this.fillTable(book);}/*** 初始化下拉框* @param type 下拉框类型*/private void fillBookType(String type){com.mysql.jdbc.Connection con=null;BookType bookType=null;try{con=dbUtil.getCon();ResultSet rs=bookTypeDao.list(con, new BookType());if("search".equals(type)){bookType=new BookType();bookType.setBookTypeName("请选择...");bookType.setId(-1);this.s_bookTypeJcb.addItem(bookType);}while(rs.next()){bookType=new BookType();bookType.setBookTypeName(rs.getString("bookTypeName"));bookType.setId(rs.getInt("id"));if("search".equals(type)){this.s_bookTypeJcb.addItem(bookType);}else if("modify".equals(type)){this.bookTypeJcb.addItem(bookType);}}}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.closeCon(con);} catch (Exception e) {e.printStackTrace();}}}/*** 初始化表格* @param book*/
private void fillTable(Book book){DefaultTableModel dtm=(DefaultTableModel) bookTable.getModel();dtm.setRowCount(0); // 设置成0行Connection con=null;try{con=dbUtil.getCon();ResultSet rs=bookDao.list((com.mysql.jdbc.Connection) con, book);while(rs.next()){Vector v=new Vector();v.add(rs.getString("id"));v.add(rs.getString("bookName"));v.add(rs.getString("author"));v.add(rs.getString("sex"));v.add(rs.getFloat("price"));v.add(rs.getString("bookDesc"));v.add(rs.getString("bookTypeName"));dtm.addRow(v);}}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}改BookTypeManagerInterFrm.java
package com.HPioneer.view;import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;import com.HPioneer.dao.BookDao;
import com.HPioneer.dao.BookTypeDao;
import com.HPioneer.model.BookType;
import com.HPioneer.util.DbUtil;
import com.HPioneer.util.StringUtil;public class BookTypeManagerInterFrm extends JInternalFrame {private JTable bookTypeTable;private JTextArea bookTypeDescTxt ;private DbUtil dbUtil=new DbUtil();private BookTypeDao bookTypeDao=new BookTypeDao();private BookDao bookDao=new BookDao();private JTextField s_bookTypeNameTxt;private JTextField idTxt;private JTextField bookTypeNameTxt;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {BookTypeManagerInterFrm frame = new BookTypeManagerInterFrm();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public BookTypeManagerInterFrm() {setClosable(true);setIconifiable(true);setTitle("\u56FE\u4E66\u7C7B\u522B\u7BA1\u7406");setBounds(100, 100, 507, 481);JScrollPane scrollPane = new JScrollPane();JLabel label = new JLabel("\u56FE\u4E66\u7C7B\u522B\u540D\u79F0\uFF1A");s_bookTypeNameTxt = new JTextField();s_bookTypeNameTxt.setColumns(10);JButton button = new JButton("\u67E5\u8BE2");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookTypeSearchActionPerformed(e);}});button.setIcon(new ImageIcon(BookTypeManagerInterFrm.class.getResource("/images/search.png")));JPanel panel = new JPanel();panel.setBorder(new TitledBorder(null, "\u8868\u5355\u64CD\u4F5C", TitledBorder.LEADING, TitledBorder.TOP, null, null));GroupLayout groupLayout = new GroupLayout(getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(42).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(panel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE).addGroup(Alignment.LEADING, groupLayout.createSequentialGroup().addComponent(label).addGap(18).addComponent(s_bookTypeNameTxt, GroupLayout.PREFERRED_SIZE, 133, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(button)).addComponent(scrollPane, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)).addGap(48)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(33).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(label).addComponent(s_bookTypeNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(button)).addGap(39).addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 126, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(panel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addContainerGap(25, Short.MAX_VALUE)));JLabel lblNewLabel = new JLabel("\u7F16\u53F7\uFF1A");idTxt = new JTextField();idTxt.setEditable(false);idTxt.setColumns(10);JLabel label_1 = new JLabel("\u56FE\u4E66\u7C7B\u522B\u540D\u79F0\uFF1A");bookTypeNameTxt = new JTextField();bookTypeNameTxt.setColumns(10);JLabel lblNewLabel_1 = new JLabel("\u63CF\u8FF0\uFF1A");bookTypeDescTxt = new JTextArea();JButton btnNewButton = new JButton("\u4FEE\u6539");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookTypeUpdateActionEvent(e);}});btnNewButton.setIcon(new ImageIcon(BookTypeManagerInterFrm.class.getResource("/images/modify.png")));JButton btnNewButton_1 = new JButton("\u5220\u9664");btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookTypeDeleteActionEvent(e);}});btnNewButton_1.setIcon(new ImageIcon(BookTypeManagerInterFrm.class.getResource("/images/delete.png")));GroupLayout gl_panel = new GroupLayout(panel);gl_panel.setHorizontalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel.createSequentialGroup().addContainerGap().addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false).addGroup(gl_panel.createSequentialGroup().addComponent(lblNewLabel).addPreferredGap(ComponentPlacement.RELATED).addComponent(idTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(31).addComponent(label_1).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(bookTypeNameTxt, GroupLayout.PREFERRED_SIZE, 105, GroupLayout.PREFERRED_SIZE)).addGroup(gl_panel.createSequentialGroup().addComponent(lblNewLabel_1).addPreferredGap(ComponentPlacement.RELATED).addComponent(bookTypeDescTxt)).addGroup(gl_panel.createSequentialGroup().addComponent(btnNewButton).addGap(26).addComponent(btnNewButton_1))).addContainerGap(37, Short.MAX_VALUE)));gl_panel.setVerticalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel.createSequentialGroup().addContainerGap().addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(idTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(label_1).addComponent(bookTypeNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18).addGroup(gl_panel.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel_1).addComponent(bookTypeDescTxt, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)).addGap(18).addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton).addComponent(btnNewButton_1)).addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));panel.setLayout(gl_panel);bookTypeTable = new JTable();bookTypeTable.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent e) {bookTypeTableMousePressed(e);}});bookTypeTable.setModel(new DefaultTableModel(new Object[][] {},new String[] {"\u7F16\u53F7", "\u56FE\u4E66\u7C7B\u522B\u540D\u79F0", "\u56FE\u4E66\u7C7B\u522B\u63CF\u8FF0"}) {boolean[] columnEditables = new boolean[] {false, false, false};public boolean isCellEditable(int row, int column) {return columnEditables[column];}});bookTypeTable.getColumnModel().getColumn(1).setPreferredWidth(110);bookTypeTable.getColumnModel().getColumn(2).setPreferredWidth(123);scrollPane.setViewportView(bookTypeTable);getContentPane().setLayout(groupLayout);this.fillTable(new BookType());bookTypeDescTxt.setBorder(new LineBorder(new java.awt.Color(127,157,185), 1, false));}/** 图书类别删除事件处理* @param evt*/private void bookTypeDeleteActionEvent(ActionEvent evt) {String id=idTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要删除的内容");return;}int n = JOptionPane.showConfirmDialog(null,"确定要删除选中记录么");if(n==0){Connection con=null;try{con=dbUtil.getCon();int deleteNum=bookTypeDao.delete(con, id);if(deleteNum==1){JOptionPane.showMessageDialog(null, "删除成功");this.resetValue();this.fillTable(new BookType());}else{JOptionPane.showMessageDialog(null, "删除失败");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "删除失败");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 图书类别修改事件处理* @param evt*/private void bookTypeUpdateActionEvent(ActionEvent evt) {String id=idTxt.getText();String bookTypeName=bookTypeNameTxt.getText();String bookTypeDesc=bookTypeDescTxt.getText();if(StringUtil.isEmpty(id)){JOptionPane.showMessageDialog(null, "请选择要修改的内容");return;}if(StringUtil.isEmpty(bookTypeName)){JOptionPane.showMessageDialog(null, "请选择要修改的内容");return;}BookType bookType=new BookType(Integer.parseInt(id),bookTypeName,bookTypeDesc);Connection con=null;try{con=dbUtil.getCon();int modifyNum=bookTypeDao.update(con, bookType);if(modifyNum==1){JOptionPane.showMessageDialog(null, "修改成功");this.resetValue();this.fillTable(new BookType());}else{JOptionPane.showMessageDialog(null, "修改失败");}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "修改失败");}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 表格行点击事件* @param e*/private void bookTypeTableMousePressed(MouseEvent evt) {int row=bookTypeTable.getSelectedRow();idTxt.setText((String)bookTypeTable.getValueAt(row, 0));bookTypeNameTxt.setText((String)bookTypeTable.getValueAt(row, 1));bookTypeDescTxt.setText((String)bookTypeTable.getValueAt(row, 2));}/*** 图书类别搜索事件处理* @param evt*/private void bookTypeSearchActionPerformed(ActionEvent evt) {String s_bookTypeName=this.s_bookTypeNameTxt.getText();BookType bookType=new BookType();bookType.setBookTypeName(s_bookTypeName);this.fillTable(bookType);}/*** 初始化表格* @param bookType*/private void fillTable(BookType bookType){DefaultTableModel dtm=(DefaultTableModel) bookTypeTable.getModel();dtm.setRowCount(0); Connection con=null;try{con=dbUtil.getCon();ResultSet rs=bookTypeDao.list(con, bookType);while(rs.next()){Vector v=new Vector();v.add(rs.getString("id"));v.add(rs.getString("bookTypeName"));v.add(rs.getString("bookTypeDesc"));dtm.addRow(v);}}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 重置表单*/private void resetValue(){this.idTxt.setText("");this.bookTypeNameTxt.setText("");this.bookTypeDescTxt.setText("");}
}查BookTypeAddInterFrm.java
package com.HPioneer.view;import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.LineBorder;import com.HPioneer.dao.BookTypeDao;
import com.HPioneer.model.BookType;
import com.HPioneer.util.DbUtil;
import com.HPioneer.util.StringUtil;
import com.mysql.jdbc.Connection;public class BookTypeAddInterFrm extends JInternalFrame {private JTextField bookTypeNameTxt;private JTextArea bookTypeDescTxt;private DbUtil dbUtil = new DbUtil();private BookTypeDao bookTypeDao = new BookTypeDao();/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {BookTypeAddInterFrm frame = new BookTypeAddInterFrm();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public BookTypeAddInterFrm() {setIconifiable(true);setClosable(true);setTitle("图书类别添加");setBounds(100, 100, 450, 300);JLabel lblNewLabel = new JLabel("图书类别名称:");JLabel lblNewLabel_1 = new JLabel("图书类别描述:");bookTypeNameTxt = new JTextField();bookTypeNameTxt.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {}});bookTypeNameTxt.setColumns(10);bookTypeDescTxt = new JTextArea();JButton btnNewButton = new JButton("添加");btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {bookTypeAddActionPerformed(e);}});btnNewButton.setIcon(new ImageIcon(BookTypeAddInterFrm.class.getResource("/images/add.png")));JButton btnNewButton_1 = new JButton("重置");btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {resetValueActionPerformed(e);}});btnNewButton_1.setIcon(new ImageIcon(BookTypeAddInterFrm.class.getResource("/images/reset.png")));GroupLayout groupLayout = new GroupLayout(getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(68).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel).addComponent(lblNewLabel_1))).addGroup(groupLayout.createSequentialGroup().addGap(83).addComponent(btnNewButton))).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addGroup(groupLayout.createSequentialGroup().addGap(34).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(bookTypeNameTxt, GroupLayout.DEFAULT_SIZE, 162, Short.MAX_VALUE).addComponent(bookTypeDescTxt, GroupLayout.DEFAULT_SIZE, 162, Short.MAX_VALUE))).addGroup(groupLayout.createSequentialGroup().addPreferredGap(ComponentPlacement.RELATED).addComponent(btnNewButton_1))).addGap(78)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(51).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel).addComponent(bookTypeNameTxt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(35).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_1).addComponent(bookTypeDescTxt, GroupLayout.PREFERRED_SIZE, 79, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.RELATED, 35, Short.MAX_VALUE).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton_1).addComponent(btnNewButton)).addGap(26)));getContentPane().setLayout(groupLayout);//显示文本域边框bookTypeDescTxt.setBorder(new LineBorder(new java.awt.Color(127,157,185),1,false));}/*** 图书类别添加事件处理* @param e*/protected void bookTypeAddActionPerformed(ActionEvent e) {// TODO Auto-generated method stubString bookTypeName = this.bookTypeNameTxt.getText();String bookTypeDesc = this.bookTypeDescTxt.getText();if(StringUtil.isEmpty(bookTypeName)){JOptionPane.showMessageDialog(null,"图书类别不能为空");}BookType bookType = new BookType(bookTypeName,bookTypeDesc);Connection con = null;try{con=dbUtil.getCon();int n = bookTypeDao.add(con, bookType);if(n==1){JOptionPane.showMessageDialog(null,"图书类别添加成功"); resetValue();}else{JOptionPane.showMessageDialog(null,"图书类别添加失败"); }}catch(Exception e1){e1.printStackTrace();JOptionPane.showMessageDialog(null,"图书类别添加失败");         }finally{try{dbUtil.closeCon(con);}catch (Exception e1) {// TODO: handle exception}}}/*** 重置事件处理* @param evt*/private void resetValueActionPerformed(ActionEvent evt) {// TODO Auto-generated method stubthis.resetValue();}/*** 重置表单*/private void resetValue() {this.bookTypeNameTxt.setText("");this.bookTypeDescTxt.setText("");}
}

数据库系统原理——实验五相关推荐

  1. 数据库系统原理 实验3 数据库设计

    数据库系统原理 实验3 数据库设计 一. 实验目的 1.理解概念模型的意义,掌握根据给定业务需求描述建立相应概念模型的方法,并采用适当的图形化建模方法(如陈氏表示法的ER图或Martin表示法的IE鸦 ...

  2. 数据库系统原理 实验5 数据库恢复技术

    数据库系统原理 实验5 数据库恢复技术 一. 实验目的 1. 掌握数据库备份和恢复的概念: 2. 熟练掌握数据库备份和恢复.数据导入导出等操作: 二. 实验内容及要求 假定你的数据库名称是XDB(具体 ...

  3. 数据库系统原理第五节

    数据库系统原理第五节 数据库设计 数据库设计概述 数据库的生命周期 数据库分析与设计阶段 需求分析 概念设计 逻辑设计 物理设计 数据库实现与操作阶段 实现 操作与监督 修改与调整 数据库设计的目标 ...

  4. 西电网信院微机原理实验(五)

    实验五 存储器扩展实验 一.存储器芯片62256引脚介绍:   62256共有15根地址线A0-A14,存出大小为32KB:八条双向数据线D0-D7,共8bit:CE‾\overline{CE}CE片 ...

  5. 编译原理实验五:用Yacc设计语法分析器1

    所有实验的源代码:点此下载 实验目的: 学习如何使用Yacc设计一个语法分析器,并与用lex写的词法分析器链接起来. 实验内容: 使用yacc为实验2所给的语言写一个语法分析器(你可以重新设计该语言的 ...

  6. 数据库原理实验五——触发器与存储过程(函数)

    实验目的 熟练掌握存储过程/函数的创建和执行方法. 熟练掌握触发器的创建和执行方法. 实验内容 针对SPJ_MNG数据库,创建并执行如下存储过程.(共计40分) (1) 创建一个没有参数的存储过程-j ...

  7. 数据库系统原理实验(实习)报告——单表查询

    一.实验目的 1.掌握select语句的基本语法和查询条件表示方法 2.掌握数据汇总方法 3.掌握group by子句的作用和使用方法 4.掌握having子句的作用和使用方法 5.掌握order b ...

  8. 数据库系统原理——实验三

    实验三 数据库完整性.安全性实现 一.实验目的 使学生加深对数据库安全性和完整性的理解,并掌握 SQL Server 中有关用户.角 色及操作权限的管理方法,学会创建和使用规则.缺省和触发器以及存储过 ...

  9. 数据库系统原理——实验二

    实验二 L SQL 语言的使用 一.实验目的 掌握使用 SQL 语言进行各种查询的操作和视图的操纵方法. 二.实验要求 在现有的数据库上进行各种查询操作,对视图的创建.使用等操作. 三.实验步骤 1. ...

最新文章

  1. 【转】C# windows服务的创建与调试
  2. python语言入门z-python中a z
  3. OpenCV使用FacemarkAAM
  4. C++中输入一组数字 以换行符结束输入
  5. php mysql 连接不上_php连接不上MySQL问题解决办法_PHP教程
  6. 重磅发布!36氪2020年度中国最具登陆科创板潜力企业TOP50榜单揭晓
  7. S5PV210体系结构与接口12:I2C编程
  8. HTTP 之 HTTPD介绍
  9. 如何安装inf类型驱动程序 inno
  10. Scala下载安装和环境变量配置
  11. 快速切换ip没必要用工具
  12. 简述er图的作用_用例图、ER图、功能结构图
  13. 【新手福音】分享一个自己制作的机器学习工具集合
  14. Shell中变量的单百分号%和双百分号%%的作用
  15. DhtmlxGrid第一次接触,jsp页面
  16. 动态爬取链家二手房成交记录并保存至Excel
  17. java 读取文件inputstream_使用FileInputStream读取本地文件
  18. requests Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en
  19. 苹果开发者新账号上新app审核被拒绝:Other-Other被拒绝,心路历程记录!
  20. iSIGHT9.0 设计优化

热门文章

  1. Python学习笔记 Mc喊麦DJ网 爬取下载
  2. 2018-2019 ACM-ICPC, Asia East Continent Finals D.F.I.L(VP)
  3. 【剧情】あかね色に染まる坂(染成茜色的坂道) 中文剧情简介
  4. BlackBerry中文网站-解决方案,开发等
  5. Adobe 系列软件菜单栏突然变高解决
  6. 华为OD机试用Python实现 -【光伏场地建设规划】(2023-Q1 新题)
  7. 企业如何快速安全盘点混乱IT固定资产信息加固桌面终端安全-原始固定资产系统模式
  8. bss、data、rodata和text
  9. 【聆思CSK6 视觉AI开发套件试用】(有彩蛋)AI头肩手势检测
  10. 超大文件上传解决方案:分片断点上传(一)