繁体   English   中英

Java程序将从数据库中读取,但不会写入数据库

[英]Java program will read from database, but not write to it

我有一个Java程序,可以成功连接到Godaddy服务器上托管的mysql数据库。 我可以毫无问题地从该数据库读取数据,但是,例如,当我尝试使用INSERT或UPDATE对其进行写入时,该查询将不会执行。 我使用的是通过Godaddy设置的“管理员”帐户,我知道这不是root帐户。 我已经检查并验证该连接不是只读的,并且在查询运行时退出了phpmyadmin。 我不确定我还能尝试什么,或者是否有人遇到过此问题。

可能是我未能设置的连接设置? 还是因为数据库托管在godaddy的服务器上而无法实现?

任何帮助都很棒!

谢谢。

这是一些相关的代码:
连接到数据库:

Connection con;
public DBconnection(String url, String user, String pass)
{
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = DriverManager.getConnection (url,user,pass);


            if(!con.isClosed())
                System.out.println("connecton open");
        } 
        catch (InstantiationException e) {e.printStackTrace();} 
        catch (IllegalAccessException e) {e.printStackTrace();} 
        catch (ClassNotFoundException e) {e.printStackTrace();} 
        catch (SQLException e) {e.printStackTrace();}
}

发送查询:

public ResultSet executeQuery(String query)
{
    ResultSet rs = null;

    try {
        Statement stmt = (Statement) con.createStatement();
        rs = stmt.executeQuery(query);

        //while(rs.next())
            //System.out.println(rs.getString("ticket_num"));
    } 
    catch (SQLException e) {}   

    return rs;
}

插入查询(可在phpmyadmin中使用):

conn.executeQuery("INSERT INTO tickets VALUES(55555,'12/01/2012','me','reports','test','','','0','Nope')");

使用statement.executeUpdate()进行INSERT查询。

FROM API的Statement.executeUpdate(String sql)

在此PreparedStatement对象中执行SQL语句,该对象必须是SQL数据操作语言(DML)语句,例如INSERT,UPDATE或DELETE; 或不返回任何内容的SQL语句,例如DDL语句。

 executeUpdate("INSERT INTO tickets VALUES(55555,'12/01/2012','me','reports','test','','','0','Nope')");

强烈建议您使用PreparedStatemnt而不是简单的Statement使用JDBC执行SQL

用来实例化连接对象的用户名和密码仅具有从数据库读取的权限,而没有写权限。 您需要更改用于连接数据库的凭据,或者需要向相关用户提供权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM