若相依 发表于 2015-1-18 11:48:46

JAVA网站制作之测试spring的存储历程

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就哗啦啦的。。。。。。

飘灵儿 发表于 2015-2-5 11:43:57

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

不帅 发表于 2015-2-11 14:51:38

是一种语言,用以产生「小应用程序(Applet(s))

灵魂腐蚀 发表于 2015-2-26 12:26:47

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

谁可相欹 发表于 2015-3-8 14:55:19

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

山那边是海 发表于 2015-3-9 11:16:06

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

愤怒的大鸟 发表于 2015-3-15 02:11:31

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

变相怪杰 发表于 2015-3-20 02:30:39

是一种为 Internet发展的计算机语言

爱飞 发表于 2015-4-5 11:51:24

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

透明 发表于 2015-4-5 14:55:20

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

兰色精灵 发表于 2015-4-15 03:02:34

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

再见西城 发表于 2015-4-16 22:10:47

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

乐观 发表于 2015-4-26 11:26:12

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

admin 发表于 2015-4-27 15:01:33

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

柔情似水 发表于 2015-4-30 01:46:54

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

再现理想 发表于 2015-5-4 05:11:42

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

若相依 发表于 2015-5-4 06:01:15

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
页: [1]
查看完整版本: JAVA网站制作之测试spring的存储历程