Spring+NamedParameterJdbcTemplate+NamedParameterJdbcDaoSupport+JDBC 命名参数支持
来源:互联网 发布:python 2.7支持中文吗 编辑:程序博客网 时间:2024/05/29 03:51
标准的JDBC API对命名参数并不支持,Spring对其进行了扩展
配置文件配置的时候,需要一个JdbcTemplate或者DataSource。
如下:
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="jdbcTemplate"></constructor-arg>
</bean>
或者:
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource"></constructor-arg>
</bean>
示例代码如下:
ListableBeanFactory context = new ClassPathXmlApplicationContext(
"beans.xml");
//GenericBeanFactoryAccessor dbfa = new GenericBeanFactoryAccessor(context);
NamedParameterJdbcTemplate jdbc = (NamedParameterJdbcTemplate) context.getBean("namedParameterJdbcTemplate");
Map<String,String> map = new HashMap<String,String>();
map.put("name", "李度");
SqlParameterSource sps = new MapSqlParameterSource(map);
String sql = "select oid from porder where name=:name";
System.out.println(jdbc.queryForList(sql, sps));
Person person = new Person();
person.setName("李度");
sps = new BeanPropertySqlParameterSource(person);
sql = "select oid from porder where name=:name";
System.out.println(jdbc.queryForList(sql, sps));
其中:
MapSqlParameterSource支持Map形式
BeanPropertySqlParameterSource支持Bean的形式。
他们都继承自SqlParameterSource接口。
下面介绍NamedParameterJdbcDaoSupport支持类。
继承关系为:NamedParameterJdbcDaoSupport和SimpleJdbcDaoSupport继承自JdbcDaoSupport 而JdbcDaoSupport继承自DaoSupport。
JdbcDaoSupport 上面已经介绍过,他暴露了getJdbcTemplate()方法,用于获取JdbcTemplate.
NamedParameterJdbcDaoSupport简化了NamedParameterJdbcTemplate模板类的使用。
下面是:NamedParameterJdbcDaoSupportImpl继承了NamedParameterJdbcDaoSupport。 在DI容器中的配置情况。
需要传入一个:JdbcTemplate或DataSource
<bean id="namedParameterJdbcDaoSupportImpl" class="com.spring.test.NamedParameterJdbcDaoSupportImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
或者:
<bean id="namedParameterJdbcDaoSupportImpl" class="com.spring.test.NamedParameterJdbcDaoSupportImpl">
<property name="dataSource" ref="dataSource"></property>
</bean>
NamedParameterJdbcDaoSupportImpl这个类的示例:
public class NamedParameterJdbcDaoSupportImpl extends
NamedParameterJdbcDaoSupport {
public void test(){
Person person = new Person();
person.setName("李度");
SqlParameterSource sps = new BeanPropertySqlParameterSource(person);
String sql = "select oid from porder where name=:name";
System.out.println(this.getNamedParameterJdbcTemplate().queryForList(sql, sps));
}
}
测试类为:
public static void main(String[] args) {
ListableBeanFactory context = new ClassPathXmlApplicationContext(
"beans.xml");
//GenericBeanFactoryAccessor dbfa = new GenericBeanFactoryAccessor(context);
NamedParameterJdbcDaoSupportImpl jdbc = (NamedParameterJdbcDaoSupportImpl) context.getBean("namedParameterJdbcDaoSupportImpl");
jdbc.test();
- Spring+NamedParameterJdbcTemplate+NamedParameterJdbcDaoSupport+JDBC 命名参数支持
- Spring JDBC之NamedParameterJdbcTemplate
- Spring JDBC-NamedParameterJdbcTemplate模板类
- 为JDBC增加命名参数的支持
- JDBC之使用Spring提供的NamedParameterJdbcTemplate
- spring NamedParameterJdbcTemplate 和 SqlParameterSource 参数绑定使用
- Spring NamedParameterJdbcTemplate
- 让JAVA的JDBC支持命名参数的SQL语句
- spring里使用JDBC(三)NamedParameterJdbcTemplate方式
- Spring NamedParameterJdbcTemplate 详解 解决jdbcTemplate中 in 参数的问题
- Spring-jdbc:使用支持具名参数的JdbcTemplate
- Spring NamedParameterJdbcTemplate 详解
- Spring NamedParameterJdbcTemplate 详解
- Spring中NamedParameterJdbcTemplate详解
- Spring对jdbc支持
- spring对jdbc支持
- 使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库
- 使用Spring JDBC进行数据访问 (JdbcTemplate/NamedParameterJdbcTemplate/SimpleJdbcTemplate/SimpleJdbcCall/Stor)
- PowerBuilder 12.5 IDE破解
- 接口介绍-Servlet Context
- 使用hadoop的datajoin包进行关系型join操作
- 从SOCKADDR 中得到IP
- 用MIDlet激活Servlet
- Spring+NamedParameterJdbcTemplate+NamedParameterJdbcDaoSupport+JDBC 命名参数支持
- oracle SQL性能优化
- hdu4363 Draw and paint(hard DP )
- oracle恢复删除的表或表记录的方法
- MFC(窗口,菜单栏,状态等的风格,孙鑫C++第九讲笔记整理)
- oracle网络配置和连接管理
- C++11:OpenSuSe11下编译gcc 4.7.1
- Android Training - 和其他程序交互(2) - 从一个activity取得结果
- Linux进程间通信IPC(三)--- signal