仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1266|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之测试spring的存储历程

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。存储历程测试spring的存储历程
spring对存储历程举行封装.它的完成细节与jdbc相似

上面举行测试

1):写存储历程实行类:packagejdbc;importjava.sql.Types;importjava.util.HashMap;importjava.util.Map;importjavax.sql.DataSource;importorg.springframework.jdbc.core.SqlParameter;importorg.springframework.jdbc.object.StoredProcedure;importorg.springframework.jdbc.core.SqlOutParameter;importorg.springframework.jdbc.core.SqlParameter;

publicclassStoreTemplateextendsStoredProcedure{

HashMapmap=newHashMap();publicStoreTemplate(){super();

}

publicvoidsetValue(Stringkey,Objectobj){map.put(key,obj);}

publicStoreTemplate(DataSourceds){setDataSource(ds);}publicMapexecute(){if(this.getSql()==null||this.getSql().equals(""))returnnull;this.compile();returnexecute(map);}

publicvoidsetVarcharParam(Stringparam){this.declareParameter(newSqlParameter(param,Types.VARCHAR));}publicvoidsetDoubleParam(Stringparam){this.declareParameter(newSqlParameter(param,Types.DOUBLE));}publicvoidsetIntegerParam(Stringparam){this.declareParameter(newSqlParameter(param,Types.INTEGER));}publicvoidsetVarcharOutParam(Stringparam){this.declareParameter(newSqlOutParameter(param,Types.VARCHAR));}publicvoidsetDoubleOutParam(Stringparam){this.declareParameter(newSqlOutParameter(param,Types.DOUBLE));}publicvoidsetIntegerOutParam(Stringparam){this.declareParameter(newSqlOutParameter(param,Types.INTEGER));}}

2):用spring设置数据源:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<beans><beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></property><propertyname="url"><value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs;SelectMethod=Cursor</value></property><propertyname="username"><value>sa</value></property><propertyname="password"><value></value></property></bean></beans>

3):写junit:packagejdbc;importjunit.framework.*;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.FileSystemXmlApplicationContext;importjava.util.List;importjava.util.Map;importjavax.sql.DataSource;publicclassTestStoreTemplateextendsTestCase{ApplicationContextctx=null;protectedvoidsetUp()throwsException{ctx=newFileSystemXmlApplicationContext("D:workjpetstorecjdbcContext-jdbc.xml");}publicvoidtestStore(){DataSourcedatasource=(DataSource)ctx.getBean("dataSource");StoreTemplateqry=newStoreTemplate(datasource);qry.setSql("testsp");qry.setIntegerParam("count");qry.setIntegerOutParam("ret");qry.setValue("count",newInteger(1));Mapmap=qry.execute();if(map!=null){System.out.println(map.get("ret"));}}

protectedvoidtearDown()throwsException{

}

}

4):写测试存储历程SETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGOcreateproceduretestsp(@countint,@retintout)asbeginselect@ret=@count+1endGOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGO

5):编译运转ok.

6):附jdbc挪用存储历程的办法

packagejdbc;

importjunit.framework.*;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.FileSystemXmlApplicationContext;

importjavax.sql.DataSource;importjava.sql.*;

publicclassTestJdbcCallStoreextendsTestCase{ApplicationContextctx=null;protectedvoidsetUp()throwsException{ctx=newFileSystemXmlApplicationContext("D:workjpetstorecjdbcContext-jdbc.xml");}

publicvoidtestStore(){DataSourcedatasource=(DataSource)ctx.getBean("dataSource");CallableStatementcstmt=null;try{cstmt=datasource.getConnection().prepareCall("{calltestsp(?,?)}");cstmt.setInt(1,1);cstmt.registerOutParameter(2,Types.INTEGER);cstmt.executeUpdate();Objectobj=cstmt.getObject(2);if(obj!=null){System.out.println(obj.toString());}}catch(SQLExceptiones){es.printStackTrace(System.out);}finally{

}}

protectedvoidtearDown()throwsException{

}

}



//为了复杂,有些代码省往了,象transaction.

mzhanker@126.com

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。
只想知道 该用户已被删除
沙发
发表于 2015-1-21 15:22:08 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-30 20:25:11 来自手机 | 只看该作者
是一种为 Internet发展的计算机语言
深爱那片海 该用户已被删除
地板
发表于 2015-2-2 21:42:43 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
飘灵儿 该用户已被删除
5#
发表于 2015-2-5 11:43:57 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
不帅 该用户已被删除
6#
发表于 2015-2-11 14:51:38 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
灵魂腐蚀 该用户已被删除
7#
发表于 2015-2-26 12:26:47 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
谁可相欹 该用户已被删除
8#
发表于 2015-3-8 14:55:19 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
山那边是海 该用户已被删除
9#
发表于 2015-3-9 11:16:06 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-15 02:11:31 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
变相怪杰 该用户已被删除
11#
发表于 2015-3-20 02:30:39 | 只看该作者
是一种为 Internet发展的计算机语言
爱飞 该用户已被删除
12#
发表于 2015-4-5 11:51:24 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
透明 该用户已被删除
13#
发表于 2015-4-5 14:55:20 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
兰色精灵 该用户已被删除
14#
发表于 2015-4-15 03:02:34 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
再见西城 该用户已被删除
15#
发表于 2015-4-16 22:10:47 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
乐观 该用户已被删除
16#
发表于 2015-4-26 11:26:12 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
admin 该用户已被删除
17#
发表于 2015-4-27 15:01:33 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
柔情似水 该用户已被删除
18#
发表于 2015-4-30 01:46:54 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
再现理想 该用户已被删除
19#
发表于 2015-5-4 05:11:42 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
若相依 该用户已被删除
20#
 楼主| 发表于 2015-5-4 06:01:15 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表