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前途未卜。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种为 Internet发展的计算机语言 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 是一种语言,用以产生「小应用程序(Applet(s)) 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种为 Internet发展的计算机语言 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
页:
[1]