`

spring的jdbc应用

阅读更多
当然在同一个项目中,jdbc和hibernate可以同时使用,使用同一个数据源
首先看jdbctemplate配置
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource"><ref bean="dataSource"/></property>
</bean>
这个dataSource就不用说了吧,跟hibernate使用同一个数据源
dao层写法
<bean id="serviceAnalyserJdbcDao" class="com.fruitking.dao.jdbcdao.impl.ServiceAnalyserDaoImpl">
    <property name="jdbcTemplate" ref="jdbcTemplate" />
  </bean>
service层写法
<bean id="serviceAnalyserJdbcService" class="com.fruitking.service.jdbcservice.impl.ServiceAnalyserServiceImpl">
    <property name="serviceAnalyserJdbcDao" ref="serviceAnalyserJdbcDao" />
  </bean>
配置就是这么简单了
当然在dao层的程序里面我们一般使用一个对象包装
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.fruitking.dao.jdbcdao.IAccessAnalyserDao;
import com.fruitking.entity.AccessAnalyser;

public class AccessAnalyserDaoImpl extends JdbcDaoSupport implements IAccessAnalyserDao{

public List<AccessAnalyser> countGroupByYear(){
String sql ="select to_char(t.createddate, 'yyyy') as cyear, count(*) as yearcount from accessanalyser t group by to_char(t.createddate, 'yyyy')";
List<AccessAnalyser> accessAnalyserList = this.getJdbcTemplate().query(sql, new AccessAnalyserRowMapper());
return accessAnalyserList;
}

class AccessAnalyserRowMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
AccessAnalyser accessAnalyser = new AccessAnalyser();
accessAnalyser.setYearName(rs.getString("cyear"));
accessAnalyser.setClickTimes(rs.getLong("yearcount"));
return accessAnalyser;
}
}
}
这样就可以像hibernate一样使用了,只不过你可以任意的使用jdbc的东西
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics