gpt4 book ai didi

java - 需要 core java 项目帮助

转载 作者:行者123 更新时间:2023-11-30 05:10:16 25 4
gpt4 key购买 nike

我是 Riya,一名技术学士。学生和我必须制作一个主题为 COLLEGE MANAGEMENT SYSTEM 的 corejava 项目。我已经使用 MS Access 创建了所需的数据库。我在此处附加的代码中遇到问题。实际上我想更新数据库中的数据,所以我在其中一卷中制作了 2 个帧,编号为 1。输入时询问,然后第二个框架打开并要求输入标记进行更新...当我输入要更新的标记时,会打开一个对话框,显示“标记已成功更新”。到目前为止,我没有任何问题。问题是当我打开数据库时,我发现实际上标记没有更新。所以请有人帮助我解决这个问题。

代码如下:

第一帧

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

class MyFrame03 extends JFrame implements ActionListener {
JLabel l1;
JTextField t1;
JPanel p1, p2;
JButton b1;
Connection con;
PreparedStatement pst;
String s1;

MyFrame03() {
setLayout(new GridLayout(4, 1));
setTitle("Enter Data Required");
setBackground(Color.blue);
l1 = new JLabel("Roll no");
t1 = new JTextField(12);
p1 = new JPanel();
p2 = new JPanel();
b1 = new JButton("SUBMIT");
p1.add(l1);
p1.add(t1);
p2.add(b1);
add(p1, "Center");
add(p2, "South");
b1.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 500);
setVisible(true);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("Jdbc:Odbc:dsn3");
if (con != null)
System.out.println("Connection Established");
}
catch (Exception e) {
System.out.println("exception");
}
}

public void actionPerformed(ActionEvent e1) {
if (e1.getSource() == b1) {
s1 = t1.getText();
try {
pst = con.prepareStatement("insert into stud values(?)");
pst.setString(1, s1);
pst.executeUpdate();
con.commit();
con.close();
}
catch (SQLException e) {
System.out.println("except1");
}
MyFrame04 m1 = new MyFrame04(s1);
dispose();
}
}

public static void main(String s[]) throws SQLException {
MyFrame03 m1 = new MyFrame03();
}
}

第二帧

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

class MyFrame04 extends JFrame implements ActionListener {
JLabel l1;
JTextField t1;
JPanel p1, p2;
JButton b1;
String s1, s2;
Connection con;
PreparedStatement pst;

public MyFrame04(String s1) {
this.s1 = s1;
setLayout(new GridLayout(4, 1));
setTitle("Update Marks");
setBackground(Color.blue);
l1 = new JLabel("Enter Marks");
t1 = new JTextField(12);
b1 = new JButton("SUBMIT");
p1 = new JPanel();
p2 = new JPanel();
p1.add(l1);
p1.add(t1);
p2.add(b1);
add(p1, "Center");
add(p2, "South");
b1.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 500);
setVisible(true);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("Jdbc:Odbc:dsn3");
if (con != null)
System.out.println("Connection Established");
}
catch (Exception e) {
System.out.println("exception");
}
}

public void actionPerformed(ActionEvent e1) {
if (e1.getSource() == b1) {
s2 = t1.getText();
try {
pst = con.prepareStatement("UPDATE stud set Marks=? WHERE Roll no=?");
pst.setString(1, s2);
pst.setString(2, s1);
pst.executeUpdate();
con.commit();
con.close();
}
catch (SQLException e) {
System.out.println("except1");
}
JOptionPane.showMessageDialog(this, "Marks updated succesfully");
dispose();
}
}
}

谢谢

最佳答案

您的数据库访问代码可以在没有 Swing 的情况下工作吗?最简单的查看方法是:

class HelloDatabase {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("Jdbc:Odbc:dsn3");
if (con != null) {
int marks = 1, roll = 1; // or whatever (your data here)
System.out.println("Connection Established");
PreparedStatement pst = con.prepareStatement("UPDATE stud SET marks=? WHERE roll_num=?");
pst.setString(1, marks);
pst.setString(2, roll);
pst.executeUpdate();
con.commit();
con.close();
}
}
catch (Exception e) {
System.out.println("exception");
}
}
}

如果它获得句柄并正确访问您的数据库,那么您很幸运。

顺便说一句 - 这实际上可能是你的问题 - 我注意到你的原始帖子中的 SQL 查询有歧义:

UPDATE stud set Marks=? WHERE Roll no=?

据我了解,“Roll no”不会被识别为有效的 SQL 字段——这些应该是一个“单词”(如“roll”、“roll_num”甚至“RollNum”——但我不知道)我认为像“Roll no”这样的名字在这里不起作用。)

关于java - 需要 core java 项目帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com