2014-02-02 6 views
0

Привет, я разрабатываю проект в java и использую для этого netbeans. У меня есть код для подключения к базе данных. Он работает, но значения не вводятся в базу данных. Я предоставлю код ниже. У меня есть 2 классов и первый один ниже:Значения не поступают в базу данных mysql

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(); 
    } 
} 
} 
+0

Это порождает исключение NullPointerException, не так ли? Трассировка стека должна объяснить вам почему. Ваш код грязный: вы создаете объекты дважды без причины, игнорируете возвращаемые значения, не используйте подготовленные инструкции. –

+0

@JBNizet Действительно извините ... 3 строки кода после public static void main на самом деле не находятся в моем коде. Я просто забыл исправить это. Эта программа не давала никаких исключений. когда я запустил его, я получил «Соединение установлено» в netbeans. Но значения не были введены в базу данных. – TomJ

+0

Вы выполнили класс Connect, который ничего не делает, кроме соединения с базой данных. Выполните другой класс, который пытается вставить строки в базу данных, и вы получите исключение NullPointerException. –

ответ

0

кажется, что вы пропустили, чтобы обеспечить database имя, чтобы установить формат connection.The, чтобы соединиться с mysql является:

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

Но в предоставленном коде dbname не хватает из-за которого был не в состоянии подключиться к БД.

Просьба указать dbname и двигаться вперед.

+0

Вы сказали это ... Это была моя ошибка. – TomJ

+0

@TomJ grtt двигаться вперед дорогой – Kick

0

Выполнить s.makeStatement() до того s.insert() Ваш код совсем ... грязный.

Смежные вопросы