java - 如何从主文件向数据库插入数据?

标签 java mysql program-entry-point

我的 java 项目中有 2 个文件: MysqlConnect 和 Main 。 我想从主类运行查询。可以吗?

这是 MysqlConnect 文件:

public class MysqlConnect {

public Connection conn = null;
public String url = "jdbc:mysql://localhost:3306/";
public String dbName = "jdbctutorial";
public String driver = "com.mysql.jdbc.Driver";
public String userName = "birthday";
public String password = "123456";
public Statement stmt;
public String query = "";
public int rs;

public void crearedatabase() {
    try {

        Class.forName(driver).newInstance();
        conn = DriverManager
                .getConnection(url + dbName, userName, password);
        // System.out.println("Connected to the database");
        Statement stmt = conn.createStatement();

    } catch (Exception e) {
        System.out.println("Baza de date nu a fost creata");
    }

}

public void executeSql() {

    try {
        rs = stmt.executeUpdate(query);
    } catch (Exception e) {
        System.out.println("Mysql Error");
    }

}
}

这是主文件:

public class Main {
public static void main(String[] args) throws SQLException
{



MysqlConnect sqlconnect = new MysqlConnect();   
sqlconnect.crearedatabase();

sqlconnect.query="INSERT INTO `jdbctutorial`.`persons` (`id`, `nume`, `prenume`, `data`) VALUES (NULL, 'xxxx', 'xxxx', '1990-12-12');";
sqlconnect.executeSql();
}

}

错误(异常)发生在 MysqConnection 的 try/catch 处

rs = stmt.executeUpdate(query);

最佳答案

您将语句对象分配给名为 stmt 的局部变量,而不是同名的对象字段。 替换这个

Statement stmt = conn.createStatement();

这样:

this.stmt = conn.createStatement();

this 在这里不是必需的,但在那里放置它是一个很好的做法。

关于java - 如何从主文件向数据库插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615009/

相关文章:

mysql - 如何通过检查MySQL中的多个运动列来检索最喜欢的运动名称?

python - 在 __main__.py 中使用模块自己的对象

c - 主要返回后的段错误

java - webResource.get(String.class) 返回 null

java - 如何在我的 GridView/ListView 适配器上动态填充 ImageView 和 TextView?

java - 如何将 mysql 连接器添加到 Sqoop 1.99.3

java - 如何编写正则表达式来仅提取前面带有特定字符串的数字?

php - 教义2.0 |创建数据库 |外键是否唯一

php - 尝试将表单数据添加到 MYSQL 数据库中

c - 使用 main(int argc,char *argv[]) 时出现问题