boolean autoCommit = conn.getAutoCommit();//手动提交事务,保证数据库数据的一致性。
conn.setAutoCommit(false);
int rootid = -1;
String sql = "insert into article values(null, ?, ?, ?, ?, now(), ?)";
PreparedStatement pstmt = DB.getPstmt(conn, sql, Statement.RETURN_GENERATED_KEYS);
pstmt.setInt(1,0);
pstmt.setInt(2,rootid);
pstmt.setString(3,title);
pstmt.setString(4,cont);
pstmt.setInt(5,0);
pstmt.executeUpdate();
ResultSet rsKey = pstmt.getGeneratedKeys();
rsKey.next();
rootid = rsKey.getInt(1);
Statement stmt = DB.createStmt(conn);
stmt.executeUpdate("update article set rootid = " + rootid + " where id = " + rootid);
conn.commit();
conn.setAutoCommit(autoCommit);
分享到:
相关推荐
当成功建立连接后,我们可以创建一个`PreparedStatement`对象来执行SQL插入语句。对于具有自增主键的表,MySQL会自动为新插入的记录生成主键值。为了获取这个值,我们需要在插入语句中使用`LAST_INSERT_ID()`函数,...
`LIMIT`指定每页显示的记录数,而`OFFSET`指定位移量,即跳过多少条记录开始返回结果。例如,如果我们想获取第2页,每页显示10条记录,SQL语句可能如下: ```sql SELECT * FROM table_name LIMIT 10 OFFSET 10; ```...
在Java应用中,它允许开发人员执行SQL查询、插入数据、更新记录以及管理MySQL数据库的各种其他操作。 MySQL Connector/J遵循JDBC API规范,使得任何支持JDBC的应用程序都可以无缝地与MySQL数据库交互。它的工作原理...
1. **慢查询日志**:MySQL提供了慢查询日志功能,通过在`my.cnf`或`my.ini`配置文件中添加`--log-slow-queries`选项,可以记录所有执行时间超过设定阈值的SQL语句。这有助于识别和分析导致性能问题的SQL。 2. **...
这个驱动程序,也被称为JDBC(Java Database Connectivity)驱动,使得Java开发者能够通过编写Java代码来执行SQL查询、更新数据库记录以及管理MySQL数据库。 JDBC是Java API,它为Java程序员提供了标准的接口,用于...
MySQL-connector-java-8.0.11.jar是这个驱动的核心组件,包含了所有必要的类和方法,使得Java应用程序能够利用JDBC API连接到MySQL服务器,执行SQL语句,以及处理返回的结果。 `mysql-connector-java-8.0.11.jar....
LIMIT用于限制返回的记录数量,OFFSET用于跳过前几条记录,达到分页效果。例如,如果每页显示10条记录,第n页的SQL可能是`SELECT * FROM table LIMIT 10 OFFSET (n-1)*10`。 3. **执行SQL并获取结果集**:通过调用...
4. **ResultSet**:执行SQL查询后返回的结果集。它是一个表格形式的数据结构,可以遍历并读取其中的记录。 在MySQL Connector/J 5.1.44中,一些重要的特性包括: - 支持JDBC 4.0和4.1规范,提供更好的性能和功能。...
2. **SQL语句执行**:提供方法执行SELECT、INSERT、UPDATE、DELETE等SQL命令,并返回结果集或影响行数。 3. **事务处理**:支持开始、提交、回滚事务,确保数据的一致性。 4. **预编译语句**:使用PreparedStatement...
要将MongoDB集合转换为MySQL的单条记录,我们需要遍历MongoDB集合中的每个文档,并将其转换为符合MySQL表结构的格式。这通常涉及到数据类型的映射,比如MongoDB的ObjectId需要转换为字符串,数组可能需要拆分为多个...
使用`executeUpdate()`执行INSERT、UPDATE或DELETE语句,返回受影响的行数。 6. **ResultSet处理**:`ResultSet`对象存储了查询结果,我们可以遍历它来获取每行数据。每个结果行对应于`ResultSet`的一个位置,使用`...
- `ResultSet`:执行查询后返回的对象,包含了查询结果。它提供了迭代器接口,可以遍历每一行数据。 - `Row`:表示结果集中的一行数据,通过字段索引或名称获取列值。 4. **错误处理**: - 错误处理机制是封装的...
在分页场景中,JavaBean通过JDBC建立与MySQL数据库的连接,执行上述构造的SQL查询语句,然后处理返回的结果集。 MySQL是广泛使用的开源关系型数据库管理系统,支持高效的SQL查询和各种数据库操作。在分页查询时,...
Java 实现获取 MySQL 数据库中所有表的记录总数是一个常见的需求,特别是在数据分析或者数据库管理的场景下。以下是如何使用 Java 编程语言来实现这一功能的详细步骤。 首先,我们需要导入必要的 Java SQL 包,包括...
7. 结果集处理:执行查询语句后,会返回一个`ResultSet`对象,其中包含了查询结果。通过遍历`ResultSet`,可以获取和处理每一条记录。 8. 断开连接:在完成数据库操作后,务必关闭所有打开的资源,包括`ResultSet`...
例如,`SELECT * FROM table_name` 将返回表中的所有记录。 2. **插入(INSERT)**:用于向表中插入新记录。例如,`INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')`。 3. **更新(UPDATE)...
在这段代码中,使用了`Statement`对象执行SQL查询语句,并通过`ResultSet`处理返回的结果集。为了从结果集中提取数据,还定义了一个辅助方法`getUserFromResultSet`。 ```java static User getUserFromResultSet...
在这个例子中,我们连接到本地运行的MySQL服务器(默认端口3306),并执行了一个查询所有`mytable`表中的记录的SQL语句。然后,我们遍历`ResultSet`并打印出每一行的`column1`和`column2`字段的值。 值得注意的是,...
在Java开发中,当我们需要与MySQL数据库进行交互,比如执行SQL查询、插入数据或更新记录时,就需要使用这种驱动包。MySQL驱动包是一个包含Java类和接口的库,它们实现了Java Database Connectivity (JDBC) API,使得...
本教程将详细介绍如何在Myeclipse中使用Java JSP技术与MySQL数据库进行交互,实现表格的增删改查功能。 1. **环境搭建** - 安装Myeclipse:首先确保已经安装了Myeclipse,这是开发Java Web应用的基础。 - 安装...