JDBCTemplate的使用详解



        对于一个菜鸟级开发,总感觉接触Hibernate,MyBatis...等框架自己封装的一些方法用起来不是很方便,当然可能是我接触不深,当然框架有自己的好处,但是有一点可以肯定,sql语句中涉及到最多的还是查询,一般的简单查询框架完全可以搞定,但是遇到复杂条件的查询,对于对框架接触不深的小白实现起来就有点难度,这个时候如果有人告诉你没有一句sql解决不了的问题,如果有,那就两句。SQL对很多人来说就不会有太大难度,而且简单方便够灵活,妈妈再也不用担心我的框架学不会了。下来进入正题。


使用jdbcTemplate有两种方式,之前看到有人说有三种方式(个人感觉前两种方式无非就是注入方式的不同,具体下面会介绍,毕竟实现都是一样的,能用@AutoWrite搞定的事情,谁会多此一举写个get/set方式)
要用jdbcTemplate,那就必须得先配置,此条件都为下面两种使用jdbcTemplat的前提条件,这里列出,下面就全部省略了。
      下面红色的地方可以变更,可以直接注入JdbcTemplate或者注入需要的业务层然后直接引用JdbcTemplate
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 使用的数据源配置 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="defaultAutoCommit" value="false" />
</bean>

然后下面介绍下具体两种使用方式,上面说到有人博客说使用jsdbcTemplate有三种方式,其实前两种方式可以合并为我所说的第一种方式,下面具体详解:

第一种方式:

配置文件如上,不用改变任何东西,然后直接将JdbcTemplate注入到业务层直接使用,如下:

@AutoWired
private JdbcTemplate jdbcTemplte;

然后就可以使用了。
别人博客中提到的第二种方式和以上差不多,只是配置文件上有些差别:
<bean id="jdbcTemplate" class="com.gsww.jup.service.express.impl.IndentServiceImpl">
<property name="dataSource" ref="dataSource" />
  </bean> 
  <bean id="indentServiceImpl" class="com.gsww.jup.service.express.impl.IndentServiceImpl">
<property name="dataSource" ref="dataSource"/>
</bean>
 
  只是以上红色的部分有变化(第一个ID随便写没关系,关键在第二个class,之前我写的直接引入的
org.springframework.jdbc.core.JdbcTemplate,而这里没有经过org.springframework.jdbc.core.JdbcTemplate,而是
直接将数据源注入到自己的业务类里面),后续的使用步骤和上面一样,直接在业务类里面直接引用JdbcTemplate,
即直接注入:
@Autowired
private JdbcTemplate jdbcTemplate;

然后就可以引用了,按照我的理解,只要注入了数据源,就可以直接注入引用了。

第二种方式:

直接继承JdbcDaoSupport,其内部有个JdbcTemplate,只要将数据源通关过配置文件注入到该类就可以直接使用,直接用this.就可以直接引用到。

public class UserDaoImpl extends JdbcDaoSupport{    
    @Override  
    public void save(User user) {  
        String sql = null;  
        this.getJdbcTemplate().update(sql);  
    }  
        //其它方法省略……  
}  

  其相关配置文件如:
<bean id="userDao" class="com.hxzy.account.jdbcTemplate.UserDaoImpl">  
          <property name="dataSource" ref="dataSource"/>  
</bean>
 
  比较推荐使用第二种,他的实现方式为
Spring提供了 org.springframework.jdbc.core.support.JdbcDaoSupport 类,这个类中定义了JdbcTemplate 属性,也定义了DataSourcre属性,当项目启动设置DataSource属性的时候,就会创建JdbcTemplate实例,所以我们只需继承。
JdbcDaoSupport便可以通过this.关键字调取到执行方法。
个人感觉就复杂点的查询会用到JdbcTemplate查询,增删改一般框架基础方法就可以搞定。
看完了没,记得点赞啊。。。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
发布了3 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/JasionHeng/article/details/78393931
今日推荐