SpringDao 秒速五厘米 2023-06-06 03:46 6阅读 0赞 ###### SpringDao ###### **模板化的访问方式** * 在直接使用具体的持久化技术时,我们大多需要处理整个流程。Spring为支持的持久化技术分别提供了模板访问的方式,降低了使用各种持久化技术的难度,可以大幅提高开发效率。 * **使用模板和回调机制** * Spring为各种支持的持久化技术都提供了简化操作的模板和回调,在回调中编写具体的数据操作逻辑,使用模板执行数据操作,在Spring中,这是典型的数据操作模式。 * JDBCTemplate * 如果我们直接使用模板类,一般都需要在DAO中定义一个模板对象并提供数据资源,Spring为每一个持久化技术都提供了支持类,支持类中已经为我们完成这样的功能。这样,我们只需要扩展这些支持类就可以直接编写实际的数据访问逻辑,没有丝毫阻隔。 * JdbcDaoSupport * 数据源,不管通过何种持久化技术,都必须拥有数据连接,在Spring中,数据连接是通过数据源获得的,可以直接在Spring容器中配置数据源。 **先来介绍JdbcTemplate** spring 提供用于操作JDBC工具类,类似:DBUtils。 依赖 连接池DataSource (数据源) **环境:** com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar dbcp commons pool spring-jdbc-3.2.0.RELEASE.jar spring-tx-3.2.0.RELEASE.jar **操作:** public static void main(String[] args) { //1 创建数据源(连接池) dbcp BasicDataSource dataSource = new BasicDataSource(); // * 基本4项 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/hibernate3"); dataSource.setUsername("root"); dataSource.setPassword("root"); //2 创建模板 JdbcTemplate jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(dataSource); //3 通过api操作 jdbcTemplate.update("insert into user(username,password) values(?,?);", "1601","1601"); } <!-- 配置DBCP --> <!-- 创建数据源 --> <bean id="dataSourceId" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/hibernate3"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean> <!-- 创建模板 ,需要注入数据源--> <bean id="jdbcTemplateId" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSourceId"></property> </bean> <!-- 配置dao --> <bean id="userDaoId" class="com.dream.dao.UserDao"> <property name="jdbcTemplate" ref="jdbcTemplateId"></property> </bean> //编写dao public class UserDao { //jdbc模板将由spring注入 private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void update(User user){ String sql = "update user set username=?,password=? where id =?"; Object[] args = {user.getUsername(),user.getPassword(),user.getId()}; jdbcTemplate.update(sql, args); } public List<User> findAll() { return jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<User>(User.class)); } } <!--最后配置C3P0 创建数据源 c3p0--> <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/hibernate3"></property> <property name="user" value="root"></property> <property name="password" value="root"></property> </bean> **接下来看看JdbcDaoSupport的使用** //编写DAO public class UserDao extends JdbcDaoSupport{ public void update(User user){ String sql = "update user set username=?,password=? where id =?"; Object[] args = {user.getUsername(),user.getPassword(),user.getId()}; this.getJdbcTemplate().update(sql, args); } public List<User> findAll() { return this.getJdbcTemplate().query("select * from user", ParameterizedBeanPropertyRowMapper.newInstance(User.class)); } } <!-- 配置更改 --> <bean id="userDaoId" class="com.itheima.e_jdbcdaosupport.UserDao"> <property name="dataSource" ref="dataSourceId"></property> </bean> <!-- properties--> jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql://localhost:3306/hibernate3 jdbc.user=root jdbc.password=root <!-- 加载配置文件 "classpath:"前缀表示 src下 在配置文件之后通过 ${key} 获得内容 --> <context:property-placeholder location="classpath:com/dream/properties/jdbcInfo.properties"/> <!-- 创建数据源 c3p0--> <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> </bean>
相关 SpringDao SpringDao 模板化的访问方式 在直接使用具体的持久化技术时,我们大多需要处理整个流程。Spring为支持的持久化技术分别提供了模板访问的方式,降低了使用各 秒速五厘米/ 2023年06月06日 03:46/ 0 赞/ 7 阅读
相关 Spring-7.SpringDao 7.1 模块化访问模式 在直接使用具体的持久化技术时,我们大多需要处理整个流程。Spring为支持的持久化技术分别提供了模板访问的方式,降低了使用各种持久化技术的难度 淩亂°似流年/ 2022年06月02日 07:17/ 0 赞/ 215 阅读
还没有评论,来说两句吧...