- 浏览: 155261 次
- 性别:
- 来自: 益阳
文章分类
- 全部博客 (98)
- 数据库 (11)
- 乱码 (1)
- java (38)
- struts2 (3)
- html (7)
- JQuery (10)
- javascript (4)
- 正则表达式 (1)
- jar异常 (1)
- IBATIS (1)
- dom4j (1)
- 那点小事 (2)
- my97 (1)
- jsp (2)
- 单元测试 (1)
- Eclipse (0)
- 错误类 (1)
- DB2 (1)
- 我们一家 (0)
- software (0)
- servicemix启动出错 (1)
- mongodb (1)
- mysql (1)
- shell (1)
- webservice (1)
- 架构 (3)
- 软件 (1)
- maven (1)
- spring (1)
- 工具 (1)
- 环境搭建 (1)
- js (1)
- robot-framework (1)
最新评论
-
qzg196:
楼主啊 我用的4.0的服务器版。为什么配置好后 地址已经跳转 ...
CAS-3.2.1自定义客户端登录界面----完整篇 -
月色无夜:
楼主你附带在项目中的证书导入密码是什么?
CAS-3.2.1自定义客户端登录界面----完整篇 -
zws_miss:
AuthenticationViaFormAction 这 ...
CAS-3.2.1自定义客户端登录界面----完整篇 -
hotapple:
...
tomcat下摘要认证(数据库配置用户角色)+java代码模拟请求 -
cherishit:
https的安装配置在哪里呵? 求拔刀相助
linux下:apache2.2.27 + tomcat7.0 + openssl-1.0.1g(集群+session共享|摘要认证|HTTPS)
今天开始使用JAVA WEB工程集成Spring+IBatis+CXF(restful web service),我尽量把一些细节讲清楚,让自己和你们一起成长~
1.首先准备一个动态WEB工程,我把他取名为tnserver,我准备首先完成Spring与IBatis的集成,最后集成CXF,并完成一个资源的CURD操作。
2.准备Spring所需要的jar包,jar为:
3.准备CXF RS所需要的jar包,jar为:
4.准备Ibatis所需要的jar包,jar为:
5.其它jar:
6.完成上述jar包的收集一般会占用大量时间,我希望以后资源都能共享,而且是方便免费的,如果这样相信中国软件行业发展会更好(好的分享往往会让我们成长),附件中我会提供除Spring之外的jar下载。如果你需要spring的jar,可以去spring官网。
7.首先配置web.xml,其中CXFServlet为CXF初始化配置(这里我将所有的请求都交给CXF处理“/*”):
8.接下来创建spring的配置文件,这里我把spring的配置文件分成了两份,前缀都一样(为web.xml中applicationContext*.xml),分别是applicationContext-core.xml(存放数据源、注解及扫描、Ibatis配置、BaseDao配置)、applicationContext-server.xml用来发布restful服务的。
9.applicationContext-core.xml配置如下:
10.applicationContext-server.xml配置如下:
11.spring配置到此为止,后续我都是采用的注解进行注入的,现在来弄Ibatis的配置SqlMapConfig.xml:
12.如果你感兴趣,可以继续配置log4j的配置文件log4j.properties:
#--------------------------------
#log4j.rootLogger=DEBUG, stdout, fileout
log4j.rootLogger=INFO, stdout, fileout
#log4j.logger.test=info
#log4j.logger.org.apache.jasper = DEBUG
#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG
log4j.logger.com.fiscal = INFO
log4j.logger.com.system = INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=${catalina.home}/logs/tnserver.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
13.以上基本就已经完成一个spring+ibatis+CXF RS集成,下面我开始输出一个实例。
14.创建一个java类:HealthRestful.java:
15.service层代码HealthService.java:
16.这里列出我一直用来访问数据的接口与默认实现类,接口类BatisBaseDao.java:
实现类DefaultBaseDaoImpl.java:
20.如果你想要什么jar包或是哪里有什么不明白的请发我邮箱lishizenglw@126.com,我尽量帮助你:)
1.首先准备一个动态WEB工程,我把他取名为tnserver,我准备首先完成Spring与IBatis的集成,最后集成CXF,并完成一个资源的CURD操作。
2.准备Spring所需要的jar包,jar为:
- org.springframework.aop-3.1.2.RELEASE.jar
- org.springframework.asm-3.1.2.RELEASE.jar
- org.springframework.aspects-3.1.2.RELEASE.jar
- org.springframework.beans-3.1.2.RELEASE.jar
- org.springframework.context-3.1.2.RELEASE.jar
- org.springframework.context.support-3.1.2.RELEASE.jar
- org.springframework.core-3.1.2.RELEASE.jar
- org.springframework.expression-3.1.2.RELEASE.jar
- org.springframework.instrument-3.1.2.RELEASE.jar
- org.springframework.instrument.tomcat-3.1.2.RELEASE.jar
- org.springframework.jdbc-3.1.2.RELEASE.jar
- org.springframework.orm-3.1.2.RELEASE.jar
- org.springframework.test-3.1.2.RELEASE.jar
- org.springframework.transaction-3.1.2.RELEASE.jar
- org.springframework.web-3.1.2.RELEASE.jar
3.准备CXF RS所需要的jar包,jar为:
- cxf-2.6.13.jar
- jettison-1.3.3.jar
- jsr311-api-1.1.2.r612.jar
- neethi-3.0.3.jar
- wsdl4j-1.6.3.jar
- xmlschema-core-2.0.3.jar
- ezmorph-1.0.4.jar
- slf4j-log4j12-1.7.6.jar
- slf4j-api-1.7.6.jar
4.准备Ibatis所需要的jar包,jar为:
- ibatis-2.3.0.677.jar
5.其它jar:
- antlr-2.7.7.jar
- aopalliance-1.0.jar
- asm-3.3.jar
- mysql-connector-java-5.1.7-bin.jar mysql数据库驱动jar
- c3p0-0.9.1.2.jar 数据库数据源
- commons-beanutils-1.8.0.jar apache公用jar
- commons-codec-1.4.jar apache公用jar
- commons-collections-3.2.jar apache公用jar
- commons-io-2.0.1.jar apache公用jar
- commons-lang-2.4.jar apache公用jar
- commons-lang3-3.1.jar apache公用jar
- commons-logging-1.1.1.jar apache公用jar
6.完成上述jar包的收集一般会占用大量时间,我希望以后资源都能共享,而且是方便免费的,如果这样相信中国软件行业发展会更好(好的分享往往会让我们成长),附件中我会提供除Spring之外的jar下载。如果你需要spring的jar,可以去spring官网。
7.首先配置web.xml,其中CXFServlet为CXF初始化配置(这里我将所有的请求都交给CXF处理“/*”):
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>tnserver</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
8.接下来创建spring的配置文件,这里我把spring的配置文件分成了两份,前缀都一样(为web.xml中applicationContext*.xml),分别是applicationContext-core.xml(存放数据源、注解及扫描、Ibatis配置、BaseDao配置)、applicationContext-server.xml用来发布restful服务的。
9.applicationContext-core.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"> <!-- 开启注解处理器 --> <context:annotation-config/> <!-- 数据源配置 --> <context:property-placeholder location="classpath:conf/jdbc.properties" /> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.userName}" /> <property name="password" value="${jdbc.password}" /> <property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}" /> <property name="checkoutTimeout" value="${jdbc.checkoutTimeout}" /> <property name="initialPoolSize" value="${jdbc.initialPoolSize}" /> <property name="minPoolSize" value="${jdbc.minPoolSize}" /> <property name="maxPoolSize" value="${jdbc.maxPoolSize}" /> <property name="testConnectionOnCheckin" value="${c3p0.testConnectionOnCheckin}" /> <property name="testConnectionOnCheckout" value="${c3p0.testConnectionOnCheckout}" /> <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" /> <property name="automaticTestTable" value="${c3p0.automaticTestTable}" /> </bean> <!-- ibatis2.x 配置 SqlMapClient--> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:SqlMapConfig.xml"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> <bean id="defaultBaseDao" class="cn.thinknet.database.ibatis.DefaultBaseDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient" /> </bean> <!-- 扫描并自动装配 --> <context:component-scan base-package="cn.thinknet.common.service" /> <tx:annotation-driven/> </beans>
10.applicationContext-server.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:cxf="http://cxf.apache.org/core" xmlns:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxrs:server id="healthRestful" address="/health"> <jaxrs:serviceBeans> <ref bean="healthRestfulBean" /> </jaxrs:serviceBeans> </jaxrs:server> <bean id="healthRestfulBean" class="cn.tn.restful.third.health.HealthRestful"></bean>
11.spring配置到此为止,后续我都是采用的注解进行注入的,现在来弄Ibatis的配置SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <!-- <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> --> <!-- this put xxxx_sqlMap.xml files --> sqlMap resource="conf/mappings/health_sqlMap.xml" /> </sqlMapConfig>
12.如果你感兴趣,可以继续配置log4j的配置文件log4j.properties:
#--------------------------------
#log4j.rootLogger=DEBUG, stdout, fileout
log4j.rootLogger=INFO, stdout, fileout
#log4j.logger.test=info
#log4j.logger.org.apache.jasper = DEBUG
#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG
log4j.logger.com.fiscal = INFO
log4j.logger.com.system = INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=${catalina.home}/logs/tnserver.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n
13.以上基本就已经完成一个spring+ibatis+CXF RS集成,下面我开始输出一个实例。
14.创建一个java类:HealthRestful.java:
package cn.tn.restful.third.health; import java.util.Map; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.QueryParam; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import cn.thinknet.common.service.common.CommonService; import cn.thinknet.common.service.third.health.HealthService; import cn.thinknet.utils.exception.AKBaseException; import cn.thinknet.utils.others.AKJsonValues; /** * 第三方健康接口 ,用于存储数据和提取数据 * @author *** * @date 2014/05/21 */ public class HealthRestful { @Autowired private HealthService healthService; @Autowired private CommonService commonService; /** * 保存健康记录 * @param data 第三方数据 * @return String */ @POST public String saveHealthData(String data) { boolean flag = true; try { JSONObject jo = JSONObject.fromObject(data); String deviceId = jo.get("deviceId").toString(); // 校验设备ID是否正确 flag = commonService.validateDeviceId(deviceId); if (flag) { Object obj = jo.get("data"); Map<String,String> map = commonService.getUserAndCardRelation(); // 保存数据 healthService.addHealth(deviceId, obj,map); } } catch (AKBaseException akbe) { akbe.writeToLogger(); flag = false; } if (flag) { // 返回成功 return AKJsonValues.getStatusSuccess().toString(); } else { return AKJsonValues.getStatusFailed().toString(); } } /** * 查询门禁信息 * @param userName 用户名 * @param examProject 体检项目 * @param page 当前页码 * @return 门禁信息 json数组 */ @GET public String queryDoor(@QueryParam("userName") String userName, @QueryParam("examProject") String examProject, @QueryParam("page") String page) { Boolean flag = true; JSONArray ja = new JSONArray(); JSONObject jo = new JSONObject(); try { int pageIndex = NumberUtils.toInt(page); // 执行方法 ja = healthService.queryHealth(userName, examProject, pageIndex); } catch (AKBaseException akbe) { akbe.writeToLogger(); flag = false; } if (flag) { // 成功 jo.put(AKJsonValues.STATUS_KEY, AKJsonValues.STATUS_SUCCESS); jo.put("list", ja); } else { // 失败 jo.put(AKJsonValues.STATUS_KEY, AKJsonValues.STATUS_FAILED); jo.put("list", ""); } return jo.toString(); } }
15.service层代码HealthService.java:
package cn.thinknet.common.service.third.health; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.thinknet.database.ibatis.BatisBaseDao; import cn.thinknet.utils.date.AKDateUtil; import cn.thinknet.utils.exception.AKBaseException; import cn.thinknet.utils.others.AKPagination; import cn.thinknet.utils.vo.third.health.HealthVo; /** * 健康业务类 * * @date 2014/05/21 * * @author **** */ @Service("healthService") public class HealthService { @Autowired private BatisBaseDao baseDao; /** * 保存第三方健康数据 * * @param deviceId 设备号 * @param data 第三方数据 * @throws AKBaseException */ public void addHealth(String deviceId, Object data, Map<String, String> map) throws AKBaseException { if (MapUtils.isNotEmpty(map)) { return; } try { // 将第三方数据转换成Json数组 JSONArray ja = JSONArray.fromObject(data); JSONObject jo = null; HealthVo hv = null; for (Object obj : ja) { // 获得JSON对象 jo = JSONObject.fromObject(obj); hv = new HealthVo(); hv.setCardNo(jo.getString("cardNo")); // 根据卡号找到用户名 hv.setUserName(map.get(jo.getString("cardNo"))); hv.setDeviceId(deviceId); hv.setExamProject(jo.getString("examProject")); hv.setExamValue(jo.getString("examValue")); hv.setExamUnit(jo.getString("examUnit")); hv.setExamStatus(jo.getInt("examStatus")); hv.setExamTime(AKDateUtil.stringConvertDate( jo.getString("examTime"), AKDateUtil.DATEFORMAT002)); // 存储到数据库中 baseDao.add("third_health_insert", hv); } } catch (AKBaseException ake) { throw new AKBaseException(ake); } } /** * 查询第三方健康信息 * * @param userName 用户名 * @param examProject 体检项目 * @param 页码 * @return JSONArray * @throws AKBaseException */ @SuppressWarnings("unchecked") public JSONArray queryHealth(String userName, String examProject, int pageIndex) throws AKBaseException { List<HealthVo> hList = null; JSONObject jo = null; JSONArray ja = new JSONArray(); try { Map<String, Object> params = new HashMap<String, Object>(); pageIndex = pageIndex == 0 ? 1 : pageIndex; params.put(AKPagination.MYSQL_PAGE_ROW_NUMBER_KEY, (pageIndex - 1) * AKPagination.MYSQL_PAGE_SIZE_KEY); params.put(AKPagination.MYSQL_PAGE_ROW_SIZE_KEY, AKPagination.MYSQL_PAGE_SIZE_KEY); params.put("userName", userName); params.put("examProject", examProject); hList = (List<HealthVo>) baseDao.queryPagination( "third_health_select", params); // 将查询出来的数据转换成JSON数组 if (CollectionUtils.isNotEmpty(hList)) { for (HealthVo hv : hList) { jo = new JSONObject(); jo.put("cardNo", hv.getCardNo()); jo.put("examProject", hv.getExamProject()); jo.put("examValue", hv.getExamValue()); jo.put("examUnit", hv.getExamUnit()); jo.put("examStatus", hv.getExamStatus()); jo.put("examTime", AKDateUtil.dateConvetStringByFormat( hv.getExamTime(), AKDateUtil.DATEFORMAT002)); ja.add(jo); } } } catch (AKBaseException ake) { throw new AKBaseException(ake); } return ja; } }
16.这里列出我一直用来访问数据的接口与默认实现类,接口类BatisBaseDao.java:
package cn.thinknet.database.ibatis; import java.io.Serializable; import java.util.List; import cn.thinknet.utils.exception.AKSQLException; /** * 数据库操作父接口 * * @author 李时增 * * CreateTime 2013-03-10 */ public interface BatisBaseDao extends Serializable { /** * 添加对象 * * @param sqlId IBatis SQL Id * @param obj 需要添加的对象 * * @throws AKSQLException SQL异常 */ void add(String sqlId, Object obj) throws AKSQLException; /** * 删除对象 * * @param sqlId IBatis SQL Id * @param params 删除参数 * * @throws AKSQLException SQL异常 */ void delete(String sqlId, Object params) throws AKSQLException; /** * 根据条件查询数据,此方法不分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ List<?> query(String sqlId, Object params) throws AKSQLException; /** * 根据条件查询数据,用于分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ List<?> queryPagination(String sqlId, Object params) throws AKSQLException; /** * 根据条件查询数据记录数,用于分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ int queryCount(String sqlId, Object params) throws AKSQLException; /** * 查询一条记录 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ Object queryOneModel(String sqlId, Object params) throws AKSQLException; /** * 查询所有数据 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ List<?> queryAll(String sqlId) throws AKSQLException; /** * 更新对象 * * @param sqlId IBatis SQL Id * @param updateObj 需要更新的对象 * * @throws AKSQLException SQL异常 */ void update(String sqlId, Object updateObj) throws AKSQLException; }
实现类DefaultBaseDaoImpl.java:
package cn.thinknet.database.ibatis; import java.util.List; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import cn.thinknet.utils.exception.AKSQLException; /** * 数据库操作父类 * * @author lishizeng * * CreateTime 2013-03-10 */ public class DefaultBaseDaoImpl extends SqlMapClientDaoSupport implements BatisBaseDao { private static final long serialVersionUID = -2493529163246756507L; /** * 添加对象 * * @param sqlId IBatis SQL Id * @param obj 需要添加的对象 * * @throws AKSQLException SQL异常 */ @Override public void add(String sqlId, Object obj) throws AKSQLException { try { this.getSqlMapClientTemplate().insert(sqlId, obj); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } } /** * 删除对象 * * @param sqlId IBatis SQL Id * @param params 删除参数 * * @throws AKSQLException SQL异常 */ @Override public void delete(String sqlId, Object params) throws AKSQLException { try { this.getSqlMapClientTemplate().delete(sqlId, params); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } } /** * 根据条件查询数据,此方法不分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ @Override public List<?> query(String sqlId, Object params) throws AKSQLException { List<?> list = null; try { list = this.getSqlMapClientTemplate().queryForList(sqlId, params); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } return list; } /** * 查询所有数据 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ @Override public List<?> queryAll(String sqlId) throws AKSQLException { List<?> list = null; try { list = this.getSqlMapClientTemplate().queryForList(sqlId); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } return list; } /** * 更新对象 * * @param sqlId IBatis SQL Id * @param updateObj 需要更新的对象 * * @throws AKSQLException SQL异常 */ @Override public void update(String sqlId, Object updateObj) throws AKSQLException { try { this.getSqlMapClientTemplate().update(sqlId, updateObj); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } } /** * 根据条件查询数据,用于分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ @Override public List<?> queryPagination(String sqlId, Object params) throws AKSQLException { List<?> list = null; try { list = this.getSqlMapClientTemplate().queryForList(sqlId, params); } catch (Exception sqle) { throw new AKSQLException(sqle.getMessage(), sqle.getCause()); } return list; } /** * 根据条件查询数据记录数,用于分页 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ @Override public int queryCount(String sqlId, Object params) throws AKSQLException { int count = 0; try { count = Integer.valueOf(this.getSqlMapClientTemplate() .queryForObject(sqlId, params).toString()); } catch (NumberFormatException e) { count = 0; } catch (Exception e) { throw new AKSQLException(e.getMessage(), e.getCause()); } return count; } /** * 查询一条记录 * * @param sqlId IBatis SQL Id * @param params 查询参数 * * @throws AKSQLException SQL异常 * * @return List<Object> 查询结果集合 */ @Override public Object queryOneModel(String sqlId, Object params) throws AKSQLException { try { return this.getSqlMapClientTemplate().queryForObject(sqlId, params); } catch (Exception e) { throw new AKSQLException(e.getMessage(), e.getCause()); } } }
20.如果你想要什么jar包或是哪里有什么不明白的请发我邮箱lishizenglw@126.com,我尽量帮助你:)
发表评论
-
shiro + cas sso实现客户端自定义登录界面完整实现
2014-08-19 17:38 0前言:研究CAS SSO已经一个月了,说熟悉不是,说不熟悉也不 ... -
CAS-3.2.1客户端登陆页面存储到服务端----解决方案
2014-08-02 17:38 0上一篇介绍:客户端登录页面自定义([url] http://l ... -
CAS-3.2.1自定义客户端登录界面----完整篇
2014-08-01 15:06 7023前言:在已有的CAS SSO架 ... -
linux下:apache2.2.27 + tomcat7.0 + openssl-1.0.1g(集群+session共享|摘要认证|HTTPS)
2014-06-04 15:24 4120前序:网上有很多资料都介绍了apache httpd + to ...
相关推荐
ibatis+spring+cxf+mysql搭建webservice的客户端,文章地址在http://blog.csdn.net/cenyi2013/article/details/17315755. 服务端源码的下载地址在http://download.csdn.net/detail/cenyi2012/6712729
此项目继承了Spring Struts2 Ibatis CXF,项目里面含有数据执行文件!具体请参见项目的readme.txt文件,里面详细描述需要对应框架支持需要的jar包。请注意,如果选取的版本不一致,所需要的jar可能不一样。
本项目利用ibatis、spring、cxf和mysql这四个关键技术,搭建了一个名为myWebservice的服务端,旨在提供灵活的数据交互和强大的服务功能。以下是对这些技术及其在项目中应用的详细解释: 1. **iBatis**:iBatis是一...
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
标题 "spring2.5+ibatis3+web service cxf 例子MyEclipse工程" 提供了一个关于如何在MyEclipse环境中集成并使用Spring 2.5、iBatis 3和CXF Web服务的实例。这个项目组合是Java企业级开发中常见的技术栈,下面将详细...
本教程将详细介绍如何使用CXF和Spring框架搭建一个Web服务器,并结合iBatis作为数据库访问层,以及JSON作为后台与前端页面的数据交换格式。 **一、CXF框架** CXF是一个开源的服务框架,它允许开发人员创建和部署...
【标题】"cxf, ibatis框架集合"指的是在软件开发中常用的两个Java技术框架——CXF和iBATIS的集合。这些框架是开发者必备的工具,能够极大地提高开发效率和代码质量。 CXF(Continuus eXtension for F/OSS)是一个...
描述中提到的"还有很多常用的包"表明这个集成包不仅仅是Spring、Struts和iBATIS的基础组件,还包含了其他辅助库,如Groovy、CXF、Docx4j、Guava等。这些库在不同的场景下提供额外的功能支持。 1. Groovy-all-2.3.6....
1.简单的ibatis多表级联 2.基于cxf的restful接口开发,包括文件上传(文档,图片等)接口 3.redis缓存服务,通过spring的aop来控制 4.file表太大,我给清空了,测试的是注意报错 5.本人测试通过,有问题可交流
总之,SpringCxfRestDemo 是一个很好的学习资源,可以帮助开发者深入了解如何在 Java 环境中使用 CXF、Spring 和 IBatis 构建 RESTful 服务。通过研究这个项目的源代码,你可以提升你的 Web 服务开发技能,为未来的...
2. **框架技术**:熟悉SSH(Struts2 + Spring + Hibernate)和SSI(Struts2 + Spring + Ibatis)等开源框架,这些框架在企业级Java应用开发中非常常见,用于构建高效、可维护的Web应用程序。 3. **开发工具**:熟练...
3.3 **底层开发框架**:Java服务端开发推荐使用struts2 + spring3+ ibatis(mybatis),前台WEB开发框架建议使用JS框架如jQuery,以提高开发效率和兼容性。 综上所述,大数据功能模块概要设计是一个综合性的系统工程...
它利用了 Ibatis 和 Spring 的优势,形成了一个迷你容器,方便了数据库访问。 Yakoliv 框架由通用 DAO 工件和 GUI 程序组成,可帮助开发人员: - 生成数据库模式并启用序列管理 - 从类型化数据生成 java 类 - 使用 ...
它在Ibatis和Spring上发挥了优势,并与之形成了一个微型容器,并简化了数据库访问。 Yakoliv Framework由通用DAO工件和GUI程序组成,可帮助开发人员:-生成数据库模式并启用序列管理-从键入的数据生成Java类-使用...
《jeefuseMDA用户开发手册1》详细阐述了构建高效、可扩展的企业级应用的开发框架和技术选型。在本文中,我们将深入探讨其中的关键技术组件及其在实际开发中的应用。 1. DAO层(Data Access Object): Hibernate3 ...
SSHI通常指代Spring、Struts、Hibernate、Ibatis这四大技术栈,它们构成了平台的底层技术框架。本文将深入探讨这一技术方案的关键特点及其应用场景。 #### 技术栈概览 - **J2EE平台**:作为终极解决方案,此平台...