📄 jdbcdataconn1.java
字号:
//配置考生表专用类
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class JdbcDataConn1 extends Frame implements ItemListener,ActionListener{
Connection conUser;
Statement cmdUser;
ResultSet rsUser;
boolean blnSuccessfulOpen=false;
String dbname="test";
String user="123";
String pass="s";
String db="";
Choice lstNames=new Choice();
TextField txtId=new TextField(10);
TextField txtName=new TextField(10);
Choice txtSex=new Choice();
TextField txtTime=new TextField(9);
Button btnAdd=new Button("增加");
Button btnEdit=new Button("保存");
Button btnDelete=new Button("删除");
Button btnCancel=new Button("取消");
Button btnExit=new Button("退出");
Label lblMessage=new Label(" ");
// public static void main(String args[])
// {
// JdbcDataConn1 thisApp=new JdbcDataConn1();
//thisApp.createInterFace("test","","","access");
// }
public void createInterFace(String dbname,String user,String pass,String db){
this.dbname=dbname;
this.user=user;
this.pass=pass;
this.db=db;
loadDatabase();
if(blnSuccessfulOpen){
setTitle("配置用户表");
//addWindowListener(new WindowAdapter(){
// public void windowClosing(WindowEvent event)
// {stop();
// System.exit(0);
// }});
setLayout(new BorderLayout());
//北区
Panel pnlTop=new Panel(new GridLayout(2,2,10,10));
pnlTop.setBackground(new Color(244,255,254));
pnlTop.add(new Label("考号"));
lstNames.insert("请选择考号",0);
pnlTop.add(lstNames);
pnlTop.add(new Label(" "));
add(pnlTop,"North");
//中区
Panel pnlMiddle=new Panel(new GridLayout(5,2,10,10));
pnlMiddle.setBackground(new Color(244,255,254));
pnlMiddle.getInsets();//得到panel的大小
pnlMiddle.add(new Label("考号"));
pnlMiddle.add(txtId);
pnlMiddle.add(new Label("姓名"));
pnlMiddle.add(txtName);
pnlMiddle.add(new Label("性别"));
txtSex.add("男");txtSex.add("女");
pnlMiddle.add(txtSex);
pnlMiddle.add(new Label("考试时间(分钟)"));
pnlMiddle.add(txtTime);
setTextToNotEditable();
Panel pnlLeftButtons=new Panel(new GridLayout(0,2,10,10));
Panel pnlRightButtons=new Panel(new GridLayout(0,3,10,10));
pnlLeftButtons.setBackground(new Color(244,255,254));
pnlRightButtons.setBackground(new Color(244,255,254));
pnlLeftButtons.add(btnAdd);
btnAdd.addActionListener(this);
pnlLeftButtons.add(btnEdit);
btnEdit.addActionListener(this);
pnlRightButtons.add(btnDelete);
btnDelete.addActionListener(this);
pnlRightButtons.add(btnCancel);
btnCancel.addActionListener(this);
btnCancel.setEnabled(false);
pnlRightButtons.add(btnExit);
btnExit.addActionListener(this);
pnlMiddle.add(pnlLeftButtons);
pnlMiddle.add(pnlRightButtons);
add(pnlMiddle,"Center");
add(lblMessage,"South");
lblMessage.setForeground(Color.red);
lblMessage.setBackground(new Color(244,255,254));
lblMessage.setText("本行显示数据库考生表操作中的错误");
setSize(400,300);this.setLocation(200,200);
setVisible(true);
this.setBackground(new Color(244,255,254));
}
else
{
stop();
System.exit(-1);
} }
public Insets insets(){
return new Insets(40,15,15,15);
}
public void loadDatabase(){
if(this.db=="sqlserver")
{ try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(ClassNotFoundException err){
lblMessage.setText("驱动未找到");
}
try{
conUser=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+dbname,user,pass);
cmdUser=conUser.createStatement();
rsUser=cmdUser.executeQuery("select * from user1");
loadNames(rsUser);
blnSuccessfulOpen=true;
}
catch(SQLException error){
lblMessage.setText("Error:"+error.toString());
}}
if(this.db=="access")
{ try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException err){
lblMessage.setText("驱动未找到");
}
try{
conUser=DriverManager.getConnection("jdbc:odbc:"+dbname,user,pass);
cmdUser=conUser.createStatement();
rsUser=cmdUser.executeQuery("select * from user1");
loadNames(rsUser);
blnSuccessfulOpen=true;
}
catch(SQLException error){
lblMessage.setText("Error:"+error.toString());
}}
if(this.db=="mysql")
{ try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException err){
lblMessage.setText("驱动未找到");
}
try{
conUser=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/"+dbname+"?user="+user+"&password="+pass);
cmdUser=conUser.createStatement();
rsUser=cmdUser.executeQuery("select * from user1");
loadNames(rsUser);
blnSuccessfulOpen=true;
}
catch(SQLException error){
lblMessage.setText("Error:"+error.toString());
}}
if(this.db=="access数据库直连")
{ try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException err){
lblMessage.setText("驱动未找到");
}
try{
conUser=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbname,user,pass);
cmdUser=conUser.createStatement();
rsUser=cmdUser.executeQuery("select * from user1");
loadNames(rsUser);
blnSuccessfulOpen=true;
}
catch(SQLException error){
lblMessage.setText("Error:"+error.toString());
}}
}
public void loadNames(ResultSet rsUser){
try{
while(rsUser.next())
lstNames.add(rsUser.getString(1));
lstNames.addItemListener(this);
}
catch(SQLException error){
lblMessage.setText("显示题数出错"+error.toString());
}
}
public void itemStateChanged(ItemEvent event){
String strLastName=lstNames.getSelectedItem();
lblMessage.setText("");
try{
rsUser=cmdUser.executeQuery("select * from user1 where id='"+strLastName+"'");
txtId.setText(strLastName);
displayRecord(rsUser);
setTextToEditable();
}
catch(SQLException error){
lblMessage.setText("出错"+error.toString());
}
}
public void displayRecord(ResultSet rsUser){
try{
if(rsUser.next()){
txtName.setText(rsUser.getString(2));
txtSex.select(rsUser.getString(3));
txtTime.setText(rsUser.getString(4));
lblMessage.setText("");
}
}
catch(SQLException error){
lblMessage.setText("出错"+error.toString());
}
}
public void actionPerformed(ActionEvent event){
Object objSource=event.getSource();
if(objSource==btnAdd&&event.getActionCommand()=="增加")
Add();
else if(objSource==btnAdd)
Save();
else if(objSource==btnEdit)
Edit();
else if(objSource==btnDelete)
Delete();
else if(objSource==btnCancel)
Cancel();
else if(objSource==btnExit){
stop();dispose();
}
}
public void setTextToNotEditable(){
txtId.setEditable(false);
txtName.setEditable(false);
txtTime.setEditable(false);
}
public void setTextToEditable(){
txtId.setEditable(true);
txtName.setEditable(true);
txtTime.setEditable(true);
}
public void clearTextFields(){
txtId.setText("");
txtName.setText("");
txtSex.select(1);
txtTime.setText("");
}
public void Add(){
lblMessage.setText(" ");
setTextToEditable();
clearTextFields();
txtId.requestFocus();//此方法为组件请求焦点
btnAdd.setLabel("确定");
btnCancel.setEnabled(true);
btnDelete.setEnabled(false);
btnEdit.setEnabled(false);
}
public void Save(){
String sa1="insert into user1([id],[name],[sex],[time]) values('"+txtId.getText()+"','"+txtName.getText()+"','"+txtSex.getSelectedItem()+"','"+txtTime.getText()+"')";
if(this.db=="mysql")
sa1="insert into user1(id,name,sex,time) values('"+txtId.getText()+"','"+txtName.getText()+"','"+txtSex.getSelectedItem()+"','"+txtTime.getText()+"')";
if(txtId.getText().length()==0||txtName.getText().length()==0)
lblMessage.setText("不能为空");
else{
try{
cmdUser.executeUpdate(sa1);
lstNames.add(txtId.getText());
Cancel();
lblMessage.setText("保存成功");
}
catch(SQLException error){
lblMessage.setText("错误"+error.toString());
}
}
}
public void Delete(){
int intIndex=lstNames.getSelectedIndex();
String strLastName=lstNames.getSelectedItem();
String de1="delete from user1 where [id]='"+strLastName+"'";
if(this.db=="mysql")
de1="delete from user1 where id='"+strLastName+"'";
if(intIndex==0)
lblMessage.setText("请选择要删除的题号");
else{
try{
cmdUser.executeUpdate(de1);
clearTextFields();
lstNames.remove(intIndex);
lblMessage.setText("记录已删除");
}
catch(SQLException error){
lblMessage.setText("错误"+error.toString());
}
}
}
public void Cancel(){
btnDelete.setEnabled(true);
btnEdit.setEnabled(true);
btnCancel.setEnabled(false);
btnAdd.setLabel("增加");
clearTextFields();
lblMessage.setText("");
}
public void Edit(){
int intIndex=lstNames.getSelectedIndex();
if(intIndex==0)
lblMessage.setText("选择要修改的记录");
else{
String strLastName=lstNames.getSelectedItem();
try{
cmdUser.executeUpdate("update user1 set [id]='"+txtId.getText()+"',[name]='"+txtName.getText()+"',[sex]='"+txtSex.getSelectedItem()+"',[time]='"+txtTime.getText()+"' where [id]='"+strLastName+"'");
lblMessage.setText("修改成功");
if(!strLastName.equals(txtId.getText()))
{
lstNames.remove(intIndex);
lstNames.add(txtId.getText());
}
}
catch(SQLException error){
lblMessage.setText("错误"+error.toString());
}
}
}
public void stop(){
try{
if(conUser!=null)
conUser.close();
}
catch(SQLException error){
lblMessage.setText("连接无法结束");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -