shenang博客技术文档


理论不懂就实践,实践不会就学理论!

posts - 35,comments - 55,trackbacks - 0
 

整合SPingibatis
      
学习了一段时间的Spring了,感觉对于Spring的理解还是不够深刻,还有太多的地方需要学习,因为前段时间学过ibatisstruts,在网上也看到很多关于三者整合的文章,下面是我自己写的一个关于spingibatis整合的一个案例

对于像我一样的新手,大家可以共同学习,有错误的地方请给予指教,谢谢!

对于高手,请给予改正意见。

1、建立一个WEB工程

需要寻入的包:

里面有部份是struts需要的包,故不需要导入

2、建立表

我用的mysql

共三个字段,id,name,sex

3、建立一个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、写ibatis的二个配置文件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独立配置少了很多东西,因为在ibatis里面的连接数据库配置,现在需写在另一个配置文件里,在下面的配置文件中将看到。

5、写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);//插入用户

}

这是对插入用户的方法的实现,通过inserUser(User user)方法,向数据库中插入一条数据。
getSqlMapClientTemplate().insert("insertUser", user); 这里是使用了SPring的模版,这个方法是对ibatis里面的对数据库操作的封装。
6、写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的配置文件,这里不再多说,如果不明白,请查看相关书籍。
7、写一个测试文件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 }
查看数据库,插入成功。

 

通过此篇文章,我希望跟我一样初学Spring的同志一直学习,一起进步,有什么错误,请指正.



posted on 2009-03-25 11:52 重庆理工小子 阅读(588) 评论(0)  编辑  收藏 所属分类: Spring2Ibaties框架技术整合

只有注册用户登录后才能发表评论。


网站导航: