Spring DAO

来源:互联网 发布:喀秋莎录屏软件7.1 编辑:程序博客网 时间:2024/05/17 09:41

如何连接数据库:
1)XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
   "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

   <bean id="jdbcTemplate"
     class="org.springframework.jdbc.core.JdbcTemplate">
     <property name="dataSource">
      <ref local="dataSource"></ref>
     </property>
   </bean>

 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName">
         <value>org.gjt.mm.mysql.Driver</value>
        </property>
        <property name="url">
         <value>jdbc:mysql://localhost:3306/example11</value>
        </property>
        <property name="username">
         <value>root</value>
        </property>
        <property name="password">
         <value>111111</value>
        </property>
    </bean>
 
</beans>  

2)调用数据库连接:
       Resource resource = new ClassPathResource("appcontext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
        JdbcTemplate jt = (JdbcTemplate) factory.getBean("jdbcTemplate");//JdbcTemplate 是spring的数据库提取类
       
3)执行SQL语句:
      jt.execute(
            "create table jdbctemplate(id int ,templatename varchar(100))");//执行SQL语句
      jc.update("UPDATE user SET age = 10 WHERE id = 'erica'");//更新表数据
      //以下是带参更新(delete,insert类似)
       JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
      //带参数的更新
       jt.update("update mytable set name = ? where id = ?", new Object[] {name, new Integer(id)});


4)返回数据集处理:
        //得到列名及总体信息
         Resource resource = new ClassPathResource("appcontext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
        JdbcTemplate jt = (JdbcTemplate) factory.getBean("jdbcTemplate");
        RowCountCallbackHandler rcch = new RowCountCallbackHandler();
        jt.query("select * from interest", rcch);
        log.info("结果集中的列数量:" + rcch.getColumnCount());
        log.info("结果集中的行数量:" + rcch.getRowCount());
        log.info("结果集中的列名:");
       
        String[] str = rcch.getColumnNames();

        for (int i = 0, k = str.length; i < k; ++i) {
            log.info(str[i]);
        }
        List rows = jt.queryForList("select * from interest");//提取实际的结果集
        for (int i=0,k=rows.size();i<k;++i)
        {
         String tot=rows.get(i).toString();
         String[] tmp=tot.substring(1,tot.length()-1).split(",");
         log.info(tmp[0]+'/n'+tmp[1]);
        }
       
       
        //查询并返单一结果
        String name = (String) jt.queryForObject("select name from mytable", String.class);
        //查询返回结果集
        List rows = jt.queryForList("select * from mytable");
        return rows;