值未进入mysql数据库

时间:2014-02-02 16:01:42

标签: java mysql

您正在使用java开发一个项目并且正在使用netbeans。我有一个连接数据库的代码。它正在工作,但值没有输入数据库。我将在下面提供代码。我有2个班级,第一个班级如下:

package javasql;

import com.mysql.jdbc.Driver;
import java.sql.*;

public class Connect {
public Connect() throws SQLException{
    makeConnection();
} 

private Connection koneksi;  

 public  Connection makeConnection() throws SQLException {
    if (koneksi == null) {
         new Driver();
        // buat koneksi
         koneksi = DriverManager.getConnection(
                   "jdbc:mysql://localhost:3306","root","virus");
     }
     return koneksi;
 }  

 public static void main(String args[]) {
     try {
         Connect c = new Connect();
         System.out.println("Connection established");
     }
     catch (SQLException e) {
         e.printStackTrace();
         System.err.println("Connection Failure");
     }  

}
}

第二类是:

package javasql;

import java.sql.*;
public class SqlStatement {
private Statement statement;
public SqlStatement() throws SQLException{

}
public Statement makeStatement() throws SQLException{
    Connect c = new Connect();
    Connection conn = c.makeConnection();
    statement = conn.createStatement();
    return statement;
}
public void insert(String name,int npm)throws SQLException{
    statement.execute("insert into student values(\""+name+"\","+npm+");");
}
public static void main(String arg[]) throws SQLException{
    SqlStatement sss;
    sss = new SqlStatement();
    sss.makeStatement();
    try {
        SqlStatement s = new SqlStatement();
        s.insert("Ferdi",1);
        s.insert("Anca",2);
        System.out.println("Success");
    }
    catch(SQLException e){
        System.out.println("Failed");
        e.printStackTrace();
    }
}
}

2 个答案:

答案 0 :(得分:0)

s.makeStatement()之前执行s.insert() 你的代码太乱了。

答案 1 :(得分:0)

您似乎错过了提供database名称来建立连接。与mysql连接的格式为:

DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");

但是在提供的代码中,由于您未能与DB连接而导致dbname丢失。

请提供dbname并继续前进。