I think if memory serves me right that the create statement should proceed the 
execution statement in your code you try to execute a sttement that has not 
been created.


V.(Billy) Kantartzis
Surveillance & Reconnaissance Resource Centre
Command & Control Systems
T:+31(0)70374-3706
F: +31(0)70374-3079
E:[EMAIL PROTECTED]



-----Original Message-----
From: Alessandro Ferrucci [mailto:[EMAIL PROTECTED]
Sent: 03 September 2007 13:39
To: [email protected]
Subject: simple JDBC question

Hi this question is related to DBCP, but I will provide a sample without DBCP 
code since I see the same behavior either way.

I have this very simple class:

for some reaosn when I debug it in eclipse, and I step through the first 
statement I see the record has already been inserted in teh DB when I put 
autocommit to false...why is this?  Also what should happen in this case is 
that the second statement is invalid so it throws an exception and the 
connection should rollback both statements but it is not...the first statement 
is obviously automatically commited...I cannot find out why this is not working

thx

alessandro ferrucci :)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

//
****************************************************************************

public class TestJDBC
{
    @Test
    public void test()
    {
        Connection conn = null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
        }
        catch (ClassNotFoundException ex)
        {
            System.out.println(ex.getMessage());
        }
        try
        {
            conn = DriverManager

.getConnection("jdbc:mysql://localhost:3306/photos?user=root&password=");
            conn.setAutoCommit(false);
        }
        catch (SQLException ex)
        {

        }
        Statement stmt = null;
        try
        {
            stmt = conn.createStatement();
        }
        catch (Exception ex)
        {
            System.out.println(ex.getMessage());
        }
        try
        {
            stmt.execute("insert INTO photostest (id) VALUES (100)");
            stmt = conn.createStatement();
            stmt.execute("insert INTO photostest (id2) VALUES (200)");
        }
        catch (Exception ex)
        {
            System.out.println(ex.getMessage());
            try
            {
                conn.rollback();
            }
            catch (Exception e)
            {
                System.out.println(ex.getMessage());
            }
        }
    }
}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to