数据库的访问实现过程
2016-03-29 21:53
344 查看
数据库是非常重要的数据管理软件系统,在这里我们进行一次Access数据库的访问操作,在正式介绍之前,我们先了解一下数据库访问的过程,在数据库访问中,根据最普遍的想法,需知道的构件主要有三层:分别为客户实体(
即软件的图形界面)、访问的中介(即连接数据库与实体的部分)、数据库后台。在了解这些之后,我们现在也清楚了实施这个访问过程我们该做哪些工作,那就是画一下用户使用的界面,部署一个存储数据的仓库,再找一个联系两
者的链条。下面我们就分别去做这些工作。
一、数据库的设计
数据库的种类有很多种,比如著名的Oracle,SQL server,access、Sybase等,各类软件都有自己的优点,oracle适合于大型公司大量数据的管理,Microsoft SQL Server是微软公司开发的大型关系型数据库系统。SQL Server的
功能比较全面,效率高,可以作为中型企业或单位的数据库平台。SQL Server可以与Windows操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。
废话不多说,今天我们以Access数据库进行操作,建立JDBC-ODBC的数据库连接
1.1建立ODBC数据源
1.1.1首先,让我们做一点准备工作,那就是在自己的电脑上安装Access数据库软件,软件的安装包在网上有很多,可自行下载安装,详细的安装过程在此就不累赘,如有问题请私密,正确安装完成后可在桌面上看到下面所示的图标
图1.1.1
右键点击,进入打开文件位置,可看到
图1.1.2
建立一个名为Employer.mdb的Access数据库文件,存放到硬盘上面,记住他的存储路径比如说建在E:\DesktopFile\学习资料Java\Java
EE\ODBC_Employer这个文件夹下,如图所示
图1.1.3
下面进行详细介绍:首先双击microsoft Access出现创建新文件的窗口,然后点击右下角的文件夹图标景行存储位置的选定,在选定过程中会要求更名,按照所创数据库的类型更名,在这里我们写作Employer,然后点击确定按钮进
行确定,接着点击右下角的创建按钮进行数据库的创建,如下图所示,为创建的具体过程
图1.1.4
在上述步骤完成后,进入到表的创建界面,先确定要建表的属性及表项,在这里我们以员工信息为例,在第一行中要进行信息类型的确定,我们按常规取ID位数字,REGISTERDATE为日期,其余都为文本类型,进行如下所示的
创建,为了方便以后操作先填入4个基本人员信息,
图1.1.5
至此,我们完成了对数据库的创建,接下来我们进行可视化界面的实现。
二、可视化界面的实现
在实现可视化界面之前,我们做一点部署,对于大多数人来说,编写Java程序一般都使用Eclipse或者Myeclipse等软件,在这里我们采用开源免费的eclipse进行编程,如下图所示,安装过程在此不多介绍,如有问题请私密。
图2.1.1
现在,我们开始程序代码的编写,双击打开eclipse,进入文本编辑界面(打开时可能要配置存储路径,随便存储在自己容易识别的路径下就行),点击File->New->Java Project,如下图2.1.1所示,我们将工程名命名为
Java_Employer,最后点击Finish完成对新项目的创建.
图2.1.1
接着进行主界面的创建,右键点击工程名 ,然后按New->class,然确定包名为Java_Employer,类名为MainFrame,再勾选主函数多选框,最后点击Finish完成按钮,如下图2.1.2所示
图2.1.2
创建完主框架类之后,我们开始编程,我们要做的是先显示一个主框架,然后框架上面有功能键,在这里我们只是对插入、删除、更新、查询的操作,所以在这里我们需要做的有4个按钮,然后还需要显示文本,所以我们
再加入一个文本域,下面是具体实施的代码。
在执行完这段代码之后。我们能够看到主框架已经显示出来,接下来需要做的事实施监听事件,因此我们需要在上面这段代码的基础上进行改造,首先将按钮加入到监听事件中,然后就会出现提示,点击后会做出
相应的响应函数,再点击删除后会在控制台输出删除二字,其他三个字符类似,代码如下所示(代码基本没有发生变化,只是添加了按钮的监听事件与响应事件):
至此,主界面也有了,接着我们需进行第三步,实现数据库与主界面之间的连接及信息的交流。
三、数据库与可视化界面之间联系的建立
在与数据库连接之前,我们需要进入到Windows的配置中进行数据源的配置,现在,我们开始
1、打开“控制面板”,进入到“管理工具”,能够看到”ODBC数据源(64位)“左键双击击,接着在弹出的”ODBC数据源管理程序(64位)“对话框中选择“系统DSN”标签,选择其下的“添加”按钮,然后在弹出
的对话框“创建数据源”中选择"Microsoft Access Driver"点击完成按钮后,又弹出一个绑定数据库对话框,即“ODBC Microsoft Access安装”,在这里需要输入数据源名,这儿我们取做"DDEmployer",点击选择按钮
(如图3.1.1所示),进入文件夹选择第一步做好的数据库文件。最后配置的结果如图所示(图3.1.2)
图3.1.1 命名数据源和选择数据库文件
最终配置结果:
图3.1.2 最终配置结果
对于其他数据库的配置,我们能够参见如下链接处地址:部分数据库数据源的配置
2、在配置完之后,我们进行程序代码的访问工作,打开eclipse,进行代码的编写,首先我们为按钮事件的响应创建四个类,类的名称分别为Delete、Insert、Update、Query这四个类,在建立好类
之后,我们进行对类代码的编写,先以Insert为例,进行代码的编写,如下所示(图3.1.2为创建类Insert)
图3.1.2 创建Insert类
Insert代码:要注意的是,在代码中出现了关于NUMBER的错误,因为NUMBER为数据库的系统表示符,所以在使用时将其改为"NUMBERANDPHONE",所以在创建数据库的时候,需要使用更改后
的表示符好,即将”NUMBER“字段改为”NUMBERPHONE“字段,否则会出现Insert into语句错误的提示。
图3.1.3 写入员工信息
在输入完信息后,如果写入成功,则会在在eclipse控制台出现如下字样:
图3.1.4 插入结果显示信息
则会在数据库中插入数据,如下图所示:
图3.1.5 新填数据的显示结果
现在,我们完成了插入操作的代码,下面分别编写Delete、Update、Query类的实现,以相同的方法建立类,然后敲入里边的代码,下面是Delete类的代码:
下面是Query类的实现:
如下图所示为测试过程
图 3.1.6 查询测试过程
最后,只有知道了数据库里的数据,我们才能够操作,因此我们在创建一个类Flashface,创建过程与上面类的创建过程类似,现将代码贴出如下,需要注意的是需要在MainFrame类中进行初始化,即在mainFrame中
加入语句“Flashface flashface=new Flashface();//显示数据库中的信息”
在编写完上面代码之后,运行能够看到在控制台显示数据库里的信息,现在,我们已经实现了开始时提出要求的功能,为了更容易使用,我们将数据显示到界面上,只需将MainFrame中的代码作调整即可
:也就是在MainFrame类中增加一个函数show_table,详情请看下面代码:
增加这个函数后就能够及时的查看数据库里的内容。
下面是程于最终的运行界面:
哈哈哈,到此,我们已经完成了全部工作,当然含有很多缺点在程序中,比如输入对话框弹出式,假如用户不输入任何信息时,插入时员工编号重叠时,查找时没有要找的信息等这些情况,都没具有相应
的处理程序,希望读者能够注意到,有兴趣的可以继续修改。谢谢。
即软件的图形界面)、访问的中介(即连接数据库与实体的部分)、数据库后台。在了解这些之后,我们现在也清楚了实施这个访问过程我们该做哪些工作,那就是画一下用户使用的界面,部署一个存储数据的仓库,再找一个联系两
者的链条。下面我们就分别去做这些工作。
一、数据库的设计
数据库的种类有很多种,比如著名的Oracle,SQL server,access、Sybase等,各类软件都有自己的优点,oracle适合于大型公司大量数据的管理,Microsoft SQL Server是微软公司开发的大型关系型数据库系统。SQL Server的
功能比较全面,效率高,可以作为中型企业或单位的数据库平台。SQL Server可以与Windows操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。
废话不多说,今天我们以Access数据库进行操作,建立JDBC-ODBC的数据库连接
1.1建立ODBC数据源
1.1.1首先,让我们做一点准备工作,那就是在自己的电脑上安装Access数据库软件,软件的安装包在网上有很多,可自行下载安装,详细的安装过程在此就不累赘,如有问题请私密,正确安装完成后可在桌面上看到下面所示的图标
图1.1.1
右键点击,进入打开文件位置,可看到
图1.1.2
建立一个名为Employer.mdb的Access数据库文件,存放到硬盘上面,记住他的存储路径比如说建在E:\DesktopFile\学习资料Java\Java
EE\ODBC_Employer这个文件夹下,如图所示
图1.1.3
下面进行详细介绍:首先双击microsoft Access出现创建新文件的窗口,然后点击右下角的文件夹图标景行存储位置的选定,在选定过程中会要求更名,按照所创数据库的类型更名,在这里我们写作Employer,然后点击确定按钮进
行确定,接着点击右下角的创建按钮进行数据库的创建,如下图所示,为创建的具体过程
图1.1.4
在上述步骤完成后,进入到表的创建界面,先确定要建表的属性及表项,在这里我们以员工信息为例,在第一行中要进行信息类型的确定,我们按常规取ID位数字,REGISTERDATE为日期,其余都为文本类型,进行如下所示的
创建,为了方便以后操作先填入4个基本人员信息,
图1.1.5
至此,我们完成了对数据库的创建,接下来我们进行可视化界面的实现。
二、可视化界面的实现
在实现可视化界面之前,我们做一点部署,对于大多数人来说,编写Java程序一般都使用Eclipse或者Myeclipse等软件,在这里我们采用开源免费的eclipse进行编程,如下图所示,安装过程在此不多介绍,如有问题请私密。
图2.1.1
现在,我们开始程序代码的编写,双击打开eclipse,进入文本编辑界面(打开时可能要配置存储路径,随便存储在自己容易识别的路径下就行),点击File->New->Java Project,如下图2.1.1所示,我们将工程名命名为
Java_Employer,最后点击Finish完成对新项目的创建.
图2.1.1
接着进行主界面的创建,右键点击工程名 ,然后按New->class,然确定包名为Java_Employer,类名为MainFrame,再勾选主函数多选框,最后点击Finish完成按钮,如下图2.1.2所示
图2.1.2
创建完主框架类之后,我们开始编程,我们要做的是先显示一个主框架,然后框架上面有功能键,在这里我们只是对插入、删除、更新、查询的操作,所以在这里我们需要做的有4个按钮,然后还需要显示文本,所以我们
再加入一个文本域,下面是具体实施的代码。
package Java_Employer; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; public class MainFrame extends JFrame{ /** * 实现框架 */ static MainFrame frm_sql = new MainFrame(); static JButton Btn_Insert = new JButton("插入"); static JButton Btn_Delete = new JButton("删除"); static JButton Btn_Update = new JButton("修改"); static JButton Btn_Query = new JButton("查询"); static JTextArea jTextArea_list = new JTextArea(34,120); static JTextField jTextField_list_question = new JTextField(120); public static void main(String[] args) throws Exception { frm_sql.add(Btn_Delete); frm_sql.add(Btn_Insert); frm_sql.add(Btn_Query); frm_sql.add(Btn_Update); /** * 设置列表框和问题提示框 */ jTextArea_list.setAutoscrolls(true); frm_sql.add(jTextArea_list);//添加jTextArea_List到框架中 frm_sql.add(jTextField_list_question); /** * 框架布局设置及属性 */ frm_sql.setLocation(2, 2);//位置 frm_sql.setSize(1366, 730);//大小 frm_sql.setLayout(new FlowLayout());//布局属性 frm_sql.setVisible(true); } }
在执行完这段代码之后。我们能够看到主框架已经显示出来,接下来需要做的事实施监听事件,因此我们需要在上面这段代码的基础上进行改造,首先将按钮加入到监听事件中,然后就会出现提示,点击后会做出
相应的响应函数,再点击删除后会在控制台输出删除二字,其他三个字符类似,代码如下所示(代码基本没有发生变化,只是添加了按钮的监听事件与响应事件):
package Java_Employer; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; public class MainFrame extends JFrame implements ActionListener { /** * 实现框架 */ static MainFrame frm_sql = new MainFrame(); static JButton Btn_Insert = new JButton("插入"); static JButton Btn_Delete = new JButton("删除"); static JButton Btn_Update = new JButton("修改"); static JButton Btn_Query = new JButton("查询"); static JTextArea jTextArea_list = new JTextArea(34,120); static JTextField jTextField_list_question = new JTextField(120); public static void main(String[] args) throws Exception { /** * 功能按钮的实现 */ Btn_Insert.addActionListener(frm_sql); Btn_Delete.addActionListener(frm_sql); Btn_Update.addActionListener(frm_sql); Btn_Query.addActionListener(frm_sql); frm_sql.add(Btn_Delete); frm_sql.add(Btn_Insert); frm_sql.add(Btn_Query); frm_sql.add(Btn_Update); /** * 设置列表框和问题提示框 */ jTextArea_list.setAutoscrolls(true); frm_sql.add(jTextArea_list);//添加jTextArea_List到框架中 frm_sql.add(jTextField_list_question); /** * 框架布局设置及属性 */ frm_sql.setLocation(2, 2);//位置 frm_sql.setTitle("Access数据库的访问"); frm_sql.setSize(1366, 730);//大小 frm_sql.setLayout(new FlowLayout());//布局属性 frm_sql.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm_sql.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("删除")) { System.out.println("删除"); } if (command.equals("插入")) { System.out.println("插入"); } if (command.equals("修改")) { System.out.println("修改"); } if (command.equals("查询")) { System.out.println("查询"); } } }
至此,主界面也有了,接着我们需进行第三步,实现数据库与主界面之间的连接及信息的交流。
三、数据库与可视化界面之间联系的建立
在与数据库连接之前,我们需要进入到Windows的配置中进行数据源的配置,现在,我们开始
1、打开“控制面板”,进入到“管理工具”,能够看到”ODBC数据源(64位)“左键双击击,接着在弹出的”ODBC数据源管理程序(64位)“对话框中选择“系统DSN”标签,选择其下的“添加”按钮,然后在弹出
的对话框“创建数据源”中选择"Microsoft Access Driver"点击完成按钮后,又弹出一个绑定数据库对话框,即“ODBC Microsoft Access安装”,在这里需要输入数据源名,这儿我们取做"DDEmployer",点击选择按钮
(如图3.1.1所示),进入文件夹选择第一步做好的数据库文件。最后配置的结果如图所示(图3.1.2)
图3.1.1 命名数据源和选择数据库文件
最终配置结果:
图3.1.2 最终配置结果
对于其他数据库的配置,我们能够参见如下链接处地址:部分数据库数据源的配置
2、在配置完之后,我们进行程序代码的访问工作,打开eclipse,进行代码的编写,首先我们为按钮事件的响应创建四个类,类的名称分别为Delete、Insert、Update、Query这四个类,在建立好类
之后,我们进行对类代码的编写,先以Insert为例,进行代码的编写,如下所示(图3.1.2为创建类Insert)
图3.1.2 创建Insert类
Insert代码:要注意的是,在代码中出现了关于NUMBER的错误,因为NUMBER为数据库的系统表示符,所以在使用时将其改为"NUMBERANDPHONE",所以在创建数据库的时候,需要使用更改后
的表示符好,即将”NUMBER“字段改为”NUMBERPHONE“字段,否则会出现Insert into语句错误的提示。
package Java_Employer; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; import java.text.DateFormat; import javax.print.attribute.DateTimeSyntax; public class Insert{ { try { String id=javax.swing.JOptionPane.showInputDialog(null,"员工编号"); String name=javax.swing.JOptionPane.showInputDialog(null,"输入姓名"); String sex=javax.swing.JOptionPane.showInputDialog(null,"输入性别"); String number=javax.swing.JOptionPane.showInputDialog(null,"输入联系方式"); String registerdate=javax.swing.JOptionPane.showInputDialog(null,"输入登记日期"); String address=javax.swing.JOptionPane.showInputDialog(null,"输入家庭住址"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement(); String sql="insert into T_EMPLOYER(ID,NAME,SEX,NUMBERANDPHONE,REGISTERDATE,ADDRESS) VALUES(?,?,?,?,?,?)"; PreparedStatement ps=conn.prepareStatement(sql); ps.setString(1,id); ps.setString(2, name); ps.setString(3, sex); ps.setString(4,(number)); ps.setString(5,registerdate); ps.setString(6, address); int i=ps.executeUpdate(); conn.commit(); System.out.println("成功添加"+i+"行"); stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } } }在编写好插入语句后,我们需要进入到MainFrame.java中进行初始化Insert函数类,即在语句中插入如下语句(Insert insert=new Insert();)即可:
if (command.equals("插入")) { System.out.println("插入"); Insert insert=new Insert(); }现在我们进行演示,点击eclipse运行主框架程序,则会弹出填写内容框,如下所示,按照要求填错写内容即可:
图3.1.3 写入员工信息
在输入完信息后,如果写入成功,则会在在eclipse控制台出现如下字样:
图3.1.4 插入结果显示信息
则会在数据库中插入数据,如下图所示:
图3.1.5 新填数据的显示结果
现在,我们完成了插入操作的代码,下面分别编写Delete、Update、Query类的实现,以相同的方法建立类,然后敲入里边的代码,下面是Delete类的代码:
package Java_Employer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; public class Delete { { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat = conn.createStatement(); String id = javax.swing.JOptionPane.showInputDialog(null,"请输入要删除的员工编号"); String sql = "DELETE FROM T_EMPLOYER WHERE ID =?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, Integer.valueOf(id)); int i = ps.executeUpdate();// 之前已经给了sql字符串,所以executeUpdate是无参的。 System.out.println("成功删除" + i + "行"); stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } } }下面是Update类的实现:
package Java_Employer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; public class Update { { try { /** * 修改 */ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement(); String id = javax.swing.JOptionPane.showInputDialog(null,"请输入要修改的员工编号"); String sex= javax.swing.JOptionPane.showInputDialog(null,"请输入要修改的员工性别"); String numberandphone= javax.swing.JOptionPane.showInputDialog(null,"请输入要修改的员工的联系方式"); String address = javax.swing.JOptionPane.showInputDialog(null,"请输入要修改的员工家庭住址"); String sql="UPDATE T_EMPLOYER SET SEX =?,NUMBERANDPHONE=?,ADDRESS=? WHERE ID=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1,sex); ps.setString(2,numberandphone); ps.setString(3,address); ps.setInt(4, Integer.valueOf(id)); int i = ps.executeUpdate();// 之前已经给了sql字符串,所以executeUpdate是无参的。 conn.commit(); System.out.println("成功修改" + i + "行"); stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } } }
下面是Query类的实现:
package Java_Employer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Query { { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement(); String id = javax.swing.JOptionPane.showInputDialog(null,"请输入要修改的员工编号"); String sql="select * from T_EMPLOYER where id=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, Integer.valueOf(id)); ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。 while(rs.next()) { System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME")+"\t"+rs.getString("SEX")+"\t"+ rs.getString("NUMBERANDPHONe")+"\t"+rs.getString("ADDRESS")); } stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); }; } }
如下图所示为测试过程
图 3.1.6 查询测试过程
最后,只有知道了数据库里的数据,我们才能够操作,因此我们在创建一个类Flashface,创建过程与上面类的创建过程类似,现将代码贴出如下,需要注意的是需要在MainFrame类中进行初始化,即在mainFrame中
加入语句“Flashface flashface=new Flashface();//显示数据库中的信息”
package Java_Employer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Flashface { { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat = conn.createStatement(); String sql = "select * from T_EMPLOYER"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeUpdate是无参的。 while (rs.next()) { System.out.println(rs.getString("ID") + "\t"+ rs.getString("NAME") + "\t" + rs.getString("SEX") + "\t" + rs.getString("NUMBERANDPHONe") + "\t"+ rs.getString("ADDRESS")); } stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } } }
在编写完上面代码之后,运行能够看到在控制台显示数据库里的信息,现在,我们已经实现了开始时提出要求的功能,为了更容易使用,我们将数据显示到界面上,只需将MainFrame中的代码作调整即可
:也就是在MainFrame类中增加一个函数show_table,详情请看下面代码:
/** * 显示table内容 */ public static void show_table() { String str=null; StringBuffer strb=new StringBuffer(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat = conn.createStatement(); String sql = "select * from T_EMPLOYER"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery();// 之前已经给了sql字符串,所以executeQuery是无参的。 while (rs.next()) { /*System.out.println(rs.getString("ID") + "\t"+ rs.getString("NAME") + "\t" + rs.getString("SEX") + "\t" + rs.getString("NUMBERANDPHONE") + "\t"+rs.getString("REGISTERDATE")+"\t"+ rs.getString("ADDRESS"));*/ str=str+(rs.getString("ID") + "\t"+ rs.getString("NAME") + "\t" + rs.getString("SEX") + "\t" + rs.getString("NUMBERANDPHONE") + "\t"+rs.getString("REGISTERDATE")+"\t"+ rs.getString("ADDRESS")+"\n"); } stat.close(); conn.close(); } catch (Exception e1) { e1.printStackTrace(); } jTextArea_list.setText(str); }
增加这个函数后就能够及时的查看数据库里的内容。
下面是程于最终的运行界面:
哈哈哈,到此,我们已经完成了全部工作,当然含有很多缺点在程序中,比如输入对话框弹出式,假如用户不输入任何信息时,插入时员工编号重叠时,查找时没有要找的信息等这些情况,都没具有相应
的处理程序,希望读者能够注意到,有兴趣的可以继续修改。谢谢。
相关文章推荐
- 经典sql语法
- mysql事务之可重复读(Repeated Read)
- mysql事务之提交读(Read Committed)
- 优化mysql数据库性能的十个参数
- mysql事务之未提交读(Read uncommitted)
- 解压安装5.7以上版本的MySQL
- MySQL同时执行多条查询
- SQL server 2014安装以及解决连接数据库失败问题
- mysql数据库sql优化原则
- 详解mysql int类型的长度值问题
- oracle三层嵌套来实现分页
- mysql导入/导出CSV文件
- redis和spring整合
- 不安装oracle客户端使用plsql连接oracle数据库的方法
- redis入门及java操作
- 50个经典常用的sql语句
- SQL Server 常用分页SQL
- Node.js使用MongoDB
- 创建数据库、文件组、删除数据库
- 关于oracle中varchar2的长度范围