当前位置: 首页 > 知识库问答 >
问题:

Spring Boot JDBC模板SQL日志

孙才捷
2023-03-14
spring.datasource.url=url
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

logging.level.org.springframework.jdbc.core.JdbcTemplate=debug

spring.datasource.type = com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=2
@Repository
public class DataRepository {
    private static Logger log = LoggerFactory.getLogger(DataRepository.class);

    @Autowired
    private NamedParameterJdbcTemplate jdbcTemplate;

    public Data findDataObjet() throws Exception {

        Map<String, Object> parameters = new HashMap<>();
        parameters.put("id1", "mike");
        parameters.put("id2", new Long(1));

        String sqlString = "select * from table1 where id1 = ":id" and id2 = :id2";
        log.info("Query:" + sqlString);//this log is printing

        Data extObj = jdbcTemplate.query(sqlString, parameters, (rs) -> {
            if (rs != null && rs.next()) {
                Data innerObj = new Data();
                innerObj.setName(rs.getString("name"));             
                return innerObj;
            } else {
                log.info("No records found:"+rs);
                return null;
            }
        });

        return extObj;

    }
}
<appender name="dailyRollingFileAppender"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>${logsPath}DATA%d{MMddyyyy}.log
        </FileNamePattern>
        <maxHistory>4</maxHistory>
    </rollingPolicy>

    <encoder>
        <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level
            %logger{35}-%msg %n</Pattern>
    </encoder>
</appender>
<root level="INFO">
    <appender-ref ref="dailyRollingFileAppender" />
</root>

共有1个答案

松国兴
2023-03-14

试试看

log4j.category.org.springframework.jdbc.core = TRACE

上面的语句也将打印带有入站参数的SQL查询。

如果只需要记录查询,请使用以下命令

log4j.category.org.springframework.jdbc.core = DEBUG
<logger name="org.springframework.jdbc.core.JdbcTemplate">
  <level value="debug" />
</logger>

<logger name="org.springframework.jdbc.core.StatementCreatorUtils">
  <level value="debug" />
</logger>
logging.level.org.springframework.jdbc.core=TRACE
 类似资料:
  • JFinal利用自带的 Enjoy Template Engine 极为简洁的实现了 Sql 模板管理功能。一如既往的极简设计,仅有 #sql、#para、#namespace 三个指令,学习成本依然低到极致。 重要:除了以上三个 sql 管理专用指令以外,jfinal 模板引擎的所有指令和功能也可以用在 sql 管理,jfinal 模板引擎用法见第 6 章:http://www.jfinal.c

  • 英文原文:http://emberjs.com/guides/application/the-application-template/ 应用模板是应用启动的时候默认渲染的模板。 你应该把你的header、footer和其他装饰性的内容放在应用模板里面。另外,应用模版中至少需要一个{{outlet}}占位符,以便路由能根据当前的URL将适当的模版渲染进来。 下面是一个应用模板的例子: 1 2 3

  • 问题内容: 我正在尝试编写一些代码,以读取一个SQL文件(用分隔的多个语句)并执行所有语句。 在纯JDBC中,我可以这样写: 并且这两个(所有)语句都已执行。当我尝试在Spring JdbcTemplate中执行相同的操作时,虽然仅执行第一条语句! 有没有一种方法可以执行多个语句?在进行谷歌搜索时,我发现只有“ 手动拆分sqlQuery”之类的解决方案当然是没有用的(它需要更多的解析)。 问题答案

  • 我试图编写一些代码来读取一个SQL文件(多个语句由分隔)并执行所有语句。 有没有执行多个语句的方法?在Googleing中,我只找到了“通过手动拆分sqlQuery”这样的解决方案,这当然是无用的(这需要更多的解析)。

  • 我的模板中有这个: item.content和item.content分别显示。但是,item.pub_date不显示其中的值。我在渲染模板中日期应该在的位置得到空部分。 使用Batarang,我实现了pub\u date值显示在模板中,但没有呈现什么。 这是我在巴塔朗查到的结果 我是否需要添加一个日期过滤器才能正常工作?我没有正确地公开pub\u date项中的值,或者?谢谢

  • sql|SQL标签: 标签名称:sql 功能说明:用于从模板中用一个SQL查询获得其返回内容 适用范围:全局使用 基本语法: {dede:sql sql=""}底层模板{/dede:sql} 参数说明: sql="" 完整的SQL查询语句 底层模板字段: SQL语句中查出的所有字段都可以用[field:字段名/]来调用 应用实例: 1.调用某个特定会员发布的文章内容 {dede:sql sql='