当然在同一个项目中,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的东西
首先看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的东西