public void getProcedureForExternalCallToComplete() {
final String procedure = "{CALL ExternalCallToComplete()}";
getJdbcTemplate().execute(new Dispose(procedure));
}
public class Dispose implements ConnectionCallback {
// 要执行的存储过程
private String call;
// 构造函数 接收要执行的存储过程
public Dispose(String call) {
this.call = call;
}
@SuppressWarnings("unchecked")
public Object doInConnection(Connection conn) throws SQLException,
DataAccessException {
// 生成执行存储过程类
CallableStatement cs = conn.prepareCall(call);
// 执行存储过程
/* 如何要使查询存储过程中的值存入一个集合,执行下面 */
// ResultSet rs = cs.executeQuery();
// // 定义容器存数据
// List list = new ArrayList();
// // 遍历所有数据
// while (rs.next()) {
// // 定义MAP 存储名称与值的集合
// Map map = new HashMap();
// // 把所有列名与值的集合存入MAP中
// for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
// map.put(rs.getMetaData().getColumnName(i), rs.getObject(i));
// }
// list.add(map);
// }
// return list;
return null;
}
}
查询时在查询方法中调用getProcedureForExternalCallToComplete()方法.如下
@SuppressWarnings("unchecked")
public List<ExternalCallToComplete> getExternalCallToComplete(int toPage,
int pageSize, String surveyName) {
//调用存储过程的方法
getProcedureForExternalCallToComplete();
String sql1 = "SELECT a,b,c,d,e,f,g,h FROM temp2 where 1 = 1 ";
String sql2 = " UNION ALL SELECT '合计',SUM(b),SUM(c),'',SUM(d),'',SUM(g),'' FROM temp2 where 1 = 1 ";
Object[] params = new Object[2];
int index = 0;
if (!"".equals(surveyName)) {
sql1 += " and a = ? ";
params[index] = surveyName;
index++;
}
if (!"".equals(surveyName)) {
sql2 += " and a = ? ";
params[index] = surveyName;
index++;
}
Object[] paramsEnd = new Object[index];
System.arraycopy(params, 0, paramsEnd, 0, index);
int start = MysqlPaginationUtils.getStart(toPage, pageSize);
String sql = sql1 + sql2;
sql = MysqlPaginationUtils.paginationSQLForMySQL(sql, start, pageSize);
return getJdbcTemplate().query(sql, paramsEnd,
new ExternalCallToCompleteMapper());
}
static class ExternalCallToCompleteMapper implements RowMapper {
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
String surveyName = WebUtils.nullToEmpty(rs.getString(1));
String totalSurvey = WebUtils.nullToEmpty(rs.getString(2));
String totalSurveySuccess = WebUtils.nullToEmpty(rs.getString(3));
String successRate = WebUtils.nullToEmpty(rs.getString(4));
String endSurvey = WebUtils.nullToEmpty(rs.getString(5));
String endSurveyRate = WebUtils.nullToEmpty(rs.getString(6));
String cancelSurvey = WebUtils.nullToEmpty(rs.getString(7));
String cancelSurveyRate = WebUtils.nullToEmpty(rs.getString(8));
return new ExternalCallToComplete(surveyName, totalSurvey,
totalSurveySuccess, successRate, endSurvey, endSurveyRate,
cancelSurvey, cancelSurveyRate);
}
}
分享到:
相关推荐
在开发Web应用时,我们经常...以上就是基于"Maven+SpringMVC+Spring+Mybatis"的图片上传、本地存储、显示及调用存储过程的相关知识点,这些内容构成了一个完整的Web应用功能模块,对于开发者来说是非常实用的技术实践。
这里,我们将使用MyBatis的SqlSession对象,通过Mapper接口来调用存储过程。 1. 配置MyBatis: 在Spring MVC项目中,你需要配置MyBatis与Spring的整合,这通常涉及到`mybatis-config.xml`,`sqlSessionFactory`和`...
java中的springMVC模式调用过程,该图片显示了如果在java中使用springMVC的模式调用数据库过程。
5. **编写Java代码调用存储过程**:在服务层,我们需要创建一个对应Mapper接口的实现类,通过`@Autowired`注解注入Mapper实例。然后,我们可以使用`SqlSession`的`call`方法来调用存储过程。例如: ```java @...
在本项目中,Mybatis负责与MySQL数据库的交互,如存储图片的元数据,可能还包括调用存储过程。 5. MySQL存储过程: 存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以被多次调用。在这个项目中,存储...
在调用存储过程时,我们需要利用MyBatis提供的API和配置机制来实现。 1. **配置MyBatis**:在`mybatis-config.xml`配置文件中,你需要添加数据库连接信息,例如数据源、驱动类等。同时,也需要将你的Mapper接口文件...
在SSM系统中,开发人员可能创建了Mapper接口,定义了对应的方法,并在XML配置文件中配置了调用存储过程的SQL语句。这样,当业务层需要调用数据库操作时,可以直接通过MyBatis的SqlSession对象执行这些方法。 项目...
这是一个完整的mybaits3.0+springmvc+oracle11g项目,包括sql,存储过程等,下载修改数据库连接 即可运行,包括数据增删改查,一对多查询,调用存储过程。完整的配置文件注释,绝对是入门级教材!另附有根据汉字获取...
1. **XML或注解配置**:定义SQL语句、存储过程以及复杂的映射,可以在XML配置文件中编写,也可以使用注解。 2. **动态SQL**:支持条件查询、if、choose、when、otherwise等元素,使SQL语句更灵活。 3. **Mapper接口*...
在本项目中,Maven被用来整合SpringMVC和实现接口调用。Maven的POM(Project Object Model)文件是核心,它包含了项目的配置信息,如依赖库、构建目标和插件等。通过在POM.xml文件中声明所需的SpringMVC和相关库,...
这个压缩包"spring springmvc mongodb所需jar包"提供了一套基础的依赖库,帮助开发者快速搭建基于Spring、SpringMVC、MongoDB、MyBatis以及Oracle数据库的Java应用程序。下面将详细解释这些关键组件及其相关知识点。...
在Dubbo中,Zookeeper常被用作服务注册中心,负责存储服务提供者的元数据信息,使服务消费者可以找到并调用相应服务。 SpringMVC是Spring框架的一部分,用于构建Web应用的模型-视图-控制器(MVC)架构。它简化了Web...
2. **SimpleJdbcInsert** 和 **SimpleJdbcCall**:简化插入记录和调用存储过程的操作。 3. **Transaction Management**:SpringJDBC支持声明式和编程式事务管理,使得事务控制更加简洁和健壮。 4. **DataSource**...
SpringMVC和SQLiteJDBC是两个在Java开发中常见的组件,它们分别用于构建Web应用程序和服务端数据存储。这里我们详细探讨这两个技术以及它们如何协同工作。 **SpringMVC** SpringMVC是Spring框架的一个模块,专门...
通过编写这些组件,我们可以理解SpringMVC如何将请求、业务逻辑和视图分离,以及它们之间的协作过程。此外,这也将帮助我们更好地理解SpringMVC中的一些高级特性,如拦截器、AOP(面向切面编程)、数据绑定和异常...
在本文中,我们将深入探讨如何使用SpringMVC和MyBatis框架,以及Maven构建工具来实现一个简单的附件上传功能,特别关注图片上传,并将文件存储到本地磁盘。这个项目适用于Java开发者,特别是那些使用Java 1.7及以上...
- **模型(Model)**:存储应用的核心业务逻辑和数据,通常由JavaBean对象组成。 - **视图(View)**:负责展示数据,如JSP、HTML等。 - **控制器(Controller)**:接收用户请求,处理业务逻辑,调用模型,并将结果...
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...
总的来说,SpringMVC+Mysql实例涵盖了Web应用开发的多个方面:从请求处理、业务逻辑到数据存储和用户界面。通过这个实例,你可以了解如何利用SpringMVC的注解驱动、依赖注入特性,以及如何与MySQL数据库无缝集成,为...