整合SPing和ibatis
學習了一段時間的Spring了,感覺對于Spring的理解還是不夠深刻,還有太多的地方需要學習,因為前段時間學過ibatis和struts,在網(wǎng)上也看到很多關(guān)于三者整合的文章,下面是我自己寫的一個關(guān)于sping和ibatis整合的一個案例
對于像我一樣的新手,大家可以共同學習,有錯誤的地方請給予指教,謝謝!
對于高手,請給予改正意見。
1、建立一個WEB工程
需要尋入的包:
里面有部份是struts需要的包,故不需要導(dǎo)入
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里面的連接數(shù)據(jù)庫配置,現(xiàn)在需寫在另一個配置文件里,在下面的配置文件中將看到。
5、寫IUserDAO.java 和 UserDao.java
UserDao.java
1
package com.ctgusec.zhupan.dao;
2
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
3
import com.ctgusec.zhupan.interf.IUserDao;
4
import com.ctgusec.zhupan.model.User;
5
6
public 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);//插入用戶

}
這是對插入用戶的方法的實現(xiàn),通過inserUser(User user)方法,向數(shù)據(jù)庫中插入一條數(shù)據(jù)。
getSqlMapClientTemplate().insert(
"insertUser", user); 這里是使用了SPring的模版,這個方法是對ibatis里面的對數(shù)據(jù)庫操作的封裝。
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的配置文件,這里不再多說,如果不明白,請查看相關(guān)書籍。
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 }
查看數(shù)據(jù)庫,插入成功。
通過此篇文章,我希望跟我一樣初學Spring的同志一直學習,一起進步,有什么錯誤,請指正.
posted on 2009-03-25 11:52
重慶理工小子 閱讀(592)
評論(0) 編輯 收藏 所屬分類:
Spring2 、
Ibaties框架 、
技術(shù)整合