mysql表类型有InnoDB,MyISAM等MyISAM类型有个好处就是建表后,mysql会马上生成三个数据文件,分别为frm,MYD,MYI。有了这三个文件,可以方便的数据库拷贝,但是这样也就浪费了一些当今的RDBMS的优点,如非事务操作。但是这种类型的表在自动提交(AUTOCOMMIT)下的工作性能是比较卓越的;
InnoDB类型是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎,基本上其他数据库有得功能,他都有了;
说了这么多,还是转到今天所遇到的问题上,
当在jdbc操作数据库时,执行批量操作(包含了添删。。),为了保障数据的一致性,于是使用到了事务
如下:
try{
dbConn.setAutoCommit(false);
//执行批量操作
stmt.executeBatch(); // 1
dbConn.commit(); // 2
}catch(Exception ex){
try{
dbConn.rollback(); // 3
}catch(....){.....}
}
debug时,发现每次执行到 1 时, 手动在mysql中查询出,记录已经被修改,但是 2 根本没执行,还有dbConn.setAutoCommit(false); 也设为了false,为什么会自动提交呢?
后来想到了,前几天为了拷贝的方便,把某些表的类型改成了 MyISAM ,会不会是这个原因,后来查了查文档才发现确实如此原因,
mysql 只有是InnoDB类型的表,才会支持事务操作
分享到:
相关推荐
JDBC提供了一些方法如`conn.setAutoCommit(false)`来手动管理事务,并使用`conn.commit()`或`conn.rollback()`来提交或回滚事务。 6. **批量操作**:当有大量数据要插入或更新时,使用预编译的PreparedStatement的`...
JDBC支持事务管理,通过setAutoCommit()方法可以开启或关闭自动提交,提交事务使用commit(),回滚事务则使用rollback()。在多线程环境下,需注意并发控制和事务隔离级别。 8. 错误处理和异常处理: 在进行数据库...
JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一种标准接口。它由Sun Microsystems开发,使得开发者可以使用Java编写数据库应用程序,而无需关心底层数据库系统的具体细节。JDBC...
在Java中,可以使用JDBC的Connection对象的commit()和rollback()方法来管理事务。 6. **异常处理**:为了提高程序的健壮性,项目中应包含适当的异常处理机制,捕获并处理可能出现的错误,如网络问题、数据库连接...
Java数据库连接池(Java Database Connectivity Pool,简称JDBC连接池)是Java开发中用于管理和优化数据库连接的重要技术。它的核心作用在于有效地管理数据库连接,提高系统性能,避免频繁创建和销毁连接导致的性能...
Java数据库连接池(JDBC Connection Pool)是一种优化数据库操作的技术,它的主要目标是提高数据库连接的复用性,减少因创建和销毁数据库连接而产生的性能开销。在Java中,虽然JDBC API本身并不直接提供连接池功能,...
1. **Java操作Oracle**:这部分内容讲解了如何使用Java的JDBC(Java Database Connectivity)API来连接和操作Oracle数据库。JDBC是Java平台的标准接口,允许程序通过SQL语句与各种数据库进行通信。学习者将了解如何...
- **JDBC(Java Database Connectivity)**:Java通过JDBC API与数据库进行交互,包括加载驱动、建立连接、执行SQL语句和处理结果集。 - **Access数据库**:Microsoft Access是一个小型数据库管理系统,适合个人或...
3. **JDBC**:Java Database Connectivity是Java访问数据库的标准接口,用于连接、查询、插入、更新和删除数据库中的数据。在这个系统中,开发者会用到JDBC来与SQL Server 2000进行交互。 4. **DAO(数据访问对象)...
在Java中,虽然JDBC API并没有直接提供连接池的功能,但可以通过第三方库实现,如Apache的DBCP、C3P0、HikariCP等。 连接池的基本原理是预先在内存中创建一定数量的数据库连接,并存储在一个缓冲池中。当应用程序...
Oracle数据库连接包通常指的是JDBC(Java Database Connectivity)驱动,它是Oracle公司为Java开发的接口,使得Java应用程序能够与Oracle数据库进行通信。JDBC驱动分为四种类型:Type 1、Type 2、Type 3和Type 4,...
在Java中,虽然JDBC API并没有直接提供连接池的功能,但可以通过第三方库实现,如C3P0、Apache DBCP、HikariCP等。 连接池的基本原理是预先在内存中创建一个缓冲池,池中包含一定数量的数据库连接。当应用程序需要...
- **解决方案**:利用`Connection`对象的事务管理功能,通过设置`autoCommit`属性为`false`并手动调用`commit()`或`rollback()`方法来管理事务。此外,可以采用每个事务独占一个连接的方式简化事务管理流程。 4. *...
确保JDBC驱动已添加到项目的类路径中,以便Java程序能够与MySQL数据库通信。 2. **数据库设计**:在MySQL中创建一个新的数据库和表。例如,你可以创建一个名为`students`的表,包含`id`(主键)、`name`、`age`和`...
1. **连接数据库**:在JSP中,连接MySQL通常使用JDBC(Java Database Connectivity)API。通过`Class.forName()`加载数据库驱动,然后使用`DriverManager.getConnection()`方法建立与数据库的连接。连接字符串包含...
这通常通过使用JAVA的`java.sql.Connection`的`setAutoCommit(false)`来开启手动提交,然后在所有操作完成后调用`commit()`,如果出现异常则调用`rollback()`。 数据库权限控制是另一种关键的安全措施。在JAVA应用...
标题和描述均聚焦于解释Java Database Connectivity (JDBC)中三个核心接口——`Connection`、`Statement`和`ResultSet`的作用。这三个接口是JDBC API的核心组成部分,它们共同协作,使得Java应用程序能够与各种关系...