jdbc打印sql
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();