• jdbcTemplate


    先看applicationContext.xml配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
        <bean id="springDSN"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName"
                value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
            </property>
            <property name="url"
                value="jdbc:microsoft:sqlserver://localhost:1433;databasename=bbs">
            </property>
            <property name="username" value="sa"></property>
            <property name="password" value="sa"></property>
        </bean>
    
        <bean id="jdbcTemplate"
            class="org.springframework.jdbc.core.JdbcTemplate" abstract="false"
            lazy-init="false" autowire="default" dependency-check="default">
            <property name="dataSource">
                <ref bean="springDSN" />
            </property>
        </bean>
    </beans>

    在看SpringUtil类 

    package com.r.dao;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    
    public final class SpringUtil {
    
        private static ApplicationContext  ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        
        public static Object getBean(String beanName){
             return ctx.getBean(beanName);
        }    
    }

    最后看DAO:

    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import com.r.vo.Book;
    
    public class BookDao {
    
        private JdbcTemplate jdbcT = (JdbcTemplate) SpringUtil
                .getBean("jdbcTemplate");
    
        public List findALL() {
            String sql = "select * from BookInfo";
            return jdbcT.queryForList(sql);        
        }
    
        public List<Book> findALLBooks() {
            List<Book> books = new ArrayList<Book>();;
            String sql = "select * from BookInfo";
            List list = jdbcT.queryForList(sql); 
            Iterator iterator = list.iterator();
            Book book = null;
            while (iterator.hasNext()) {
                Map map4book = (Map) iterator.next();
                book = new Book();
                book.setBid((Integer) map4book.get("bid"));
                book.setBookName((String)map4book.get("bookName"));
                book.setBookType((String)map4book.get("bookType"));        
                book.setBookPic(((BigDecimal)map4book.get("bookPic")).doubleValue() );            
                book.setCount((Integer) map4book.get("count"));
                books.add(book);
            }
            return books;
        }    
        public int delete(int bid){
            String sql = "delete from BookInfo where bid =?";
            return jdbcT.update(sql, new Object[]{bid});
        }     
        public static void main(String[] args) {        
            List<Book> books = new BookDao().findALLBooks();;
            for(Book book:books){
                System.out.println(book.getBid()+","+book.getBookName()+","+book.getBookType());
            }
        }
    }

      细心你,会发现JdbcTemplate的实例中有一系列的方法如:queryForXXX,update,delete大大简化了JDBC操作。

    当然,还可以再进一步的优化一下,就是通过依赖注入,直接把jdbcTemplate注入到dao类的jdbcT字段。

    先看新的applicationContext.xml配置文件:  

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
        <bean id="springDSN"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName"
                value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
            </property>
            <property name="url"
                value="jdbc:microsoft:sqlserver://localhost:1433;databasename=bbs">
            </property>
            <property name="username" value="sa"></property>
            <property name="password" value="sa"></property>
        </bean>
    
        <bean id="jdbcTemplate"
            class="org.springframework.jdbc.core.JdbcTemplate" abstract="false"
            lazy-init="false" autowire="default" dependency-check="default">
            <property name="dataSource">
                <ref bean="springDSN" />
            </property>
        </bean>
    
        <bean id="bookDao" class="com.yy.struts.dao.BookDao">
           <property name="jdbcT">
              <ref bean="jdbcTemplate" />
           </property>
        </bean>
    </beans>

    那么新的DAO类:

    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import com.r.vo.Book;
    
    public class BookDao {
    
        private JdbcTemplate jdbcT;
    
        public List findALL() {
            String sql = "select * from BookInfo";
            return jdbcT.queryForList(sql);        
        }
    
        public List<Book> findALLBooks() {
            List<Book> books = new ArrayList<Book>();;
            String sql = "select * from BookInfo";
            List list = jdbcT.queryForList(sql); 
            Iterator iterator = list.iterator();
            Book book = null;
            while (iterator.hasNext()) {
                Map map4book = (Map) iterator.next();
                book = new Book();
                book.setBid((Integer) map4book.get("bid"));
                book.setBookName((String)map4book.get("bookName"));
                book.setBookType((String)map4book.get("bookType"));        
                book.setBookPic(((BigDecimal)map4book.get("bookPic")).doubleValue() );            
                book.setCount((Integer) map4book.get("count"));
                books.add(book);
            }
            return books;
        }    
        public int delete(int bid){
            String sql = "delete from BookInfo where bid =?";
            return jdbcT.update(sql, new Object[]{bid});
        }     
        public static void main(String[] args) {        
            List<Book> books = new BookDao().findALLBooks();;
            for(Book book:books){
                System.out.println(book.getBid()+","+book.getBookName()+","+book.getBookType());
            }
        }
    }
  • 相关阅读:
    WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )
    TCP 流模式与UDP数据报模式(转)
    hibernate 检索方式
    【UVA】1449-Dominating Patterns(AC自己主动机)
    软件项目工作流程图
    iOS7 UIKit动力学-碰撞特性UICollisionBehavior 下
    东莞无人工厂变成现实,中国无人工厂将非常快普及,保住世界工厂地位
    小米手机与魅族的PK战结果 说明了什么
    python Debug 单步调试
    合并两个排序的单链表
  • 原文地址:https://www.cnblogs.com/cw172/p/11789962.html
Copyright © 2020-2023  润新知