CREATE TABLE对JDBC没有影响

时间:2013-05-27 21:50:43

标签: java mysql jdbc

所以我正在学习JBDC,我正在尝试通过java创建一个表。我已经测试了用户'calgar',它可以通过mysql命令创建一个表,但是当我尝试通过java实现相同时它没有任何影响。没有表创建,但也没有错误或异常。有人有什么建议吗?

public static void main(String[] args) {

        Connection connection = null;
        Statement statement = null; 

        try{
            System.out.println("Connecting to driver/database..");
             Class.forName("com.mysql.jdbc.Driver");
             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/firstdatabase","calgar","password");
             System.out.println("Connection successful");
             statement = connection.createStatement();
             statement.execute("CREATE TABLE books(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100),author VARCHAR(100),publisher VARCHAR(100))");


        }
        catch(ClassNotFoundException error){
            System.out.println("Class Not Found Error " + error.getMessage());
        }
       catch(SQLException error){
        System.out.println("SQL Error " + error.getMessage());
        }
        finally
        {
            if(connection != null)
                try{connection.close();}
                catch(SQLException ignore){}

            if(statement != null)
                try{statement.close();}
                catch(SQLException ignore){}

        }

1 个答案:

答案 0 :(得分:3)

使用executeUpdate进行数据库写入操作

statement.executeUpdate("CREATE TABLE ...");

除此之外,使用PreparedStatement保护自己免受SQL注入攻击。