I am really not getting any further with this, so frustrating. I have a DatabaseUtils class
public class DatabaseUtils
{
public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
public static final String USERNAME = "rory";
public static final String PASSWORD = "macflid";
private Connection connection;
public static void main(String[] args)
{
Connection connection = null;
try
{
if (args.length > 0)
{
connection = DatabaseUtils.connect(DRIVER, URL, USERNAME, PASSWORD);
DatabaseUtils utils = new DatabaseUtils(connection);
}
else
{
System.out.println("Usage: DatabaseUtils <sql query>");
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
close(connection);
}
}
public DatabaseUtils(Connection connection)
{
this.connection = connection;
}
public static Connection connect(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException
{
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}
public static void close(Connection connection)
{
try
{
if (connection != null)
{
connection.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public static void close(Statement statement)
{
try
{
if (statement != null)
{
statement.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public static void close(ResultSet resultSet)
{
try
{
if (resultSet != null)
{
resultSet.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public static void rollback(Connection connection)
{
try
{
if (connection != null)
{
connection.rollback();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
Then i am trying to get another class create the connection to pass it to my DAO clas
import java.util.*;
import java.sql.*;
class PersonService
{
private PersonDAO personDao;
public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
public static final String USERNAME = "rory";
public static final String PASSWORD = "macflid";
public PersonService(PersonInfo p)
{
Connection c = null;
try
{
c = DatabaseUtils.connect(DRIVER, URL, USERNAME, PASSWORD);
c.setAutoCommit(false);
personDao.setConnection(c);
personDao.savePerson(p);
c.commit();
}
catch (Exception e)
{
DatabaseUtils.rollback(c);
e.printStackTrace();
}
finally
{
DatabaseUtils.close(c);
}
}
}
Then in my DAO class i am trying to do an isert query
public class PersonDAO{
private Connection con;
public void setConnection(Connection c)
{
con=c;
}
public void savePerson(PersonInfo person)
{
try
{
String sql = "INSERT INTO Person(name, idNo, " +
"userName, passWord) VALUES (?,?,?,?) ";
// Create a Preparedstatement
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, person.getName());
ps.setString(2, person.getIdNo());
ps.setString(3, person.getUsername());
ps.setString(4, person.getPassword());
ps.executeUpdate();
}
catch(Exception e)
{
System.out.println(e);
}
}
Nothing is being inputted into my database. I have just really confused myself. Can anyone see where i am going wrong? i am being return at runtime a NullPointerException.
cheers