Spring 中jdbcTemplate用法

字数 31阅读 598

方法一:
appplication-context文件配置

 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
        <property name="url"  
            value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8" />  
        <property name="username" value="root" />  
        <property name="password" value="root123456" />  
    </bean>  
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
        <property name="dataSource" ref="dataSource"></property>  
    </bean>  
     //将jdbcTemplate属性注入
    <bean id="jdbcTemplateDao" class="examples.jdbc.jdbcTemplateDao">  
        <property name="jdbcTemplate" ref="jdbcTemplate" />  
    </bean>  
</beans> 

模型层省略(一个user)。。。
dao层;

 private JdbcTemplate jdbcTemplate;  
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
        this.jdbcTemplate = jdbcTemplate;  
    }  
}  
public void createTable(){
        
        jdbcTemplate.execute("create table user_table(id integer,firstName varchar(200),lastname varchar(200))");
    }
    
    public void updata(){
        jdbcTemplate.update("insert into user_table value(1,?,?)","meimei","han");
        jdbcTemplate.update("insert into user_table value(2,?,?)","daha","fu");
    }
    public int count(){
        return jdbcTemplate.queryForObject("select count(*) from user_table", Integer.class);
    }
    
    public List<User> getUserList(){
        //RowMapper 用来封装数据库中的数据封装成用户定义的类
        
        String sql="select * from user_table";
        
        return this.jdbcTemplate.query(sql, new RowMapper<User>(){

            public User mapRow(ResultSet rs, int rowNum) throws SQLException {
                User user=new User();
                user.setId(rs.getInt("id"));
                user.setFirstName(rs.getString("firstName"));
                user.setLasrName(rs.getString("lastNmae"));
                return user;    
            }
        }
                );
    }

方法二:

dataSource配置不变
//因为我们在dao层使用setter方法注入dataSource
<bean id="jdbcTemplateDao" class="examples.jdbc.jdbcTemplateDao">  
       <property name="dataSource" ref="dataSource"/>  
</bean>  
 private JdbcTemplate jdbcTemplate;  
          
        //注入方法2  
        public void setDataSource(DataSource dataSource) {  
                     //此时我们直接new了一个jdbcTemplate实例所以不用配置bean
                   this.jdbcTemplate = new JdbcTemplate(dataSource);  
        }  

控制层:

ApplicationContext context=new ClassPathXmlApplicationContext("application-context.xml");
        
        JdbcTemplateDao test=context.getBean("jdbcTemplate",JdbcTemplateDao.class);
        test.createTable();
        
        List<User> userList=test.getUserList();
        
        for(User u: userList){
            System.out.println(u.getId()+":"+u.getFirstName()+":"+u.getLasrName());
        }
        ((ConfigurableApplicationContext)context).close();

推荐阅读更多精彩内容