SQL实验七.docx
- 文档编号:13725687
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:24
- 大小:508.13KB
SQL实验七.docx
《SQL实验七.docx》由会员分享,可在线阅读,更多相关《SQL实验七.docx(24页珍藏版)》请在冰点文库上搜索。
SQL实验七
《数据库原理》实验报告
一、实验使用环境:
SQLServer2005、eclipse软件
二、实验内容与完成情况:
该实验选择对“Employees”表进行操作,以下是“Employees”表初始的状态:
创建“数据源(ODBC)”具体步骤:
“开始”-“控制面板”-“管理工具”-“数据源(ODBC)
-在用户DNS里,点“添加”--在数据源驱动列表最下方选择“SQLServer”
-点“完成”--出现了一个创建到SQLServer的新数据源
-在数据源“名称”右侧,填写数据库的名称;在“服务器”右侧,写(local)
-点“下一步”--继续点“下一步”
-在更改默认的数据库为“SalesDatabase”,这个数据库中有这张雇员表。
-点“下一步”
-点“完成”
-出现一个“ODBCMicrosoftSQLServer安装”对话框
-点击下面的“测试数据源”
出现测试成功。
连接成功后JAVA源程序:
1.数据库的连接SalesDatabaseConnect.java
importjava.sql.*;
//创建数据库连接类
publicclassSalesDatabaseConnect
{publicstaticConnectiongetConn()throwsException
{
//加载JDBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
returnDriverManager.getConnection("jdbc:
odbc:
SalesDatabase","","");
}
}
2.员工的添加Add.java
//导入系统的类包
importjava.awt.*;
importjava.sql.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassAddextendsJPanelimplementsActionListener
{
//声明连接数据库对象
Connectioncon;
//声明SQL语句对象
Statementst;
//创建组件对象:
标签、文本行、单选
JLabeljLabel1=newJLabel("编号");
JLabeljLabel2=newJLabel("姓名");
JLabeljLabel3=newJLabel("性别");
JLabeljLabel4=newJLabel("部门");
JLabeljLabel5=newJLabel("电话");
JLabeljLabel6=newJLabel("地址");
JTextFieldjTextField1=newJTextField();
JTextFieldjTextField2=newJTextField();
JTextFieldjTextField3=newJTextField();
JTextFieldjTextField4=newJTextField();
JTextFieldjTextField5=newJTextField();
JRadioButtonjRadioButton1=newJRadioButton("男");
JRadioButtonjRadioButton2=newJRadioButton("女");
ButtonGroupbuttonGroup1=newButtonGroup();
JButtonjButton1=newJButton("存入数据库");
//构造方法
publicAdd()
{
try{
//调用初始化方法
jbInit();
}
catch(Exceptionexception){
exception.printStackTrace();
}
}
//界面初始化方法
privatevoidjbInit()throwsException
{
//连接数据库
con=SalesDatabaseConnect.getConn();
st=con.createStatement();
//框架的布局
this.setLayout(null);
//设置各组件的大小
jLabel1.setBounds(newRectangle(21,17,64,24));
jLabel2.setBounds(newRectangle(21,51,53,22));
jLabel3.setBounds(newRectangle(21,86,61,27));
jLabel4.setBounds(newRectangle(21,122,59,25));
jLabel5.setBounds(newRectangle(21,153,54,24));
jLabel6.setBounds(newRectangle(21,183,219,27));
jTextField1.setBounds(newRectangle(102,10,200,30));
jTextField2.setBounds(newRectangle(102,49,200,30));
jTextField3.setBounds(newRectangle(102,117,200,33));
jTextField4.setBounds(newRectangle(102,153,200,29));
jTextField5.setBounds(newRectangle(102,183,200,29));
jRadioButton1.setBounds(newRectangle(102,83,65,30));
jRadioButton2.setBounds(newRectangle(190,85,85,30));
jButton1.setBounds(newRectangle(103,217,180,30));
//设置单选按钮被选中
jRadioButton1.setSelected(true);
//添加按钮动作事件
jButton1.addActionListener(this);
//添加组件到面板
this.add(jLabel1);
this.add(jTextField1);
this.add(jLabel2);
this.add(jTextField2);
this.add(jLabel3);
this.add(jRadioButton1);
this.add(jRadioButton2);
this.add(jLabel4);
this.add(jTextField3);
this.add(jLabel5);
this.add(jTextField4);
this.add(jLabel6);
this.add(jTextField5);
this.add(jButton1);
buttonGroup1.add(jRadioButton1);
buttonGroup1.add(jRadioButton2);
}
//点击按钮事件
publicvoidactionPerformed(ActionEvente)
{
//获取用户输入的信息
Stringbianhao=jTextField1.getText();
Stringxingming=jTextField2.getText();
Stringxingbie="";
if(jRadioButton1.isSelected())
xingbie+="男";
if(jRadioButton2.isSelected())
xingbie+="女";
Stringbumen=jTextField3.getText();
Stringdianhua=jTextField4.getText();
Stringdizhi=jTextField5.getText();
try{
//利用st对象执行SQL语句,进行插入操作
st.executeUpdate("insertintoEmployeesvalues"+
"('"+bianhao+"','"+xingming+"','"+xingbie+"','"
+bumen+"','"+dianhua+"','"+dizhi+"')");
//清空文本行的内容
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
//利用消息对话框提示删除操作成功
JOptionPane.showMessageDialog(this,"插入成功!
");
}
catch(Exceptionex){
//利用消息对话框提示不能插入,并显示异常的信息
JOptionPane.showMessageDialog(this,"输入数据错误或者数据库不允许插入!
");
ex.printStackTrace();
}
}
}
3.员工的删除Delete.java
//导入系统的类包
importjava.awt.*;
importjava.sql.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassDeleteextendsJPanelimplementsActionListener
{
//声明连接数据库对象
Connectioncon;
//声明SQL语句对象
Statementst;
//创建组件对象
JLabeljLabel1=newJLabel("请输入待删除的编号:
");//jLabel标签
JTextFieldjTextField1=newJTextField();
JButtonjButton1=newJButton("删除");
//构造方法
publicDelete()
{
try{
//调用初始化方法
jbInit();
}
catch(Exceptionexception){
exception.printStackTrace();
}
}
//界面初始化方法
privatevoidjbInit()throwsException
{
//连接数据库
con=SalesDatabaseConnect.getConn();
st=con.createStatement();
//框架的布局
this.setLayout(null);
//设置各组件的大小
jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,14));//定义字形
jLabel1.setBounds(newRectangle(70,20,200,30));//设置放字符串的框架大小
jTextField1.setBounds(newRectangle(70,80,207,41));
jButton1.setBounds(newRectangle(70,175,205,36));
//添加按钮动作事件
jButton1.addActionListener(this);
//添加组件到面板
this.add(jLabel1);
this.add(jTextField1);
this.add(jButton1);
}
//点击按钮事件
publicvoidactionPerformed(ActionEvente)
{
//获取用户输入的编号
Stringbianhao=jTextField1.getText();
//要求用户确认删除
if(JOptionPane.showConfirmDialog(this,"确认要删除吗?
")==JOptionPane.YES_OPTION)
{
try{
//利用st对象执行SQL删除操作
st.executeUpdate("deletefromEmployeeswhere编号='"+bianhao+"'");
//利用消息对话框提示删除操作成功
JOptionPane.showMessageDialog(this,"删除操作成功!
");
//清空输入编号的文本行
jTextField1.setText("");
}
catch(Exceptionex){
//利用消息对话框提示不能删除
JOptionPane.showMessageDialog(this,"删除操作执行失败!
");
}
}
}
}
4.员工的查询Select.java
//导入系统的类包
importjava.awt.*;
importjava.sql.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassSelectextendsJPanelimplementsActionListener
{
//声明连接数据库对象
Connectioncon;
//声明SQL语句对象
Statementst;
//创建组件对象:
标签、文本行、单选
JLabeljLabel1=newJLabel("请输入待查询的员工的编号:
");
JTextFieldjTextField1=newJTextField();
JButtonjButton1=newJButton("按编号查询");
JTextAreajTextArea1=newJTextArea();
//构造方法
publicSelect()
{
try{
//调用初始化方法
jbInit();
}
catch(Exceptionexception){
exception.printStackTrace();
}
}
//面板初始化方法
privatevoidjbInit()throwsException
{
//连接数据库
con=SalesDatabaseConnect.getConn();
st=con.createStatement();
//框架的布局
this.setLayout(null);
//设置各组件的大小
jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,16));
jLabel1.setBounds(newRectangle(46,4,222,32));
jTextField1.setBounds(newRectangle(47,37,247,31));
jButton1.setBounds(newRectangle(47,86,247,30));
jTextArea1.setBounds(newRectangle(24,130,305,109));
//添加按钮动作事件
jButton1.addActionListener(this);
//添加组件到面板
this.add(jLabel1);
this.add(jTextField1);
this.add(jTextArea1);
this.add(jButton1);
}
//点击按钮事件
publicvoidactionPerformed(ActionEvente)
{
//获取用户输入的编号
Stringbianhao=jTextField1.getText();
//清空文本区原有的内容
jTextArea1.setText("");
try{
//利用st对象执行SQL语句,返回结果集对象
ResultSetrs=st.executeQuery("select*fromEmployeeswhere编号='"+bianhao+"'");
//处理结果集:
逐条显示结果集中的记录
if(rs.next())
{
jTextArea1.setText("编号:
"+rs.getString("编号")+"姓名:
"+rs.getString("姓名")+"性别:
"
+rs.getString("性别")+"\n部门:
"+rs.getString("部门")+
"电话:
"+rs.getString("电话")+"\n");
//清空文本行的内容
jTextField1.setText("");
}
else
{
JOptionPane.showMessageDialog(this,"没有这个员工!
");
}
}
catch(Exceptionex){
//利用消息对话框提示查询失败
JOptionPane.showMessageDialog(this,"查询失败!
");
}
}
}
5.主界面的设计Mainframe.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//创建主界面类
publicclassMainFrameextendsJFrameimplementsActionListener
{
//创建内容面板
JPanelcontentPane;
JButtontianjia=newJButton("添加");
JButtonshanchu=newJButton("删除");
JButtonchaxun=newJButton("查询");
JLabeljLabel1=newJLabel("欢迎使用员工管理系统");
//构造方法,创建对象时自动调用
publicMainFrame()
{
try{
//关闭框架窗口时的默认事件方法
setDefaultCloseOperation(EXIT_ON_CLOSE);
//调用初始化方法
jbInit();
}
catch(Exceptionexception){
exception.printStackTrace();
}
}
//界面初始化方法
privatevoidjbInit()throwsException
{
//创建内容面板和其布局
contentPane=(JPanel)getContentPane();
contentPane.setLayout(null);
//框架的大小和其标题
setSize(newDimension(400,320));
setTitle("员工管理系统");
//添加事件监听器
tianjia.addActionListener(this);
shanchu.addActionListener(this);
chaxun.addActionListener(this);
//添加标签到内容面板
contentPane.add(jLabel1);
contentPane.add(tianjia);
contentPane.add(shanchu);
contentPane.add(chaxun);
//设置标签组件的大小和字体
jLabel1.setFont(newjava.awt.Font("宋体",Font.BOLD,20));
jLabel1.setBounds(newRectangle(90,0,275,55));
tianjia.setFont(newjava.awt.Font("宋体",Font.BOLD,15));
tianjia.setBounds(newRectangle(70,77,70,55));
shanchu.setFont(newjava.awt.Font("宋体",Font.BOLD,15));
shanchu.setBounds(newRectangle(160,77,70,55));
chaxun.setFont(newjava.awt.Font("宋体",Font.BOLD,15));
chaxun.setBounds(newRectangle(250,77,70,55));
}
//菜单事件的处理方法
publicvoidactionPerformed(ActionEventactionEvent)
{
if(actionEvent.getSource()==tianjia)
{
//创建添加员工面板对象
Addadd=newAdd();
//移除主界面上原有的内容
this.remove(this.getContentPane());
this.setContentPane(add);
//令界面可见
this.setVisible(true);
}
if(actionEvent.getSource()==shanchu)
{
//创建删除员工面板对象
Deletedel=newDelete();
//移除主界面上原有的内容
this.remove(this.getContentPane());
this.setContentPane(del);
//令界面可见
this.setVisible(true);
}
if(actionEvent.getSource()==chaxun)
{
//创建“按员工查询”面板对象
Selectsel=newSelect();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 实验七 实验