- 浏览: 151468 次
- 性别:
- 来自: 益阳
文章分类
- 全部博客 (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 6880前言:在已有的CAS SSO架 ... -
linux下:apache2.2.27 + tomcat7.0 + openssl-1.0.1g(集群+session共享|摘要认证|HTTPS)
2014-06-04 15:24 4063前序:网上有很多资料都介绍了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搭建webservice的服务端,文章地址在http://blog.csdn.net/cenyi2013/article/details/17315755
CXF环境配置 - jackymin CXF与Spring的集成 log4j的配置使用 Spring XML配置十二个最佳实践WebService开发实例 (Xfire+Spring+Hibernate)
LIB包 博文链接:https://atgoingguoat.iteye.com/blog/789246
使用的是CXF+Spring搭建,后台DB层使用ibatis ,数据库使用Mysql 5.5,后台与页面传输使用的是Json数据格式.
1.简单的ibatis多表级联 2.基于cxf的restful接口开发,包括文件上传(文档,图片等)接口 3.redis缓存服务,通过spring的aop来控制 4.file表太大,我给清空了,测试的是注意报错 5.本人测试通过,有问题可交流
SpringCxfRestDemo 这将包含使用 Apache CXF 和 Spring 以及 IBatis 的 Restful 服务的演示项目。
它利用了 Ibatis 和 Spring 的优势,形成了一个迷你容器,方便了数据库访问。 Yakoliv 框架由通用 DAO 工件和 GUI 程序组成,可帮助开发人员: - 生成数据库模式并启用序列管理 - 从类型化数据生成 java 类 - 使用 ...
它在Ibatis和Spring上发挥了优势,并与之形成了一个微型容器,并简化了数据库访问。 Yakoliv Framework由通用DAO工件和GUI程序组成,可帮助开发人员:-生成数据库模式并启用序列管理-从键入的数据生成Java类-使用...
数据访问层采用Hibernate 结合Ibatis,整合这两种Orm框架的优点,高效稳定 安全控制框架采用成熟稳定的Spring Security 3 前台基于Js、Jquery开源组件、josn、Ajax、Dhtml等技术 采用标准的J2EE规范,支持全部流行的...
后端技术:iBatis,Hibernate,JPA,JPA2,springframework。 REST:JEE球衣,CXF,springMVC。 前端:Openxava,Grails,Play。 方法:FitNesse。 在孵化器中:vaadin,jsf-primefaces,jooq,rails。