Как включить консольное журналирование SQL-запросов в весеннем JDBC - PullRequest
1 голос
/ 09 июня 2019

Я новичок в подготовленном заявлении, и я пытаюсь использовать базовую вставку и обновление, используя jdbcTemplate, который также работает нормально, но я хочу, чтобы журналы печатались для запросов sql в consle, и я не уверен, как этого добиться. Я добавил обязательные свойства в файл application.properties, но он не работает. Пожалуйста, помогите мне, дав некоторые соответствующие предложения или ссылку, которая может решить мою проблему. Заранее спасибо ...

SampleConfiguration.java

@Configuration
public class SampleConfiguration 
{
    @Bean
    public DataSource mysqlDataSource() 
    {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
        dataSource.setUrl("jdbc:hsqldb:hsql://localhost/");
        dataSource.setUsername("SA");
        dataSource.setPassword(""); 
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource)
    {
        JdbcTemplate jdbcTemplate = new JdbcTemplate();
        jdbcTemplate.setDataSource(dataSource);
        return jdbcTemplate;
    }

}

SampleService.java

@Service
public interface SampleService 
{
    public int insert();
    public long getCount();
}

SampleServiceImpl.java

@Service
public class SampleServiceImpl implements SampleService 
{

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Override
    public int insert()
    {
        return jdbcTemplate.update("insert into batch values(?,?)","field1","field2");
    }

    @Override
    public long getCount()
    {
        return jdbcTemplate.queryForObject("select count(*) from batch", Long.class);
    }

}

SpringjdbcApplication.java

@SpringBootApplication
public class SpringjdbcApplication 
{
    public static void main(String[] args) 
    {
        ApplicationContext context  = SpringApplication.run(SpringjdbcApplication.class, args);
        SampleService service = context.getBean(SampleService.class);
        System.err.println("The number of rows inserted = "+service.insert());
        System.err.println("The count of batch class is = "+service.getCount());
    }

}

Entity.java

@Entity
public class Batch implements Serializable 
{

    private static final long serialVersionUID = -5687736664713755991L;

    @Id
    @Column(name="field1")
    private String field1;

    @Column(name="field2")
    private String field2;

        ... getter, setter and no-arg constructor
}

application.properties

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.format_sql=true

logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql=trace

pom.xml

           <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

Я хочу знать, как включить запись оператора SQL на консоли и как установить другие свойства, такие как автоматическое принятие или отключение ???

1 Ответ

0 голосов
/ 09 июня 2019

Вы должны добавить это в файл свойств

logging.level.org.springframework.jdbc.core = TRACE

Это включит журналы Spring Jdbc

...