Ошибка выполнения подготовленного оператора JDBC Java - PullRequest
1 голос
/ 01 февраля 2012

Почему подготовленное заявление не вставит данные в таблицу базы данных?

import java.sql.*;

public class MysqlConnect{
public static void main(String[] args) {
  System.out.println("MySQL Connect Example.");
  Connection conn = null;
  String url = "jdbc:mysql://localhost/";
  String dbName = "java";
  String driver = "com.mysql.jdbc.Driver";
  String userName = "root"; 
  String password = "";
  PreparedStatement pst;

  try {
      Class.forName(driver).newInstance();
      conn = DriverManager.getConnection(url+dbName,userName,password);
      conn.setAutoCommit(false);

      String sql = "INSERT INTO test (url) values(?)";
      PreparedStatement statement = conn.prepareStatement(sql);

      statement.setString(1, "teast.com");
      statement.executeUpdate();


      statement.close();




  } 
  catch (Exception e) {
      e.printStackTrace();
  }
 }
}

1 Ответ

9 голосов
/ 01 февраля 2012

Поскольку вы явно отключили автоматическую фиксацию:

conn.setAutoCommit(false);

По умолчанию JDBC будет автоматически фиксировать любые транзакции, которые неявно созданы.

При отключенной автоматической фиксации вам необходимо явно зафиксировать фиксациюНапример,

statement.executeUpdate();
conn.commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...