java,import java.sql.Connection;,import java.sql.DriverManager;,import java.sql.ResultSet;,import java.sql.Statement;,
`
,,3. 编写一个方法来执行SQL语句并打印结果:,,
`
java,public static void printSql(String sql) {, try {, // 加载并注册JDBC驱动, Class.forName("com.mysql.jdbc.Driver");,, // 创建数据库连接, Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password");,, // 创建Statement对象, Statement statement = connection.createStatement();,, // 执行SQL语句并获取结果集, ResultSet resultSet = statement.executeQuery(sql);,, // 处理结果集, while (resultSet.next()) {, System.out.println(resultSet.getString("column_name"));, },, // 关闭资源, resultSet.close();, statement.close();, connection.close();, } catch (Exception e) {, e.printStackTrace();, },},
`
,,4. 调用
printSql
方法并传入要执行的SQL语句:,,
`
java,public static void main(String[] args) {, String sql = "SELECT * FROM table_name";, printSql(sql);,},
“,,注意:请根据实际情况替换数据库连接信息(URL、用户名和密码),以及表名和列名。
要在Java中打印SQL日志,可以使用以下方法:
1、使用JDBC(Java Database Connectivity)连接数据库并执行查询,在执行查询时,可以设置日志级别为DEBUG
或TRACE
,以便查看详细的SQL语句和执行过程。
2、使用第三方库,如Log4j或SLF4J,来记录SQL日志,这些库允许你自定义日志格式,并在需要时输出SQL语句。
下面是一个使用JDBC的示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLLogger {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "password";
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
Connection connection = DriverManager.getConnection(url, user, password);
// 创建Statement对象
Statement statement = connection.createStatement();
// 设置日志级别为DEBUG
statement.execute("SET SESSION LOG_QUERIES_TO_FILE='query.log'");
statement.execute("SET SESSION LOG_SLOW_QUERIES=1");
statement.execute("SET SESSION long_query_time=1");
// 执行查询
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
// 处理结果集
while (resultSet.next()) {
System.out.println("User ID: " + resultSet.getInt("id"));
System.out.println("User Name: " + resultSet.getString("name"));
}
// 关闭资源
resultSet.close();
statement.close();
connection.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先加载了MySQL的JDBC驱动,然后使用DriverManager.getConnection()
方法获取数据库连接,接下来,我们创建了一个Statement
对象,并设置了日志级别为DEBUG
,我们执行了一个查询并处理了结果集。
注意:这个示例仅适用于MySQL数据库,如果你使用的是其他类型的数据库,可能需要修改驱动类名和连接URL。