当前位置:首页 » 编程语言 » jdbc打印sql

jdbc打印sql

发布时间: 2022-04-13 12:45:24

1. mybatis 怎么将sql打印

mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动时显示设置mybatis使用的日志类:
log4j.logger.org.apache.ibatis=debug,stdout log4j.logger.java.sql=debug,stdout
这样有时可能却不是个可行的办法,原因在于不可能移除self4j包,因为其他依赖包必须依赖这个包。 mybatis有如下方法来手动选择日志类,调用后成功打印日志 如果引用了slf4j的包,并且要使用log4j需要加入slf4j-log4j12的包,如果没有加入slf4j-log4j12的包是无法打印sql的。。具体log4j文件如下:

log4j.rootCategory=info, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.Conversion
Pattern=[QC] %p [%t] %C.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\report.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug

log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout

现在重启tomcat,执行一条语句看看,sql是不是都出来了

2. java代码里面怎么打印sql语句

用JDBC?你不是要先定义一个String sql =“select * from user where id = ?”之类的语句么。然后System.out.println(sql);控制台就出来了啊
如果是hibernate框架,在hibernate.cfg.xml里面有个配置
master.hibernate.show_sql=true 就可以了。
如果找不到这个属性,直接敲showsql应该会有提示的

3. 怎么将jdbc中的sql打印

这个比较简单,大多说人都知道,呵呵,配置如下:
hibernate.show_sql=true
hibernate.format_sql=false
使用log4jdbc
log4jdbc打印执行的SQL(包括参数)和输出数据(有点想MYSQL的CMD命令执行结果)
log4jdbc是在JDBC层切入,打印出实际执行的SQL语句和数据库返回数据,所以,就算不是使用Hibernate也可以使用,因为涉及数据库JDBC驱动的变更,建议在开发环境使用。

4. 原生jdbc执行sql的过程是什么呢

标准的API,可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序。同时,JDBC也是一个品牌。使用JDBC,可以很容易地向各种关系数据发送SQL语句。换句话说,有了JDBC API,就不需要再编写一个访问Sybase数据库的程序,另一个访问Oracle数据库的程序,或者另一个访问Informix数据库的程序等等。

该连接地址将由数据库制造商提供。通常,当使用JDBC连接到数据库时,用户需要输入数据库连接的用户名和密码。本章使用的是mysql数据库,因此用户名和密码都是“root”,用户只有在获得连接后才能查询或更新数据库。要连接到数据库,您需要从java.sql.DriverManager请求并获取一个Connection对象,该对象表示数据库的连接。

5. 如何启动JDBC Debug模式,打印JDBC诊断日志

您好,很高兴为您解答。

1.下载Debug版本jar包

首先要下载一个Debug版本的JDBC jar包,Debug版本的jar包命名形式为jdbcX_g.jar


2.启动Logging模式

第一种方式:设置运行环境变量java -Doracle.jdbc.Trace=true ...(elipse中run->run configurations->arguments一栏)


第二种方式:在程序中控制(建议采用这种方式)

MBeanServermbs=ManagementFactory.getPlatformMBeanServer();
Stringloader=Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:"]+","");
ObjectNamepattern=newObjectName("com.oracle.jdbc:type=diagnosability,name="+loader);
ObjectNamediag=((ObjectName[])(mbs.queryNames(pattern,null).toArray(newObjectName[0])))[0];
mbs.setAttribute(diag,newAttribute("LoggingEnabled",true));
System.out.println("LoggingEnabled="+mbs.getAttribute(diag,"LoggingEnabled"));


如果用的是Oracle 10g,直接执行:

/**oracle10g启动方法*/
oracle.jdbc.driver.OracleLog.setTrace(true);//enablelogging
oracle.jdbc.driver.OracleLog.setTrace(false);//disablelogging


3.配置log文件

jdbc使用的是java.util.logging包中的Logger对象打印log。

/**配置log文件*/
Handlerfh=newFileHandler("./oracle_jdbc_log.log");
fh.setLevel(Level.ALL);
fh.setFormatter(newSimpleFormatter());
Logger.getLogger("").addHandler(fh);
Logger.getLogger("").setLevel(Level.ALL);


完成的Demo

