> 唯美句子 > 使用spring的jdbcTempl

使用spring的jdbcTempl

使用spring的jdbcTemplate用PreparedStatement执行sql的时候,怎么打印最终执行的sql。

这个问题简单。首先你自己创建一个MyJdbcTemplate。继承JdbcTemplate,然后重载下面的两个方法:

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import org.springframework.dao.DataAccessException;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.ParameterDisposer;

import org.springframework.jdbc.core.PreparedStatementCallback;

import org.springframework.jdbc.core.PreparedStatementCreator;

import org.springframework.jdbc.core.PreparedStatementSetter;

import org.springframework.jdbc.core.ResultSetExtractor;

import org.springframework.jdbc.support.JdbcUtils;

import org.springframework.util.Assert;

public T query(PreparedStatementCreator psc,

final PreparedStatementSetter pss, final ResultSetExtractor rse)

throws DataAccessException {

Assert.notNull(rse, "ResultSetExtractor must not be null");

logger.debug("Executing prepared SQL query");

return execute(psc, new PreparedStatementCallback() {

public T doInPreparedStatement(PreparedStatement ps)

throws SQLException {

ResultSet rs = null;

try {

if (pss != null) {

pss.setValues(ps);

}

if (logger.isDebugEnabled()) {

logger.debug(ps.toString());

}

rs = ps.executeQuery();

ResultSet rsToUse = rs;

if (getNativeJdbcExtractor() != null) {

rsToUse = getNativeJdbcExtractor().getNativeResultSet(rs);

}

return rse.extractData(rsToUse);

} finally {

JdbcUtils.closeResultSet(rs);

if (pss instanceof ParameterDisposer) {

((ParameterDisposer) pss).cleanupParameters();

}

}

}

});

}

protected int update(final PreparedStatementCreator psc,

final PreparedStatementSetter pss) throws DataAccessException {

logger.debug("Executing prepared SQL update");

return execute(psc, new PreparedStatementCallback() {

public Integer doInPreparedStatement(PreparedStatement ps)

throws SQLException {

try {

if (pss != null) {

pss.setValues(ps);

}

if (logger.isDebugEnabled()) {

logger.debug(ps);

}

int rows = ps.executeUpdate();

if (logger.isDebugEnabled()) {

logger.debug("SQL update affected " + rows + " rows");

}

return rows;

} finally {

if (pss instanceof ParameterDisposer) {

((ParameterDisposer) pss).cleanupParameters();

}

}

}

});

}

然后就会打印最终执行的sql。

如果用spring ioc ,要改配置文件,比如:

怎么将jdbc中的sql打印

这个比较简单,大多说人都知道,呵呵,配置如下:

hibernate.show_sql=true

hibernate.format_sql=false

使用log4jdbc

log4jdbc打印执行的SQL(包括参数)和输出数据(有点想MYSQL的CMD命令执行结果)

log4jdbc是在JDBC层切入,打印出实际执行的SQL语句和数据库返回数据,所以,就算不是使用Hibernate也可以使用,因为涉及数据库JDBC驱动的变更,建议在开发环境使用。

怎样在控制台或者日志打印输出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

org.slf4j

slf4j-log4j12

1.6.4

log4j

log4j

1.2.14

org.slf4j

slf4j-api

1.7.7

1

在JAVA中,使用JDBC访问数据库时可以执行SQL语句完成对数据库造作的是

B Statement

1、创建 Statement 对象

建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:

Connection con = DriverManager.getConnection(url, "sunny", "");

Statement stmt = con.createStatement();

为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Statement 的方法:

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2");

2、使用 Statement 对象执行语句

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。

方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。

执行语句的所有方法都将关闭所调用的 Statement 对象的当前打开结果集(如果存在)。这意味着在重新执行 Statement 对象之前,需要完成对当前 ResultSet 对象的处理。

应注意,继承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 对象本身不包含 SQL 语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。PreparedStatement 对象并不将 SQL 语句作为参数提供给这些方法,因为它们已经包含预编译 SQL 语句。CallableStatement 对象继承这些方法的 PreparedStatement 形式。对于这些方法的 PreparedStatement 或 CallableStatement 版本,使用查询参数将抛出 SQLException。

