Java数据库程序设计.docx
《Java数据库程序设计.docx》由会员分享,可在线阅读,更多相关《Java数据库程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
Java数据库程序设计
Java
数据库程序设计
一、实验目的
1.了解JDBC体系结构中的层以及驱动程序的种类
2.掌握JDBCAPI的类和接口
3.掌握创建JDBC应用程序的方法
二、准备工作
1.JDK的安装设置:
JDK/JRE/JVM
2.Eclipse集成开发环境的绿色安装;
三、实验描述
1.实验类型:
设计
2.实验学时:
2学时
3.实验内容:
编写代码来创建使用PreparedStatement对象的应用程序
四、实验结果
(1)
界面显示:
如下图,左边每一个label对应右面JTextfield,用来输入信息,下面Insert,UpdateQelete用来增、删、改、查,Clear、Exit用来控制:
PUBLISHERSIP;
201GPUBLISHERSNAME!
PfldNEHUWBfR:
ADORESS:
□IT
STATE
ZIP:
(2)Insert插入信息:
当插入成功是最上面标签颜色变成黄色,如下图:
PUSlISHI-R^IQ:
PUBUFIXERSNAME:
IHdONENUfcKRFR:
ADOflE^S:
CITY:
5TATB
OP:
2010
卜¥湎向J:
據设计
W华无賓蛭些
^DOGOOQ
Its
由国
■s*rt
U0dM
cwie
Claw
Exrt
当插入失败时,标签颜色变成红色,同时弹出对话框:
凹PUBUSHERS
PUBU5JERSID!
PUBUSHERSNAME!
PHONENUMBER^
ADDRESS:
crrr;
5IA7E;
DPT
PUBLISHERSINFORMATIONS
hisKrl
—
Updarlii
Delebe
Ctaar
Em
(2)依次插入信息,最后测试数据库内容如下:
二结果.1
puUishera-id
pubtishersname
phonenurrib-er
BddkE55
dfy
stolezip
1
I3010
]费0面向st®设V
舌华尢字出社
QOOCNXHH
寸谅
中国
2
五iii
槪115库匣酣应用
僚丈通丈学出删
00000001
JUS
中国
3
2012
锻机EE理与挤口
辽确狀学
DOCOQOW
江苏
iKI
中国
(3)Update操作:
将上面数据库第三条记录:
Publishersname改为江苏科技
大学出版社,city改为张家港。
结果如下:
(4)查询操作:
选择ComboBo相应年份,界面显示相关信息:
(5)删除操作:
选择ComboBo相关年份,点击Delete按钮,删除数据库相关信息:
结
1-
Ymt
puNisbensid
pu^iabefBname
phonenumbeff
aty
11paat
邱m面甸羽負设计
衿丈学出阪社
0000000(}
北点
巾国
22311
魏据障股理与贞用
交话丸学出蒯
(KXKX3001
itSt
北点
中国
四、实验代码
importimportimportimport
java.awt.*;javax.swing.event.*;java.util.*;java.awt.event.*;
importimportimportimportimportimportimport
javax.swing.*;
java.sql.Connection;java.sql.DriverManager;java.sql.ResultSet;java.sql.SQLException;java.sql.Statement;java.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(
label2=newJLabel(
label3=newJLabel(
创建相关组件
"PUBLISHERSINFORMATIONS");
"PUBLISHERSID:
");
"PUBLISHERSNAME:
");
label4
label5
label6
label7
label8
=newJLabel(=newJLabel(=newJLabel(=newJLabel(=newJLabel(
"PHONENUMBER:
");
"ADDRESS:
");
"CITY:
"
);
"STATE:
");
"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(textl);
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"1
year.addItem(
"2013"1
year.setBounds(500,100,200,30);
this);//注册侦听器this);
this);
this);
this);
this);
year.setVisible(true);add(year);
Insert.addActionListener(Clear.addActionListener(Exit.addActionListener(Update.addActionListener(Delete.addActionListener(year.addItemListener(
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="insertintopublishersinfo
values(?
?
?
?
?
?
?
?
)";
try{
st=dbConn.prepareStatement(sql);
st.setString(1,
year
.getSelectedltem().toString())
st.setString(2,
textl
.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){
labell.setForeground(Color.yellow);
}
}catch(SQLExceptione1){//错误警告
labell.setForeground(Color.red);
JOptionPane.showMessageDialog(this,"执行此操作错误!
!
!
警告对话框",
JOptionPane.WARNING_MESSAG);E
//TODOAuto-generatedcatchblocke1.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_MESSAG);E
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){
Iabel1.setForeground(Color.yellow);
}
}catch(SQLExceptione1){//错误警告
//TODOAuto-generatedcatchblock
JOptionPane.showMessageDialog(this,"执行此操作错误!
!
!
警告对话框",
JOptionPane.WARNING_MESSAGE
label1.setForeground(Color.red);
e1.printStackTrace();
}
@Override
publicvoiditemStateChanged(ltemEvente){//JCoboBox选择相应年份,显
示数据库信息
//TODOAuto-generatedmethodstub
Stringsql="select*frompublishersinfowhereYear=?
";
try{
st=dbConn.prepareStatement(sql);
st.setString(1,year.getSelectedltem().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-generatedcatchblocklabel1.setForeground(Color.red);e1.printStackTrace();
}
}