SSI 整合 Demo
spring_struts2_ibatis整合开发Demo:
1.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 1.加载spring配置文件applicationContext.xml --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- 2.编码过滤 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 3.ActioncontextCleanUp对象对ACTION进行监、管理容器,告诉JVM某个不使用的对象需要被销毁 --> <filter> <filter-name>cleanup</filter-name> <filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp </filter-class> </filter> <filter-mapping> <filter-name>cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <!-- 定义核心filter的名字 --> <filter-name>struts2</filter-name> <!-- 定义核心filter的实现类 --> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <!-- FilterDispatcher用来初始化struts2并且处理所有的web请求 --> <filter-mapping> <filter-name>struts2</filter-name> <!--默认拦截以.action结尾的请求 --> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>/admin/add.jsp</welcome-file> </welcome-file-list> </web-app>
2.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="sqlMapClient" class="com.zxm.util.SqlMapClientFactory" factory-method="getSqlMapClient"> </bean> <bean id="adminDao" class="com.zxm.admin.dao.AdminDao"> <property name="sqlMapClient" ref="sqlMapClient"/> </bean> <!-- 配置Service --> <bean id="adminService" class="com.zxm.admin.service.AdminServiceImpl"> <property name="adminDao"> <ref local="adminDao"/> </property> </bean> <!-- 定义Struts配置 --> <bean name="admin" class="com.zxm.admin.action.AdminAction"> <property name="adminService"> <ref local="adminService"/> </property> </bean> </beans>
3.ibatis配置文件:sqlMapConfig.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/beichuang?useUnicode=true&characterEncoding=UTF-8" /> <property name="JDBC.Username" value="root" /> <property name="JDBC.Password" value="123456" /> <property name="Pool.MaximumActiveConnections" value="10" /> <property name="Pool.MaximumIdleConnections" value="5" /> <property name="Pool.MaximumCheckoutTime" value="120000" /> <property name="Pool.TimeToWait" value="500" /> <property name="Pool.PingQuery" value="select 1 from user" /> <property name="Pool.PingEnabled" value="false" /> <property name="Pool.PingConnectionsOlderThan" value="1" /> <property name="Pool.PingConnectionsNotUsedFor" value="1" /> </dataSource> </transactionManager> <sqlMap resource="com/zxm/sqlmap/ibatis_admin.xml" /> </sqlMapConfig>
4.ibatis_admin.xml:
<?xml version="1.0" encoding="GBK" standalone="no"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <sqlMap> <typeAlias alias="admin" type="com.zxm.admin.bean.Admin" /> <insert id="insertAdmin" parameterClass="admin"> <selectKey keyProperty="id" resultClass="java.lang.Integer" type="post"> SELECT LAST_INSERT_ID() </selectKey> insert into admin(name,password) values(#name#,#password#) </insert> <delete id="deleteAdmin" parameterClass="java.lang.Integer"> delete from admin where id=#id# </delete> <update id="updateAdmin" parameterClass="admin"> update admin set name=#name#,password=#password# where id=#id# </update> <select id="getAdmin" resultClass="admin"> select *from admin <dynamic prepend="WHERE"> <!-- isNotNull判断参数是否存在,Integer类型 --> <isNotNull property="id"> <isGreaterThan prepend=" and " property="id" compareValue="0"> id = #id# </isGreaterThan> </isNotNull> </dynamic> </select> </sqlMap>
5.sqlMapClientFactory.java:
package com.zxm.util; import java.io.Reader; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class SqlMapClientFactory { private static final SqlMapClient sqlMapClient; static { try { String resource = "sqlMapConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } public static SqlMapClient getSqlMapClient() { return sqlMapClient; } }
6.struts.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" extends="struts-default"> <action name="admin" class="admin"> <result name="index"> /admin/selectAll.jsp </result> <result name="edit">/admin/edit.jsp</result> </action> </package> </struts>
7.adminDao.java调用ibatis_admin.xml里面配置的:
package com.zxm.admin.dao; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; import com.zxm.admin.bean.Admin; public class AdminDao { private SqlMapClient sqlMapClient; public SqlMapClient getSqlMapClient() { return sqlMapClient; } public void setSqlMapClient(SqlMapClient sqlMapClient) { this.sqlMapClient = sqlMapClient; } public boolean insertAdmin(Admin admin)throws SQLException{ if((Integer)this.sqlMapClient.insert("insertAdmin", admin)>0){ return true; }else return false; } public boolean deletetAdmin(int id)throws SQLException{ if((Integer)this.sqlMapClient.delete("deleteAdmin", id)>0){ return true; }else return false; } public boolean updateAdmin(Admin admin)throws SQLException{ if((Integer)this.sqlMapClient.update("updateAdmin", admin)>0){ return true; }else return false; } public Admin getAdmin(Admin admin)throws SQLException{ return (Admin)this.sqlMapClient.queryForObject("getAdmin", admin); } public List<Admin> selectAllAdmin()throws SQLException{ return this.sqlMapClient.queryForList("getAdmin"); } }
8.AdminActon.java:
package com.zxm.admin.action; import java.util.List; import com.zxm.admin.bean.Admin; import com.zxm.admin.service.AdminService; public class AdminAction { private List<Admin> list; private Admin admin; private AdminService adminService; public List<Admin> getList() { return list; } public void setList(List<Admin> list) { this.list = list; } public AdminService getAdminService() { return adminService; } public void setAdminService(AdminService adminService) { this.adminService = adminService; } public Admin getAdmin() { return admin; } public void setAdmin(Admin admin) { this.admin = admin; } public String index(){ list=adminService.selectAllAdmin(); System.out.println("数据的大小"+list.size()); return "index"; } public String insert(){ adminService.insertAdmin(admin); return index(); } public String delete(){ adminService.deletetAdmin(admin.getId()); return index(); } public String update(){ adminService.updateAdmin(admin); return index(); } public String getOneAdmin(){ admin=adminService.getAdmin(admin); return "edit"; } }
1. http://www.iteye.com/topic/569770
2. http://ps329795485.iteye.com/blog/1412028
3. http://blog.csdn.net/dqsweet/article/details/7794906
4. http://zz563143188.iteye.com/blog/1473807