importjavax.management.Attribute;
importjavax.management.AttributeNotFoundException;
importjavax.management.InstanceNotFoundException;
importjavax.management.;
importjavax.management.MBeanException;
importjavax.management.MBeanServer;
importjavax.management.MalformedObjectNameException;
importjavax.management.ObjectName;
importjavax.management.ReflectionException;
publicvoidrun()throwsSQLException{
DriverManager.registerDriver(newOracleDriver());
//需在加载OracleDriver之后开启log
enableOracleLogging();
Connectionconn=null;
Statementstmt=null;
ResultSetrset=null;
try{
conn=getConnection();
System.out.println("Connectionretrieved..");
stmt=conn.createStatement();
rset=stmt.executeQuery("selectempnofromemp");
while(rset.next()){
System.out.println(rset.getInt(1));
}
}catch(SQLExceptionsqle){
sqle.printStackTrace();
}finally{
if(rset!=null){
rset.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
(){
try{
/**配置log文件*/
Handlerfh=newFileHandler("./oracle_jdbc_log.log");
fh.setLevel(Level.ALL);
fh.setFormatter(newSimpleFormatter());
Logger.getLogger("").addHandler(fh);
Logger.getLogger("").setLevel(Level.ALL);
/**oracle11g启动方法*/
MBeanServermbs=ManagementFactory.getPlatformMBeanServer();
Stringloader=Thread.currentThread().getContextClassLoader().toString().replaceAll("[,=:"]+","");
ObjectNamepattern=newObjectName("com.oracle.jdbc:type=diagnosability,name="+loader);
ObjectNamediag=((ObjectName[])(mbs.queryNames(pattern,null).toArray(newObjectName[0])))[0];
mbs.setAttribute(diag,newAttribute("LoggingEnabled",true));
System.out.println("LoggingEnabled="+mbs.getAttribute(diag,"LoggingEnabled"));
/**oracle10g启动方法*/
//oracle.jdbc.driver.OracleLog.setTrace(true);//enablelogging
//oracle.jdbc.driver.OracleLog.setTrace(false);//disablelogging

}catch(Exceptione){
e.printStackTrace();
}
}


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

6. log4j.xml 如何在控制台打印jdbc执行过的sql

问题要描述清楚,使用什么框架,是hibernate,还是mybatis,或者自己写的数据库连接工具。如果是hibernate,需要在hibernate属性文件中配置hibernate.show_sql=true,或者在hibernate.cfg.xml文件中配置。
如果是mybatis,配置log4j
<category name="org.apache.ibatis" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="console"/>
</category>

7. 怎么打印mybatis的sql语句

MyBatis自己内部使用的是Log4j,但实际上支持用户使用各种Log技术。如果配置正确的话,也就是启用debug级别即可打印所有的MyBatis的语句。比如,在我的web程序中,使用logback,maven依赖如下:


<!--log-begin-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.27</version>
</dependency>
<!--log-end-->

8. spring JdbcTemplate 利用 Log4j 在控制台打印出SQL语句、参数

#jdbcTemplate sql
log4j.logger.org.springframework.jdbc.core=DEBUG, file
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=TRACE, file
用这两个就可以,这个好像是spring 2.5.*支持,再高的版本没试,只能打印出sql和参数,没有其它的说明,看的有些眼花~~

9. 怎样在控制台或者日志打印输出JDBC执行的sql语句

首先配置 log4j日志文件
#mybatis日志范围
log4j.logger.com.nes=TRACE
#ibatis配置
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

2.导入依赖日志包 log4j

<!-- SLFJ 可依赖到log4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>

1

10. 用sql server的jdbc在控制台输入需要查询的学生的性别,根据用户的输入,把查询的学生打印

Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from sj where sex = '"+你输入的男女数据+"'");
while(rs.nest()){rs.getString("sex");}//遍历学生数据
rs.close(),stmt.close(),con.close();

热点内容
一台服务器多个同段地址怎么通讯 发布:2025-01-20 16:45:58 浏览:734
i7源码 发布:2025-01-20 16:40:48 浏览:983
抽签源码 发布:2025-01-20 16:38:35 浏览:62
密码箱怎么锁住 发布:2025-01-20 16:32:17 浏览:31
编译隔离 发布:2025-01-20 16:28:54 浏览:358
从哪里看自己的qq账号和密码 发布:2025-01-20 16:22:33 浏览:400
sql语句动态 发布:2025-01-20 16:18:22 浏览:298
sql表或的语句 发布:2025-01-20 16:00:49 浏览:163
西瓜视频怎么缓存不了电影了 发布:2025-01-20 16:00:45 浏览:890
javatimer 发布:2025-01-20 15:55:56 浏览:64