整合SPing和ibatis
学习了一段时间的Spring了,感觉对于Spring的理解还是不够深刻,还有太多的地方需要学习,因为前段时间学过ibatis和struts,在网上也看到很多关于三者整合的文章,下面是我自己写的一个关于sping和ibatis整合的一个案例
对于像我一样的新手,大家可以共同学习,有错误的地方请给予指教,谢谢!
对于高手,请给予改正意见。
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) 编辑 收藏 所属分类:
Spring2 、
Ibaties框架 、
技术整合