JDBC:批量插入不向数据库插入值

rog*_*hat 0 java mysql sql jdbc

我必须使用JDBC执行多个插入查询,我正在尝试执行批处理语句.在我的代码中一切正常但是当我尝试在表中看到值时,表是空的.这是代码:

SessionImpl sessionImpl = (SessionImpl) getSessionFactory().openSession(); 
    Connection conn = (Connection) sessionImpl.connection();

    Statement statement = (Statement) conn.createStatement();

    for (String query : queries) {
        statement.addBatch(query);
    }
    statement.executeBatch();
    statement.close();
    conn.close();
Run Code Online (Sandbox Code Playgroud)

而且

List<String> queries 
Run Code Online (Sandbox Code Playgroud)

包含插入查询,如:

insert into demo values (null,'Sharmzad','10006','http://demo.com','3 Results','some values','$44.00','10006P2','No Ratings','No Reviews','Egypt','Duration: 8 hours','tour','Day Cruises');
Run Code Online (Sandbox Code Playgroud)

表结构如下:

create table demo ( ID INTEGER PRIMARY KEY AUTO_INCREMENT,supplierName varchar(200),supplierId varchar(200),supplierUrl varchar(200),totalActivities varchar(200),activityName varchar(200),activityPrice varchar(200),tourCode varchar(200),starRating varchar(200),totalReviews varchar(200),geography varchar(200),duration varchar(200),category varchar(200),subCategory varchar(200));
Run Code Online (Sandbox Code Playgroud)

没有异常被抛出,但没有插入任何值.谁能解释一下?

小智 5

大多数JDBC驱动程序都使用autocommit,但其中一些不使用.如果你不知道,你应该.setAutoCommit(true)在交易之前或.commit()之后使用..