2013-12-16 26 views
0

我在我的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); 
+0

'这是可能的???'是的! '错误(例外)在try/catch上的MysqConnection上出现什么错误?请发布完整的堆栈。另外,尝试在查询 – Taylor

+0

此错误摆脱所有的'字符:在MysqlConnect.executeSql(MysqlConnect.java:33) \t在Main.main(Main.java:19) –

+0

尝试显示java.lang.NullPointerException \t调试。某些原因,您的stmt对象为空。 – Taylor

回答

1

将语句对象分配给名为stmt的本地变量,而不是具有相同名称的对象字段。 替换此

Statement stmt = conn.createStatement(); 

有了这个:

this.stmt = conn.createStatement(); 

this这里是没有必要的,但它是一个很好的做法,它在那里。

+0

非常感谢dimoniy .. –

+0

好吧,发现了,不敢相信我错过了。 – Taylor

相关问题