`
yunzhongxia
  • 浏览: 647324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

打印JdbcTemplate执行sql

    博客分类:
  • java
阅读更多

有关log4j的基础知识请参考log4j详解与实战本文主要讲解Spring对log4j的增强。

lo4j有2个不方便的地方

  1. log4j的配置文件修改后必须重启才能生效。
  2. 配置文件只能放在WEB-INF/classes目录下。

Spring对 log4j做了更好的增强,下面是要在web.xml中增加的配置参数。

<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>RootPath</param-value>
</context-param>

<!--由Sprng载入的Log4j配置文件位置-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:conf/log4j.xml</param-value>
</context-param>

<!--Spring默认刷新Log4j配置文件的间隔,单位为毫秒-->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>

<!--Spring log4j Config loader-->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

 

 

注意:第一个参数webAppRootKey如果只有一个应用用了Spring对Log4J的增强,则可以不用设置;否则一定要进行设置。

 

 日志文件每天产生一个。{RootPath}即系统的跟路径下。

<!--DEBUG信息输出-->
	<appender name="LOG.DEBUG" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="${RootPath}/logs/debug_" />
		<param name="DatePattern" value="yyyy-MM-dd'.log'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p] [%C-%M] %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG" />
			<param name="LevelMax" value="DEBUG" />
		</filter>
	</appender>

 

 

注意:当日的日志文件是以debug_形式存在的,只有到了下一日才会把昨日的日志文件重名民为debug_2010--03-09.log形式,因此测试的时候需要手工修改系统的时间。

 

因为系统中主要使用JdbcTemplate,因此查看实际执行的sql不是很方面,这就需要把执行的sql语句打印出来。

<!--自定义的日志输出器 -->
	<logger name="org.springframework.jdbc.core" additivity="true">
		<level value="DEBUG" />
		<!-- 日志输出地 -->
		<appender-ref ref="LOG.DEBUG" />
	</logger>
	<logger name="java.sql.Connection" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="LOG.DEBUG" />
	</logger>
	<logger name="java.sql.Statement" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="LOG.DEBUG" />
	</logger>
	<logger name="java.sql.PreparedStatement" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="LOG.DEBUG" />
	</logger>
	<logger name="java.sql.ResultSet" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="LOG.DEBUG" />
	</logger>

 

注意:org.springframework.jdbc.core的level级别只能是debug,Connection  Statement  PreparedStatement  ResultSet 这四个日志输出器都是不能少的。

 

 

 附加是自己配置好的log4j.xml

分享到:
评论
1 楼 evan_shen 2011-12-30  
貌似不能输出参数啊

相关推荐

    struts+spring +jdbctemplate demo

    4. 数据访问层通过JdbcTemplate执行SQL操作,例如查询、插入、更新或删除记录。 5. 完成数据库操作后,Action将结果返回给Struts,Struts再决定展示哪个视图(可能是JSP页面)。 这个Demo可能包含以下关键文件: -...

    利用JDBC的PrepareStatement打印真实SQL的方法详解

    在实际应用中,我们可以在执行SQL之前调用这个方法,比如在上述示例的`query`函数中,先调用`printRealSql`打印SQL,然后再执行查询操作: ```java public static Map, Object&gt; query(Connection conn, String sql,...

    springboot log4jdbc 打印完整sql

    在上面的代码中,我们使用了 JdbcTemplate 来执行一个 SQL 语句。当我们执行这个方法时,Log4jdbc 将打印出完整的 SQL 语句,包括参数 replacement: ``` DEBUG [main] JDBC - { conn:100, pstmt:102, sql:SELECT * ...

    JdbcTemplate查询

    `JdbcTemplate`作为Spring JDBC的核心类,主要负责执行SQL语句并处理结果集。通过使用不同的方法,它可以支持各种类型的数据库查询和更新操作。这些方法通常被设计为易于理解和使用,同时提供了良好的错误处理机制。...

    JdbcTemplate操作总结

    在`main`方法中,通过`jdbcTemplate`执行SQL查询,获取`SqlRowSet`对象,然后遍历结果集打印用户真实姓名(`USER_REAL_NAME`)。这展示了JdbcTemplate的基本用法,即通过调用其提供的方法执行SQL并处理结果。 ...

    Spring框架中jdbcTemplate 的使用.doc

    如果需要批量执行SQL语句,JdbcTemplate还提供了`batchUpdate()`方法,可以一次执行多个更新操作。 9. **性能优化**: JdbcTemplate通过缓存预编译的SQL语句(PreparedStatement),提高了性能,并且可以避免多次...

    jsp访问sqlserver05数据库示例

    总之,通过JSP访问SQL Server 05数据库,你需要配置JDBC驱动,编写Java代码来建立连接,执行SQL操作,最后记得关闭连接。这个过程对于任何需要与数据库交互的Java Web应用都是至关重要的。在`SuperMarket`这个示例中...

    IDEA连接postgressql数据库操作

    这个例子展示了如何通过`JdbcTemplate`执行SQL查询并返回结果。 总的来说,IDEA连接PostgreSQL数据库操作涵盖了从配置数据源、修改`pg_hba.conf`到使用Spring Boot进行数据库连接和查询的全过程。理解这些步骤将...

    jdbc操作Mysql数据库demo

    4. **执行SQL**:通过`Statement`或`PreparedStatement`对象的`executeQuery()`或`executeUpdate()`方法执行SQL查询或更新。 5. **处理结果集**:对于`executeQuery()`返回的结果,我们可以使用`ResultSet`来遍历...

    基于spring boot 1.5.4 集成 jpa+hibernate+jdbcTemplate(详解)

    另外,`spring.jpa.show-sql`设置为`true`可以打印出执行的SQL语句,便于调试。 ```properties spring.jpa.hibernate.ddl-auto=none spring.jpa.show-sql=true ``` 4. **实体类定义** 使用`@Entity`注解标记实体...

    JDBC Template基本使用方法详解

    在上面的示例中,我们使用 `JdbcTemplate` 对象来执行一个 SQL 查询,并将结果存储在 `List` 中。然后,我们遍历结果集,打印出每一行数据。 总结 在这篇文章中,我们介绍了 JDBC Template 的基本使用方法,从依赖...

    ssm增删改查

    通常我们会创建一个数据库工具类,封装数据库连接的获取和释放,以及执行SQL语句的方法。例如,使用JdbcTemplate或者SqlSession进行CRUD操作,保证代码的简洁和易维护。 7. **IDEA开发环境**: IDEA是Java开发的...

    spring 上传图片到数据库.zip

    Base64是一种常见的数据编码方法,它将二进制数据转化为可打印的ASCII字符,以便在网络传输中进行安全地处理。在图片上传的场景中,Base64编码可以将图片转换为字符串形式,然后存储在数据库的文本字段中。 Spring...

    使用Java+Jsoup做数据爬虫

    此处假设使用Spring JDBC,我们先创建对应的DAO接口和实现类,然后调用`JDBCUtils`工具类获取数据库连接并执行SQL。 ```java // RecruitmentDAO.java public interface RecruitmentDAO { void insertRecruitment...

    通过Spring的IOC控制完成druid数据库的基本操作案例

    然后实现这个接口,使用`JdbcTemplate`执行SQL查询: ```java public interface MyIpService { List&lt;MyIp&gt; getAll_IP(); } @Service public class MyIpServiceImpl implements MyIpService { @Autowired ...

    java常用框架学习笔记

    - **show_sql的配置**:通过设置`show_sql`为`true`可以在控制台打印出Hibernate执行的所有SQL语句,这对于调试非常有用。 - **format_sql配置**:如果设置了`format_sql`为`true`,那么控制台上显示的SQL语句将被...

    Spring MVC 切换数据源

    - 在Spring MVC中,我们可以使用JdbcTemplate或NamedParameterJdbcTemplate来执行SQL语句,这两个工具类简化了与数据库的交互。 - 配置MySQL数据源时,需要提供相应的驱动类、URL、用户名和密码。例如,使用`...

    Springboot+maven+idea+mysql实战之获取数据库信息显示在前端

    要从数据库获取数据并在前端展示,我们需要创建一个`Controller`,注入`JdbcTemplate`来执行SQL查询。例如: ```java @RestController public class TestController { @Autowired private JdbcTemplate ...

Global site tag (gtag.js) - Google Analytics