<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

    主站蜘蛛池模板: 小草在线看片免费人成视久网| 性色av极品无码专区亚洲| 国产免费MV大全视频网站| 无码不卡亚洲成?人片| 老外毛片免费视频播放| 亚洲AⅤ视频一区二区三区| 色婷婷综合缴情综免费观看| 亚洲国产精品毛片av不卡在线| 春意影院午夜爽爽爽免费| 国产亚洲精品AA片在线观看不加载| 人禽伦免费交视频播放| 亚洲精品国偷自产在线| 99re免费视频| 亚洲首页国产精品丝袜| 免费看的黄色大片| MM1313亚洲国产精品| 国产成人综合亚洲AV第一页| 免费观看男人吊女人视频| 亚洲白嫩在线观看| 日韩中文无码有码免费视频| 日韩精品无码永久免费网站| 久久亚洲精品视频| 国产成人精品免费视频大全麻豆| 亚洲一卡一卡二新区无人区| 国产成人精品免费视频大全五级| 亚洲精品偷拍视频免费观看| 亚洲AV无码国产在丝袜线观看| 美女网站免费福利视频| 精品一区二区三区无码免费直播| 亚洲AV无码一区二区二三区入口 | 久久国产乱子伦精品免费强| 久久精品国产亚洲AV麻豆网站| 国产卡一卡二卡三免费入口| 美女黄色毛片免费看| 亚洲AV区无码字幕中文色| 成人爽A毛片免费看| 在线免费观看伊人三级电影| 亚洲日本国产综合高清| 亚洲日韩小电影在线观看| 国产成人免费午夜在线观看| 成人午夜影视全部免费看|