intinsert_no_trans()
{
printf("<--------------------->\n"
"go intofunction insert_no_trans()\n");
int j =0;
for (j = 0;j < 10000; j++)
{
sprintf(sql,"INSERT INTO [dev] ([id], [name], [age])\
values (%d,'%s', %d)", j, "JGood", j);
if(SQLITE_OK!= sqlite3_exec
(conn, sql,0, 0, &err_msg))
{
fprintf(stderr, "INSERT ERROR: %s\n", err_msg);
exit(EXIT_FAILURE);
}
}
printf("INSERT all succussfully!\n");
printf("function insert_no_trans() end. \n"
"<---------------------> \n");
returnEXIT_SUCCESS;
}
intinsert_with_trans()
{
printf("<--------------------->\n"
"go intofunction insert_with_trans()\n");
sqlite3_exec(conn, "begin;", 0, 0, 0); //开启事务
int j =0;
for (j = 0;j < 10000; j++)
{
sprintf(sql,"INSERT INTO [dev] ([id], [name], [age])\
values (%d,'%s', %d)", j, "JGood", j);
if(SQLITE_OK!= sqlite3_exec(conn, sql, 0, 0, &err_msg))
{
is_succeed =false; //失败之后把标识设为false
fprintf(stderr, "INSERT ERROR: %s\n", err_msg);
break;
}
}
if(is_succeed)
sqlite3_exec(conn, "commit;", 0, 0, 0); //提交事务
else
{
sqlite3_exec(conn, "rollback;", 0, 0, 0); //回滚事务
exit(EXIT_FAILURE);
}
printf("INSERT all succussfully!\n");
printf("function insert_with_trans() end. \n"
"<---------------------> \n");
returnEXIT_SUCCESS;
}
Statementstmt = conn.createStatement();
conn.setAutoCommit(true);
stmt.executeUpdate("set autocommit=1");
for(int i =0; i < 10000; i++)
stmt.executeUpdate("insert into dev values(1,'java',1);");
Statementstmt = conn.createStatement();
conn.setAutoCommit(false);
stmt.executeUpdate("set autocommit=0;");
stmt.executeUpdate("start transaction;");
for(int i =0; i < 10000; i++)
stmt.executeUpdate("insert into dev values(1,'java',1);");
stmt.executeUpdate("commit;");