仓酷云

标题: JAVA网页编程之两种办法测试spring中的jdbc [打印本页]

作者: 爱飞    时间: 2015-1-18 11:22
标题: JAVA网页编程之两种办法测试spring中的jdbc
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。两种办法测试spring中的jdbc
JDBC是一个十分基本的数据存取API,spring对其举行复杂的封装,上面以sqlserver中自带的pubs数据库Authors表举行测试.

1):编写Authors.java,其每一个对象对应于数据库中的一笔记录

packagejdbc;publicclassAuthors{Stringlname=null;Stringfname=null;Stringphone=null;Stringaddress=null;publicStringgetAddress(){returnaddress;}publicStringgetFname(){returnfname;}publicStringgetLname(){returnlname;}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){this.phone=phone;}publicvoidsetLname(Stringlname){this.lname=lname;}publicvoidsetFname(Stringfname){this.fname=fname;}publicvoidsetAddress(Stringaddress){this.address=address;}}

2):编写AuthorsQuery类

packagejdbc;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.sql.DataSource;importorg.springframework.jdbc.object.MappingSqlQuery;importjavax.sql.DataSource;

/***<p>Title:测试spring中的jdbc</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2004</p>*<p>Company:</p>*@authorhanker*@version1.0*/

publicclassAuthorsQueryextendsMappingSqlQuery{

publicAuthorsQuery(DataSourceds){this.setDataSource(ds);this.setSql("SELECT*FROMauthors");compile();}

protectedObjectmapRow(ResultSetrs,intrownum)throwsSQLException{

Authorspo=newAuthors();po.setLname(rs.getString("au_lname"));po.setFname(rs.getString("au_fname"));po.setPhone(rs.getString("phone"));po.setAddress(rs.getString("address"));returnpo;}

}

3:写spring的设置文件

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">

<!---ApplicationcontextdefinitionforPetcliniconHibernate.--><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>

<beanid="AuthorsQuery"class="jdbc.AuthorsQuery"singleton="false"><constructor-argindex="0"><refbean="dataSource"/></constructor-arg></bean></beans>

4:写junit举行测试

packagejdbc;

importjunit.framework.*;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.FileSystemXmlApplicationContext;importjava.util.List;importjava.util.Map;/***<p>Title:测试spring中的jdbc</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2004</p>*<p>Company:</p>*@authorhanker*@version1.0*/

publicclassTestAuthorsQueryextendsTestCase{ApplicationContextctx=null;protectedvoidsetUp()throwsException{ctx=newFileSystemXmlApplicationContext("D:workjpetstorecjdbcContext-jdbc.xml");}publicvoidtestQuery(){System.out.println("[Test1....");AuthorsQueryqry=(AuthorsQuery)ctx.getBean("AuthorsQuery");Listlist=qry.execute();if(list!=null&&list.size()>0){for(inti=0;i<list.size();i++){Authorsauthor=(Authors)list.get(i);StringBufferbuf=newStringBuffer();buf.append(author.getLname()).append("|").append(author.getFname()).append("|").append(author.getPhone()).append("|").append(author.getAddress());System.out.println(buf.toString());}}

}}

5:编译运转,ok》是否是失掉了你想要的了局

White|Johnson|408496-7223|10932BiggeRd.Green|Marjorie|415986-7020|30963rdSt.#411Carson|Cheryl|415548-7723|589DarwinLn.OLeary|Michael|408286-2428|22ClevelandAv.#14Straight|Dean|415834-2919|5420CollegeAv.Smith|Meander|913843-0462|10MississippiDr.Bennet|Abraham|415658-9932|6223BatemanSt.Dull|Ann|415836-7128|3410BlondeSt.Gringlesby|Burt|707938-6445|POBox792Locksley|Charlene|415585-4620|18BroadwayAv.Greene|Morningstar|615297-2723|22GraybarHouseRd.Blotchet-Halls|Reginald|503745-6402|55HillsdaleBl.

6:上面测试另处一种调jdbc的办法

编写AuthorsQuery2.java文件packagejdbc;

importjava.util.List;importorg.springframework.context.ApplicationContextException;importorg.springframework.dao.DataAccessException;importorg.springframework.jdbc.core.SqlParameter;importorg.springframework.jdbc.core.support.JdbcDaoSupport;

/***<p>Title:测试spring中的jdbc</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2004</p>*<p>Company:</p>*@authorhanker*@version1.0*/

publicclassAuthorsQuery2extendsJdbcDaoSupport{publicAuthorsQuery2(){}publicListquery(Stringsql)throwsDataAccessException{returnthis.getJdbcTemplate().queryForList(sql);}

}

7:设置,在下面到场上面几行:

<beanid="AuthorsQuery2"class="jdbc.AuthorsQuery2"><propertyname="dataSource"><reflocal="dataSource"/></property></bean>

8:写junit.在TestAuthorsQuery中到场函数publicvoidtestQuery2(){System.out.println("[Test2....");AuthorsQuery2qry=(AuthorsQuery2)ctx.getBean("AuthorsQuery2");Listlist=qry.query("SELECT*FROMauthors");if(list!=null&&list.size()>0){for(inti=0;i<list.size();i++){Mapmap=(Map)list.get(i);StringBufferbuf=newStringBuffer();buf.append(map.get("au_lname")).append("|").append(map.get("au_fname")).append("|").append(map.get("phone")).append("|").append(map.get("address"));System.out.println(buf.toString());}}}

9:编译运转.以上代码经由测试,可以一般运转,



mzhanker@126.com



多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
作者: 谁可相欹    时间: 2015-1-20 22:03
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 乐观    时间: 2015-1-24 15:44
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 再见西城    时间: 2015-1-24 20:35
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 深爱那片海    时间: 2015-2-2 13:03
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 活着的死人    时间: 2015-2-2 17:54
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 莫相离    时间: 2015-2-8 03:27
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 老尸    时间: 2015-2-9 22:38
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 海妖    时间: 2015-2-11 09:03
是一种使用者不需花费很多时间学习的语言
作者: 变相怪杰    时间: 2015-2-23 18:32
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 爱飞    时间: 2015-3-7 09:51
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 不帅    时间: 2015-3-11 07:44
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 第二个灵魂    时间: 2015-3-25 06:08
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2