Java 数据库程序设计.docx
《Java 数据库程序设计.docx》由会员分享,可在线阅读,更多相关《Java 数据库程序设计.docx(15页珍藏版)》请在冰豆网上搜索。
Java数据库程序设计
Java数据库程序设计
一、实验目的
1.了解JDBC体系结构中的层以及驱动程序的种类
2.掌握JDBCAPI的类和接口
3.掌握创建JDBC应用程序的方法
二、准备工作
1.JDK的安装设置:
JDK/JRE/JVM;
2.Eclipse集成开发环境的绿色安装;
三、实验描述
1.实验类型:
设计
2.实验学时:
2学时
3.实验内容:
编写代码来创建使用PreparedStatement对象的应用程序
四、实验结果
(1)界面显示:
如下图,左边每一个label对应右面JTextfield,用来输入信息,下面Insert,Update,Delete用来增、删、改、查,Clear、Exit用来控制:
(2)Insert插入信息:
当插入成功是最上面标签颜色变成黄色,如下图:
当插入失败时,标签颜色变成红色,同时弹出对话框:
(2)依次插入信息,最后测试数据库内容如下:
(3)Update操作:
将上面数据库第三条记录:
Publishersname改为江苏科技大学出版社,city改为张家港。
结果如下:
(4)查询操作:
选择ComboBox相应年份,界面显示相关信息:
(5)删除操作:
选择ComboBox相关年份,点击Delete按钮,删除数据库相关信息:
四、实验代码
importjava.awt.*;
importjavax.swing.event.*;
importjava.util.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.PreparedStatement;
publicclassPublishersextendsJFrameimplementsActionListener,ItemListener{
StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加载JDBC驱动
StringdbURL="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=Publishers";//连接服务器和数据库test
StringuserName="sa";//默认用户名
StringuserPwd="123";//密码
PreparedStatementst=null;
Statementst1=null;
ResultSetrs=null;
ConnectiondbConn=null;
JLabellabel1,label2,label3,label4,label5,label6,label7,label8;//声明相关组件
JTextFieldtext1,text2,text3,text4,text5,text6,text7;
JComboBoxyear;
JButtonInsert,Update,Delete,Clear,Exit;
publicPublishers(){//构造函数,初始化JFrame
setTitle("PUBLISHERS");
setBounds(100,100,1050,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
}
publicvoidinit(){//创建相关组件
setLayout(null);
label1=newJLabel("PUBLISHERSINFORMATIONS");
label2=newJLabel("PUBLISHERSID:
");
label3=newJLabel("PUBLISHERSNAME:
");
label4=newJLabel("PHONENUMBER:
");
label5=newJLabel("ADDRESS:
");
label6=newJLabel("CITY:
");
label7=newJLabel("STATE:
");
label8=newJLabel("ZIP:
");
label1.setVisible(true);
label2.setVisible(true);
label3.setVisible(true);
label4.setVisible(true);
label5.setVisible(true);
label6.setVisible(true);
label7.setVisible(true);
label8.setVisible(true);
label1.setBounds(400,0,400,50);
label2.setBounds(100,50,200,50);
label3.setBounds(100,100,200,50);
label4.setBounds(100,150,200,50);
label5.setBounds(100,200,200,50);
label6.setBounds(100,250,200,50);
label7.setBounds(100,300,200,50);
label8.setBounds(100,350,200,50);
Fontfont=newFont(null,Font.BOLD,20);
label1.setFont(font);
add(label1);
add(label2);
add(label3);
add(label4);
add(label5);
add(label6);
add(label7);
add(label8);
text1=newJTextField();
text2=newJTextField();
text3=newJTextField();
text4=newJTextField();
text5=newJTextField();
text6=newJTextField();
text7=newJTextField();
text1.setBounds(800,50,200,30);
text2.setBounds(800,100,200,30);
text3.setBounds(800,150,200,30);
text4.setBounds(800,200,200,30);
text5.setBounds(800,250,200,30);
text6.setBounds(800,300,200,30);
text7.setBounds(800,350,200,30);
text1.setVisible(true);
text2.setVisible(true);
text3.setVisible(true);
text4.setVisible(true);
text5.setVisible(true);
text6.setVisible(true);
text7.setVisible(true);
add(text1);
add(text2);
add(text3);
add(text4);
add(text5);
add(text6);
add(text7);
Insert=newJButton("Insert");
Update=newJButton("Update");
Delete=newJButton("Delete");
Clear=newJButton("Clear");
Exit=newJButton("Exit");
Insert.setBounds(100,500,100,50);
Update.setBounds(250,500,100,50);
Delete.setBounds(400,500,100,50);
Clear.setBounds(600,500,100,50);
Exit.setBounds(750,500,100,50);
add(Insert);
add(Update);
add(Delete);
add(Clear);
add(Exit);
year=newJComboBox();
year.addItem("2010");
year.addItem("2011");
year.addItem("2012");
year.addItem("2013");
year.setBounds(500,100,200,30);
year.setVisible(true);
add(year);
Insert.addActionListener(this);//注册侦听器
Clear.addActionListener(this);
Exit.addActionListener(this);
Update.addActionListener(this);
Delete.addActionListener(this);
year.addItemListener(this);
try{//连接数据库
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("ConnectionSuccessful!
");//如果连接成功
//控制台输出Connection
//Successful!
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Publisherspublishers=newPublishers();
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==Insert){//插入Insert按钮
intflag=0;
Stringsql="insertintopublishersinfovalues(?
?
?
?
?
?
?
?
)";
try{
st=dbConn.prepareStatement(sql);
st.setString(1,year.getSelectedItem().toString());
st.setString(2,text1.getText().trim());
st.setString(3,text2.getText().trim());
st.setString(4,text3.getText().trim());
st.setString(5,text4.getText().trim());
st.setString(6,text5.getText().trim());
st.setString(7,text6.getText().trim());
st.setString(8,text7.getText().trim());
flag=st.executeUpdate();
System.out.println(flag);
if(flag==1){
label1.setForeground(Color.yellow);
}
}catch(SQLExceptione1){//错误警告
label1.setForeground(Color.red);
JOptionPane.showMessageDialog(this,"执行此操作错误!
!
!
","警告对话框",
JOptionPane.WARNING_MESSAGE);
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
System.out.println("Updatesuccessful!
!
!
\n");
}
if(e.getSource()==Update){//更新Update按钮
try{
intflag=0;
Stringsql="updatepublishersinfoset[publishersid]=?
[publishersname]=?
[phonenumber]=?
address=?
city=?
state=?
zip=?
whereYear=?
";
st=dbConn.prepareStatement(sql);
st.setString(1,text1.getText().trim());
st.setString(2,text2.getText().trim());
st.setString(3,text3.getText().trim());
st.setString(4,text4.getText().trim());
st.setString(5,text5.getText().trim());
st.setString(6,text6.getText().trim());
st.setString(7,text7.getText().trim());
st.setString(8,year.getSelectedItem().toString());
flag=st.executeUpdate();
System.out.println("update:
"+flag);
if(flag>=1){
label1.setForeground(Color.yellow);
}
}catch(SQLExceptione1){//错误报警
//TODOAuto-generatedcatchblock
JOptionPane.showMessageDialog(this,"执行此操作错误!
!
!
","警告对话框",
JOptionPane.WARNING_MESSAGE);
label1.setForeground(Color.red);
e1.printStackTrace();
}
}
if(e.getSource()==Delete){//删除Delete操作
try{
intflag=0;
Stringsql="deletefrompublishersinfowhereYear=?
";
st=dbConn.prepareStatement(sql);
st.setString(1,year.getSelectedItem().toString());
flag=st.executeUpdate();
System.out.println("update:
"+flag);
if(flag>=1){
label1.setForeground(Color.yellow);
}
}catch(SQLExceptione1){//错误警告
//TODOAuto-generatedcatchblock
JOptionPane.showMessageDialog(this,"执行此操作错误!
!
!
","警告对话框",
JOptionPane.WARNING_MESSAGE);
label1.setForeground(Color.red);
e1.printStackTrace();
}
}
if(e.getSource()==Clear){//Clear按钮
text1.setText(null);
text2.setText(null);
text3.setText(null);
text4.setText(null);
text5.setText(null);
text6.setText(null);
text7.setText(null);
}
if(e.getSource()==Exit){//Exit按钮
System.exit(0);
}
}
@Override
publicvoiditemStateChanged(ItemEvente){//JCoboBox选择相应年份,显示数据库信息
//TODOAuto-generatedmethodstub
Stringsql="select*frompublishersinfowhereYear=?
";
try{
st=dbConn.prepareStatement(sql);
st.setString(1,year.getSelectedItem().toString());
rs=st.executeQuery();
Stringstr[]=newString[8];
intcount=0;
while(rs.next()){
text1.setText(rs.getString
(2));
text2.setText(rs.getString(3));
text3.setText(rs.getString(4));
text4.setText(rs.getString(5));
text5.setText(rs.getString(6));
text6.setText(rs.getString(7));
text7.setText(rs.getString(8));
}
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
label1.setForeground(Color.red);
e1.printStackTrace();
}
}
}