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

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

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

    shenang博客技術(shù)文檔


    理論不懂就實(shí)踐,實(shí)踐不會(huì)就學(xué)理論!

    posts - 35,comments - 55,trackbacks - 0
     

    整合SPingibatis
          
    學(xué)習(xí)了一段時(shí)間的Spring了,感覺(jué)對(duì)于Spring的理解還是不夠深刻,還有太多的地方需要學(xué)習(xí),因?yàn)榍岸螘r(shí)間學(xué)過(guò)ibatisstruts,在網(wǎng)上也看到很多關(guān)于三者整合的文章,下面是我自己寫(xiě)的一個(gè)關(guān)于spingibatis整合的一個(gè)案例

    對(duì)于像我一樣的新手,大家可以共同學(xué)習(xí),有錯(cuò)誤的地方請(qǐng)給予指教,謝謝!

    對(duì)于高手,請(qǐng)給予改正意見(jiàn)。

    1、建立一個(gè)WEB工程

    需要尋入的包:

    里面有部份是struts需要的包,故不需要導(dǎo)入

    2、建立表

    我用的mysql,

    共三個(gè)字段,id,name,sex

    3、建立一個(gè)model

    User.java

    package com.ctgusec.zhupan.model;

    import java.io.Serializable;

    public class User implements Serializable {
        
    // private static final long serialVersionUID = 1L;

        
    private Integer id;

        
    private String name;

        
    private Integer sex;

        
    public User() {
        }


        
    public Integer getId() {
            
    return id;
        }


        
    public void setId(Integer id) {
            
    this.id = id;
        }


        
    public String getName() {
            
    return name;
        }


        
    public void setName(String name) {
            
    this.name = name;
        }


        
    public Integer getSex() {
            
    return sex;
        }


        
    public void setSex(Integer sex) {
            
    this.sex = sex;
        }


    }
     

    4、寫(xiě)ibatis的二個(gè)配置文件SqlmapConfig.xml User.xml
    SqlmapConfig.xml

    1 <?xml version = "1.0" encoding = "UTF-8"?>  
    2  <!DOCTYPE sqlMapConfig 
    3     PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
    4     "http://www.ibatis.com/dtd/sql-map-config-2.dtd"  >  
    5  <sqlMapConfig >
    6  <sqlMap  resource  = "com/ctgusec/zhupan/maps/User.xml"/>  
    7  </sqlMapConfig>  
    8 
    9 
    User.xml
     1<?xml version = "1.0" encoding = "UTF-8"?>
     2<!DOCTYPE sqlMap 
     3    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" 
     4    "http://www.ibatis.com/dtd/sql-map-2.dtd">
     5<sqlMap namespace="User">   
     6    <typeAlias alias="user" type="com.ctgusec.zhupan.model.User"/>
     7            <insert id="insertUser" parameterClass="user">
     8        INSERT INTO t_user(id,name,sex) VALUES (#id#,#name#,#sex# )
     9    </insert>
    10    </sqlMap>
    11
    12


    可以看出比ibatis獨(dú)立配置少了很多東西,因?yàn)樵趇batis里面的連接數(shù)據(jù)庫(kù)配置,現(xiàn)在需寫(xiě)在另一個(gè)配置文件里,在下面的配置文件中將看到。

    5、寫(xiě)IUserDAO.java 和 UserDao.java
    UserDao.java
     1package com.ctgusec.zhupan.dao;
     2import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
     3import com.ctgusec.zhupan.interf.IUserDao;
     4import com.ctgusec.zhupan.model.User;
     5
     6public class UserDAO extends SqlMapClientDaoSupport implements IUserDao
     7      public void insertUser(User user) 
     8        getSqlMapClientTemplate().insert("insertUser", user); 
     9      }
       
    10    }
       
    11
    12
    IUserDAO.java
    package com.ctgusec.zhupan.interf;

    import com.ctgusec.zhupan.model.User;

    public interface IUserDao {
        
        
    public void insertUser(User user);//插入用戶

    }

    這是對(duì)插入用戶的方法的實(shí)現(xiàn),通過(guò)inserUser(User user)方法,向數(shù)據(jù)庫(kù)中插入一條數(shù)據(jù)。
    getSqlMapClientTemplate().insert("insertUser", user); 這里是使用了SPring的模版,這個(gè)方法是對(duì)ibatis里面的對(duì)數(shù)據(jù)庫(kù)操作的封裝。
    6、寫(xiě)Ibatis-Context.xml
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
     3 "http://www.springframework.org/dtd/spring-beans.dtd">
     4 
     5 <beans>  
     6     <bean id="dataSource"
     7         class="org.apache.commons.dbcp.BasicDataSource"
     8         destroy-method="close">
     9         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    10         <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
    11         <property name="username" value="root"/>
    12         <property name="password" value="200520"/>
    13     </bean>
    14     <bean id="sqlMapClient"
    15         class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    16         <property name="configLocation">
    17             <value>/com/ctgusec/zhupan/maps/SqlMapConfig.xml</value>
    18         </property>
    19     </bean>
    20 
    21     <bean id="transactionManager"
    22         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    23         <property name="dataSource">
    24             <ref local="dataSource" />
    25         </property>
    26     </bean>
    27 
    28     <bean id="userDAO" class="com.ctgusec.zhupan.dao.UserDAO">
    29         <property name="dataSource">
    30             <ref local="dataSource" />
    31         </property>
    32         <property name="sqlMapClient">
    33             <ref local="sqlMapClient" />
    34         </property>
    35     </bean>
    36 
    37     <bean id="userDAOProxy"
    38         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    39         <property name="transactionManager">
    40             <ref bean="transactionManager" />
    41         </property>
    42 
    43         <property name="target">
    44             <ref local="userDAO" />
    45         </property>
    46 
    47         <property name="transactionAttributes">
    48             <props>
    49                 <prop key="insert*">PROPAGATION_REQUIRED</prop>
    50                 <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    51             </props>
    52         </property>
    53     </bean>
    54 </beans>
    55 
    上面的代碼大家一定不陌生,這就是Spring的配置文件,這里不再多說(shuō),如果不明白,請(qǐng)查看相關(guān)書(shū)籍。
    7、寫(xiě)一個(gè)測(cè)試文件SpringTest.java
     1 package com.ctgusec.zhupan;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 import com.ctgusec.zhupan.interf.IUserDao;
     7 import com.ctgusec.zhupan.model.User;
     8 import com.opensymphony.xwork2.ActionSupport;
     9 
    10 public class SpringTest extends ActionSupport{
    11     public static void main(String[] args) {
    12         
    13         ApplicationContext context = new ClassPathXmlApplicationContext(
    14                 "Ibatis-Context.xml");
    15         IUserDao dao=(IUserDao)context.getBean("userDAOProxy");
    16         User user=new User();
    17         user.setId(123456789);
    18         user.setName("love");
    19         user.setSex(1);
    20         dao.insertUser(user);
    21     }
    22 }
    查看數(shù)據(jù)庫(kù),插入成功。

     

    通過(guò)此篇文章,我希望跟我一樣初學(xué)Spring的同志一直學(xué)習(xí),一起進(jìn)步,有什么錯(cuò)誤,請(qǐng)指正.



    posted on 2009-03-25 11:52 重慶理工小子 閱讀(593) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Spring2 、Ibaties框架 、技術(shù)整合
    主站蜘蛛池模板: 又粗又大又硬又爽的免费视频| 91精品国产免费| 亚洲国产精品无码第一区二区三区| 亚洲国产超清无码专区| 中日韩亚洲人成无码网站| 亚洲一本一道一区二区三区| 成年免费大片黄在线观看com| 精品国产污污免费网站入口在线 | 亚洲Av无码精品色午夜| 亚洲精品人成在线观看| 久久亚洲精品专区蓝色区| 免费手机在线看片| 99精品视频在线免费观看| 日本视频免费在线| 国产亚洲综合网曝门系列| 久久精品国产亚洲AV蜜臀色欲| 国产精品免费一区二区三区| 最近中文字幕无免费视频| 亚洲夜夜欢A∨一区二区三区| 亚洲一区二区三区播放在线| 国产精品69白浆在线观看免费| 亚洲国产精品成人| 亚洲成综合人影院在院播放| 亚洲欧洲免费无码| 精品亚洲视频在线| 日本XXX黄区免费看| 亚洲另类激情综合偷自拍图| 久久久久免费精品国产小说| 浮力影院第一页小视频国产在线观看免费 | 污污视频网站免费观看| 亚洲一区无码中文字幕| 日韩内射激情视频在线播放免费 | 久久久久久免费视频| 国产精品日本亚洲777| 国产成人精品久久免费动漫| 国产国拍精品亚洲AV片| 色综合久久精品亚洲国产| 成年在线观看免费人视频草莓| 国产精品日本亚洲777| 亚洲国产香蕉碰碰人人| 性感美女视频在线观看免费精品 |