3、语句完成

当连接处于自动提交模式时,其中所执行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。对于返回一个结果集的 executeQuery 方法,在检索完 ResultSet 对象的所有行时该语句完成。对于方法 executeUpdate,当它执行时语句即完成。但在少数调用方法 execute 的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。

概述

Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。

Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。

有些 DBMS 将已存储过程中的每条语句视为独立的语句;而另外一些则将整个过程视为一个复合语句。在启用自动提交时,这种差别就变得非常重要,因为它影响什么时候调用 commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。

4、关闭 Statement 对象

Statement 对象将由 Java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 Statement 对象时显式地关闭它们。这将立即释放 DBMS 资源,有助于避免潜在的内存问题。

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和参数,没有其它的说明,看的有些眼花~~

jdbc执行sql语句怎么实现在console控制台中显示执行过的sql语句

问题要描述清楚,使用什么框架,是hibernate,还是mybatis,或者自己写的数据库连接工具。如果是hibernate,需要在hibernate属性文件中配置hibernate.show_sql=true,或者在hibernate.cfg.xml文件中配置。 如果是mybatis,配置log4j

java中执行sql插入语句怎么弄

1、Connection conn = DriverManager.getConnection(URL,数据库登录名,数据库登录密码);//获得数据库连接。

2、Statement statement = con.createStatement(); //访问数据库。

3、ResultSet resultSet = statement.executeQuery(sql);//执行SQL语句。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

技术应用

1、Android应用

许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。

2、在金融业应用的服务器程序

Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全[39] 。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。

3、网站

Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。

4、嵌入式领域

Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术。

5、大数据技术

Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

6、高频交易的空间

Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。

7、科学应用

Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。

27. JDBC 提供了三种接口来实现SQL语句的发送执行,( )接口的对象用于执行简单的不带参数的SQL语句。

Statement接口的对象用于执行简单的不带参数的SQL语句。

PrepareStatement接口的对象用于执行带有IN类型参数的预编译过的SQL语句。

CallbleStatement接口的对象用于执行一个数据库的存储过程。

怎么用PreparedStatement打印sql语句 (整个语句)

rosoft.jdbc.base.BasePreparedStateme

jdbc连接数据库sqlserver后怎么执行sql语句

首先确保SQLSERVER服务正在运行,并可以允许远程访问连接

然后按如下步骤进行连接

1.安装JDBC驱动

1)下载JDBC驱动

[www.microsoft.com]

2)执行sqljdbc_4.0.2206.100_chs.exe解压驱动文件

3)拷贝以下目录中的sqljdbc_auth.dll到Windows的System32目录。对x64的机子,x64的dll拷到C:\Windows\System32,x86的dll拷到C:\Windows\SysWOW64目录。

Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\

2.在Java程序中连接SQL Server

classpath中加上安装好的SQL Server jdbc jar包

Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar

连接SQL Server的JDBC代码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url = "jdbc:sqlserver://localhost:54364;databaseName=master;IntegratedSecurity=True";

Connection con = DriverManager.getConnection(url);

在SQL Server Browser服务开启的情况下也可以通过服务名连接

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=master;IntegratedSecurity=True";

Connection con = DriverManager.getConnection(url);

3.身份验证模式

SQL Server默认使用Windows身份验证模式,这也是官方推荐的模式,安全性更高。上面的连接例子就是采用的Windows认证。如果要使用混合认证模式,需要下载SQL Server Management Studio,并通过SQL Server Management Studio修改认证模式为混合认证模式。

SQL Server Management Studio的下载地址

[www.microsoft.com]

修改SQL Server认证模式的方法

[technet.microsoft.com](v=sql.105).aspx

混合认证模式下,可以由数据库进行认证,连接时需要提供用户名和密码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url = "jdbc:sqlserver://localhost:54364;databaseName=master";

Connection con = DriverManager.getConnection(url,"user","password");

使用spring的jdbcTempl:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!