<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wonderer's program

    everything will be better
    posts - 19, comments - 6, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Spring DAO入門

    Posted on 2007-07-18 14:04 wonderer 閱讀(496) 評論(0)  編輯  收藏 所屬分類: javadatabase

    寫了個Spring的DAO入門例子。

    DAO的接口

       1: package dataSourceDemo;
       2:  
       3: public interface IUserDAO {
       4:     public void insert(User user);
       5:     public User find(Integer id);
       6:  
       7: }

    DAO的實現,必須要有一個setDataSource()的方法,這樣才能出入DataSource。

       1: package dataSourceDemo;
       2:  
       3: import java.sql.*;
       4:  
       5: import javax.sql.DataSource;
       6:  
       7: public class UserDAO implements IUserDAO {
       8:  
       9:     private DataSource dataSource;
      10:  
      11:     public User find(Integer id) {
      12:         // TODO 自動生成方法存根
      13:         return null;
      14:     }
      15:  
      16:     public void insert(User user) {
      17:         // TODO 自動生成方法存根
      18:         String name = user.getName();
      19:         int age = user.getAge().intValue();
      20:         
      21:         Connection conn = null;
      22:         Statement stmt =null;
      23:         
      24:         try {
      25:             conn = dataSource.getConnection();
      26:             stmt = conn.createStatement();
      27:             String sql = "insert into user (name, age)"+"values('"+name+"',"+age+")";
      28:             stmt.execute(sql);
      29:         }catch(Exception e) {
      30:             e.printStackTrace();
      31:         } finally {
      32:             if(stmt != null) {
      33:                 try {
      34:                 stmt.close();
      35:                 }catch(Exception e) {
      36:                     e.printStackTrace();
      37:                 }
      38:             }
      39:             if(conn != null) {
      40:                 try {
      41:                     conn.close();
      42:                 } catch(Exception e) {
      43:                     e.printStackTrace();
      44:                 }
      45:             }
      46:         }
      47:     }
      48:  
      49:     public DataSource getDataSource() {
      50:         return dataSource;
      51:     }
      52:  
      53:     public void setDataSource(DataSource dataSource) {
      54:         this.dataSource = dataSource;
      55:     }
      56:  
      57: }

    USER BEAN

       1: package dataSourceDemo;
       2:  
       3: public class User {
       4:     private Integer id;
       5:     private String name;
       6:     private Integer age;
       7:     public Integer getAge() {
       8:         return age;
       9:     }
      10:     public void setAge(Integer age) {
      11:         this.age = age;
      12:     }
      13:     public Integer getId() {
      14:         return id;
      15:     }
      16:     public void setId(Integer id) {
      17:         this.id = id;
      18:     }
      19:     public String getName() {
      20:         return name;
      21:     }
      22:     public void setName(String name) {
      23:         this.name = name;
      24:     }
      25:     
      26:  
      27: }

    配置文件,可以很容易的改變dataSource的屬性,就可以輕易改變數據庫的配置:

       1: <?xml version="1.0" encoding="UTF-8"?>
       2: <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "../resources/spring-beans-2.0.dtd" >
       3: <beans>
       4:     <bean id="dataSource"
       5:         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       6:         <property name="driverClassName">
       7:             <value>com.mysql.jdbc.Driver</value>
       8:         </property>
       9:         <property name="url">
      10:             <value>jdbc:mysql://localhost:3306/test</value>
      11:         </property>
      12:         <property name="username">
      13:             <value>root</value>
      14:         </property>
      15:         <property name="password">
      16:             <value>123</value>    
      17:         </property>
      18:     </bean>
      19:     
      20:     <bean id="userDAO" class="dataSourceDemo.UserDAO">
      21:         <property name="dataSource" ref="dataSource"></property>
      22:     </bean>
      23: </beans>

    JUNIT測試類

       1: package dataSourceDemo;
       2:  
       3: import org.springframework.context.ApplicationContext;
       4: import org.springframework.context.support.ClassPathXmlApplicationContext;
       5:  
       6: import junit.framework.TestCase;
       7:  
       8: public class DataSourceTest extends TestCase {
       9:  
      10:     private ApplicationContext context;
      11:  
      12:     public void setUp() {
      13:         context = new ClassPathXmlApplicationContext(
      14:                 "dataSourceDemo/dataSource-config.xml");
      15:     }
      16:  
      17:     public void testInsert() {
      18:         User user = new User();
      19:         user.setName("老丘");
      20:         user.setAge(new Integer(21));
      21:         
      22:         IUserDAO userDAO = (IUserDAO) context.getBean("userDAO");
      23:         userDAO.insert(user);
      24:     }
      25:     
      26: }

    類的結構圖:

    image image

    主站蜘蛛池模板: 亚洲色成人WWW永久在线观看| 69av免费观看| 亚洲色无码国产精品网站可下载| 亚洲综合AV在线在线播放 | 亚洲VA中文字幕无码毛片| 成人av免费电影| 亚洲免费观看网站| 久久久久久免费一区二区三区| 一二三区免费视频| 国产亚洲美女精品久久久久| 日本亚洲色大成网站www久久 | 人妻无码一区二区三区免费| 精品无码国产污污污免费网站国产| 亚洲日韩一中文字暮| 亚洲人精品亚洲人成在线| 亚洲二区在线视频| 亚洲大片免费观看| 亚洲老熟女@TubeumTV| 亚洲精品免费视频| 亚洲色图在线观看| 亚洲成人中文字幕| 久久亚洲中文字幕精品有坂深雪| 亚洲精品无码av人在线观看| 久久亚洲欧洲国产综合| 亚洲精品无码专区久久同性男| 亚洲不卡无码av中文字幕| 少妇亚洲免费精品| 亚洲AV无码不卡在线观看下载| 国产又粗又长又硬免费视频| 国产成人免费a在线视频app| 国产成人无码a区在线观看视频免费| 日韩成人在线免费视频| 国产免费AV片无码永久免费| 免费h成人黄漫画嘿咻破解版| 亚洲国产成人久久综合区| 狠狠亚洲狠狠欧洲2019| 亚洲色精品aⅴ一区区三区| 久久国产精品亚洲综合| 亚洲精品日韩专区silk| 亚洲欧洲日韩国产一区二区三区| 亚洲精品无码久久久久秋霞|