沒有錯的,你在sql執(zhí)行后面加個手動提交呢,conn.commit();//conn這是數(shù)據(jù)庫連接變量,根據(jù)你自己的修改下。
10余年的儋州網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整儋州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“儋州網(wǎng)站設計”,“儋州網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
進口java.awt。*;
進口java.awt.event。*;
進口javax.swing。*;
進口. io . *;
進口java.util。*;
類學生實現(xiàn)java.io.Serializable {
串號,姓名,專業(yè),年級,波爾斯,性;
公共的學生(){ };
公共空間setNumber(弦號){ this.number =數(shù)量;}
公共字符串getNumber(){返回數(shù)量;}
公共空間setName(字符串名稱){ this.name =名字;}
公共字符串getName(){返回名稱;}
公共空間setSex(字符串性){ this.sex =性;}
公共字符串getSex(){返回性;}
公共空間setSpecialty(字符串專業(yè)){ this.specialty =專業(yè);}
公共字符串getSpecialty(){返回專業(yè);}
公共空間setGrade(字符串年級){ this.grade =年級;}
公共字符串getGrade(){返回年級;}
公共空間setBorth(字符串波爾斯){ this.borth =波爾斯;}
公共字符串getBorth(){返回波爾斯;}
}
公開課StudentManager延伸JFrame {
JLabel磅= new JLabel(“錄入請先輸入記錄,查詢,刪除請先輸入學號,修改是對查詢”+
“內(nèi)容改后的保存!”);
靜態(tài)JTextField Jnumber、Jname Jspecialty、Jgrade Jborth;
靜態(tài)JRadioButton男孩,女孩;
靜態(tài)ButtonGroup組=零;
靜態(tài)JButton登錄、選擇、刪除、更新顯示;
靜態(tài)JPanel p1,p2,p3,p4,p5,p6、pv,ph值;
靜態(tài)學生學生=零;
靜態(tài)Hashtable Shashtable =零;
靜態(tài)文件文件=零;
靜態(tài)FileInputStream劇中=零;
靜態(tài)ObjectInputStream inTwo =零;
靜態(tài)FileOutputStream outOne =零;
靜態(tài)ObjectOutputStream outTwo =零;
公共StudentManager(){
超級(“學生基本信息管理系統(tǒng)”);
Jnumber = new JTextField(10);
Jname = new JTextField(10);
Jspecialty = new JTextField(10);
Jgrade = new JTextField(10);
Jborth = new JTextField(10);
組= new ButtonGroup();
男孩= new JRadioButton(“男”,真正的);
女孩= new JRadioButton(“女”,假);
group.add(男孩);
group.add(女孩);
登錄= new JButton(“錄入”);
選擇= new JButton(“查詢”);
刪除= new JButton(“刪除”);
更新= new JButton(“修改”);
顯示= new JButton(“顯示”);
登錄。 addActionListener(新InputAct());
選擇。 addActionListener(新InquestAct());
更新。 addActionListener(新ModifyAct());
刪除。 addActionListener(新DeleteAct());
秀。 addActionListener(新ShowAct());
update.setEnabled(假);
p1 = new JPanel();
p1。 (新JLabel添加(“學號:“,JLabel.CENTER));
p1.add(Jnumber);
p2 = new JPanel();
p2。 (新JLabel添加(“姓名:“,JLabel.CENTER));
p2.add(Jname);
p3 = new JPanel();
p3。 (新JLabel添加(“性別:“,JLabel.CENTER));
p3.add(男孩);
p3.add(女孩);
p4 = new JPanel();
p4。 (新JLabel添加(“專業(yè):“,JLabel.CENTER));
p4.add(Jspecialty);
p5 = new JPanel();
p5。 (新JLabel添加(“年級:“,JLabel.CENTER));
p5.add(Jgrade);
p6 = new JPanel();
p6。 (新JLabel添加(“出生:“,JLabel.CENTER));
p6.add(Jborth);
pv = new JPanel();
pv。 setLayout(新GridLayout(6,1));
pv.add(p1);
pv.add(p2);
pv.add(p3);
pv.add(p4);
pv.add(p5);
pv.add(p6);
ph = new JPanel();
ph.add(登錄);
ph.add(選擇);
ph.add(更新);
ph.add(刪除);
ph.add(顯示);
=新文件(“學生信息. txt”);
Shashtable = new散列表();
如果(! file.exists()){
嘗試{
FileOutputStream =新FileOutputStream(文件);
ObjectOutputStream objectOut = new ObjectOutputStream(出);
objectOut.writeObject(Shashtable);
objectOut.close();
out.close();
}
抓住(IOException e){ }
}
容器con = getContentPane();
con.setLayout(新BorderLayout());
con.add(磅,BorderLayout.NORTH);
BorderLayout.CENTER con.add(pv);
con.add(ph值、BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(100100600300);
setVisible(真正的);
}
公共靜態(tài)void main(String[]args){新StudentManager();}
類InputAct實現(xiàn)ActionListener {
公共空間actionPerformed(ActionEvent e){
update.setEnabled(假);
字符串數(shù)量= " ";
數(shù)量= Jnumber.getText();
如果(number.length() 0){
嘗試{
劇中= new FileInputStream(文件);
inTwo = new ObjectInputStream(劇中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕獲異常(ee){ System.out.println(“創(chuàng)建散列表出現(xiàn)問題!”);}
如果(Shashtable.containsKey(數(shù)字)){
字符串警告= "該生信息已存在,請到修改頁面修改!”;
JOptionPane.showMessageDialog(null,警告,“警告”,
JOptionPane.WARNING_MESSAGE);
} / / i
其他{
字符串m =“該生信息將被錄入!”;
int ok = JOptionPane.showConfirmDialog(null,m,“確認”,
JOptionPane.YES_NO_OPTION JOptionPane.INFORMATION_MESSAGE);
如果(好吧= = JOptionPane.YES_OPTION){
字符串名稱= Jname.getText();
字符串專業(yè)= Jspecialty.getText();
串級= Jgrade.getText();
字符串波爾斯= Jborth.getText();
字符串性=零;
如果(boy.isSelected()){性= boy.getText();}
其他{性= girl.getText();}
學生= new();
student.setNumber(數(shù)量);
student.setName(名稱);
student.setSpecialty(專業(yè));
student.setGrade(年級);
student.setBorth(波爾斯);
student.setSex(性);
嘗試{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
Shashtable.put(數(shù)量、學生);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
}
捕獲異常(ee){ System.out.println(“輸出散列表出現(xiàn)問題!”);}
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
} / / else1結(jié)束
} / / i?f
其他{
字符串警告= "必須輸入學號!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
} / / else0結(jié)束
} / / actionPerformed結(jié)束
} / /結(jié)束類
類InquestAct實現(xiàn)ActionListener {
公共空間actionPerformed(ActionEvent e){
字符串數(shù)量= " ";
數(shù)量= Jnumber.getText();
如果(number.length() 0){
嘗試{
劇中= new FileInputStream(文件);
inTwo = new ObjectInputStream(劇中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕獲異常(ee){ System.out.println(“散列表有問題!”);}
如果(Shashtable.containsKey(數(shù)字)){
update.setEnabled(真正的);
學生stu =(學生)Shashtable.get(數(shù)量);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
如果(stu.getSex().equals(男)){ boy.setSelected(真正);}
其他{ girl.setSelected(真正);}
}
其他{
update.setEnabled(假);
字符串警告= "該學號不存在!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
其他{
update.setEnabled(假);
字符串警告= "必須輸入學號!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
}
類ModifyAct實現(xiàn)ActionListener {
公共空間actionPerformed(ActionEvent e){
字符串數(shù)量= Jnumber.getText();
字符串名稱= Jname.getText();
字符串專業(yè)= Jspecialty.getText();
串級= Jgrade.getText();
字符串波爾斯= Jborth.getText();
字符串性=零;
如果(boy.isSelected()){性= boy.getText();}
其他{性= girl.getText();}
學生學生=新學生();
學生.setNumber(數(shù)量);
學生.setName(名稱);
學生.setSpecialty(專業(yè));
學生.setGrade(年級);
學生.setBorth(波爾斯);
學生.setSex(性);
嘗試{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
Shashtable。 把(數(shù)量、學生);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
捕獲異常(ee){
System.out.println(“錄入修改出現(xiàn)異常!”);
update.setEnabled(假);
}
}
}
類DeleteAct實現(xiàn)ActionListener {
公共空間actionPerformed(ActionEvent e){
update.setEnabled(假);
字符串數(shù)量= Jnumber.getText();
如果(number.length() 0){
嘗試{
劇中= new FileInputStream(文件);
inTwo = new ObjectInputStream(劇中);
Shashtable =(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕獲異常(ee){ }
如果(Shashtable.containsKey(數(shù)字)){
學生stu =(學生)Shashtable.get(數(shù)量);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
如果(stu.getSex().equals(男)){ boy.setSelected(真正);}
其他{ girl.setSelected(真正);}
}
字符串m = "確定要刪除該學生的記錄嗎?”;
int ok = JOptionPane.showConfirmDialog(null,m,“確認”,
JOptionPane.YES_NO_OPTION JOptionPane.QUESTION_MESSAGE);
如果(好吧= = JOptionPane.YES_OPTION){
Shashtable.remove(數(shù)量);
嘗試{
outOne = new FileOutputStream(文件);
outTwo = new ObjectOutputStream(outOne);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
捕獲異常(ee){ System.out.println(ee);}
}
else if(好吧= = JOptionPane.NO_OPTION){
Jnumber.setText(空);
Jname.setText(空);
Jspecialty.setText(空);
Jgrade.setText(空);
Jborth.setText(空);
}
其他{
字符串警告= "該學號不存在!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
其他{
字符串警告= "必須輸入學號!”;
JOptionPane.showMessageDialog(null,警告,
“警告”,JOptionPane.WARNING_MESSAGE);
}
}
}
類ShowAct實現(xiàn)ActionListener {
公共空間actionPerformed(ActionEvent e){
新StudentShow(文件);
}
}
類StudentShow JDialog {延伸
Hashtable學生散列表=零;
JTextArea顯示=零;
FileInputStream劇中=零;
ObjectInputStream inTwo =零;
文件文件=零;
公共StudentShow(文件文件){
超級(新JFrame(),“顯示對話框”);
this.file =文件;
顯示= new JTextArea(30);
嘗試{
劇中= new FileInputStream(文件);
inTwo = new ObjectInputStream(劇中);
學生散列表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
捕獲異常(ee){ }
如果學生散列表.isEmpty())顯示.append(“目前還沒有學生的信息記錄! \ n”);
其他{
顯示。 setText(“學號姓名性別專業(yè)年級出生\ n”);
(列舉運用=學生散列表. elements();enm.hasMoreElements();){
學生stu =(學生)enm.nextElement();
字符串性= " ";
如果(stu.getSex().equals(男))性= "男";
其他性= "女";
字符串str = stu.getNumber()+”、“+ stu.getName()+”、“+性別+”、“
+ stu.getSpecialty()+”、“+ stu.getGrade()+”、“+ stu.getBorth()+“\ n”;
顯示.append(str);
}
}
JScrollPane滾動= new JScrollPane(顯示);
容器con = getContentPane();
con.add(“中心”,滾動);
con.validate();
setVisible(真正的);
setBounds(200200400300);
addWindowListener(新WindowAdapter(){
公共空間windowClosing(WindowEvent e){ setVisible(假);}
}
);
}
}
}
首先我先說下jdk是不支持泛型的,但是可以用強制轉(zhuǎn)型的方式
1.去掉每個類的的東西,如改寫成List sockets=new ArrayList();報錯的地方用強制轉(zhuǎn)型的方式改寫,如(Socket) socket
2.ChatToMul這個類中for循環(huán)改寫為Iterator
for(Iterator it = sockets.iterator();it.hasNext();){
Socket socketto = (Socket) it.next();
PrintWriter pw=MyUtil.getPrintWriter(socket);
PrintWriter pwto=MyUtil.getPrintWriter(socketto);
pw.println(socket.getRemoteSocketAddress().toString()+"對"+
socketto.getRemoteSocketAddress().toString()+"說:"+message);
pw.flush();
pwto.println(socket.getRemoteSocketAddress().toString()+"對"+
socketto.getRemoteSocketAddress().toString()+"說:"+message);
pwto.flush();
}
這樣基本改寫成功。
如果需要源代碼話,就聯(lián)系我,我傳給你,
代碼改寫不易,望采納
doUpdate放入一個實例對象,但是是一個空的實例對象,做修改的時候,出現(xiàn)一個異常問題,所以不會實現(xiàn)打印了;
/**
* 復制單個文件
* @param oldPath String 原文件路徑 如:c:/fqf.txt
* @param newPath String 復制后路徑 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在時
InputStream inStream = new FileInputStream(oldPath); //讀入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字節(jié)數(shù) 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("復制單個文件操作出錯");
e.printStackTrace();
}
}
/**
* 復制整個文件夾內(nèi)容
* @param oldPath String 原文件路徑 如:c:/fqf
* @param newPath String 復制后路徑 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath) {
try {
(new File(newPath)).mkdirs(); //如果文件夾不存在 則建立新文件夾
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夾
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("復制整個文件夾內(nèi)容操作出錯");
e.printStackTrace();
}
}
/**
* 移動文件到指定目錄
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
}
/**
* 移動文件到指定目錄
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath);
}