當前位置:首頁 » 編程語言 » 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();

熱點內容
sql語句動態 發布:2025-01-20 16:18:22 瀏覽:297
sql表或的語句 發布:2025-01-20 16:00:49 瀏覽:162
西瓜視頻怎麼緩存不了電影了 發布:2025-01-20 16:00:45 瀏覽:889
javatimer 發布:2025-01-20 15:55:56 瀏覽:63
ts使用什麼編譯器 發布:2025-01-20 15:54:59 瀏覽:381
資料庫中已存在 發布:2025-01-20 15:35:44 瀏覽:109
壓縮超過密度 發布:2025-01-20 15:35:33 瀏覽:647
和她在一起的日歷怎麼弄安卓 發布:2025-01-20 15:29:29 瀏覽:639
android6華為 發布:2025-01-20 15:28:06 瀏覽:692
荔枝fm怎麼上傳錄音 發布:2025-01-20 15:22:27 瀏覽:107