以webService为客户端获取List泛型结果集

来源:互联网 发布:mac怎样彻底删除软件 编辑:程序博客网 时间:2024/06/16 01:44

 

首先搭建好webService,添加XFire1.2Core Libraries 和XFire1.2HTTP Client Libraries,连接上数据库,下例以oracle为数据库。

连接Oralce,连接类为DBConnection.java

package com.xtgd.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DBConnection {private String driver="oracle.jdbc.driver.OracleDriver";private String url="jdbc:oracle:thin:@localhost:1521:orcl";private String username="scott";private String pwd="tiger";private Connection conn=null;public Connection getConn(){try {Class.forName(driver);conn=DriverManager.getConnection(url,username,pwd);} catch (Exception e) {e.printStackTrace();}return conn;}public void closeConn(ResultSet rs,PreparedStatement ps,Connection conn){try {if(rs!=null){rs.close();}if(rs!=null){rs.close();}if(rs!=null){rs.close();}} catch (Exception e) {e.printStackTrace();}}}

 

写好UserDao方法 UserDao.java

 

package com.xtgd.test;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;public class UserDao{DBConnection b = new DBConnection();private PreparedStatement pre = null;private ResultSet rs = null;private Connection conn = null;/* * 全查询 */public List<TUser> getAll(){List<TUser> ar = new ArrayList<TUser>();try{String sql = "select * from t_user";conn = b.getConn();pre = conn.prepareStatement(sql);rs = pre.executeQuery();while (rs.next()){TUser user = new TUser();user.setUId(rs.getInt("u_id"));user.setUPersonid(rs.getString("u_personid"));user.setUPersonname(rs.getString("u_personname"));user.setUPassword(rs.getString("u_password"));user.setUTel(rs.getString("u_tel"));user.setUEmail(rs.getString("u_email"));user.setUState(rs.getInt("u_state"));user.setURemark(rs.getString("u_remark"));ar.add(user);}}catch (Exception e){e.printStackTrace();}finally{b.closeConn(rs, pre, conn);}return ar;}}


实体类为TUser.entity

package com.xtgd.test;import java.io.Serializable;/** * TUser entity. *  * @author MyEclipse Persistence Tools */public class TUser implements Serializable {// Fieldsprivate Integer UId;private String UPersonid;private String UPersonname;private String UPassword;private String UTel;private String UEmail;private int UState = 1;private String URemark;// Constructors/** default constructor */public TUser() {}/** full constructor */public TUser(String UPersonid, String UPersonname, String UPassword,String UTel, String UEmail, int UState, String URemark) {this.UPersonid = UPersonid;this.UPersonname = UPersonname;this.UPassword = UPassword;this.UTel = UTel;this.UEmail = UEmail;this.UState = UState;this.URemark = URemark;}// Property accessorspublic Integer getUId() {return this.UId;}public void setUId(Integer UId) {this.UId = UId;}public String getUPersonid() {return this.UPersonid;}public void setUPersonid(String UPersonid) {this.UPersonid = UPersonid;}public String getUPersonname() {return this.UPersonname;}public void setUPersonname(String UPersonname) {this.UPersonname = UPersonname;}public String getUPassword() {return this.UPassword;}public void setUPassword(String UPassword) {this.UPassword = UPassword;}public String getUTel() {return this.UTel;}public void setUTel(String UTel) {this.UTel = UTel;}public String getUEmail() {return this.UEmail;}public void setUEmail(String UEmail) {this.UEmail = UEmail;}public int getUState() {return UState;}public void setUState(int state) {UState = state;}public String getURemark() {return this.URemark;}public void setURemark(String URemark) {this.URemark = URemark;}}


写好接口IUserService.java

package com.xtgd.test;import java.util.List;//Generated by MyEclipsepublic interface IUserService {public List<TUser> getAll();}


 

 实现类UserServiceImpl.java

package com.xtgd.test;import java.util.List;//Generated by MyEclipsepublic class UserServiceImpl implements IUserService {private UserDao dao = new UserDao();/*************************************************************************** * 查询所有 */public List<TUser> getAll(){return this.dao.getAll();}}


在IUserService.java同级目录下添加IUserService.aegis.xml,命名规则为"接口名.aegis.xml"

<?xml version="1.0" encoding="UTF-8"?><!--         该文件用来描述IUsersService接口中getAll()方法返回值的类型        该文件必须与IUsersService位于同一目录中,且该文件遵循如下命名规则        webservice接口名.aegis.xml 如本文件IUsersService.aegis.xml    --><mappings><method name="getAll">            <return-type componentType="#users"/>    </method> <!-- 映射getAll()方法返回值类型 -->    <mapping>        <component name="users" class="com.xtgd.test.TUser" componentType="com.xtgd.test.TUser"/>    </mapping></mappings>

 

web.xml的配置如下:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <servlet>    <servlet-name>XFireServlet</servlet-name>    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>    <load-on-startup>0</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>XFireServlet</servlet-name>    <url-pattern>/services/*</url-pattern>  </servlet-mapping>    <!-- 添加mapping -->  <servlet-mapping>  <servlet-name>XFireServlet</servlet-name>  <url-pattern>/services/XFireServlet/*</url-pattern>  </servlet-mapping>    <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

 

services.xml的配置如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"><service><name>UserService</name><serviceClass>com.xtgd.test.IUserService</serviceClass><implementationClass>com.xtgd.test.UserServiceImpl</implementationClass><style>wrapped</style><use>literal</use><scope>application</scope></service></beans>

 

成功发布到tomcat上之后,下面开始测试,测试类为Test.java,注意导入正确的包!

package com.xtgd.test;import java.util.List;import com.xtgd.test.*;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;public class Test {public static void main(String[] args) {// 构建serviceService service = (Service) new ObjectServiceFactory().create(IUserService.class);try {// 获得自定义webservice接口IUserService usersService = (IUserService) new XFireProxyFactory().create(service,"http://localhost:8080/08_01_webservice/services/UserService");// 调用该webservice中定义的getUsers()方法List<TUser> list = usersService.getAll();// 输出list长度System.out.println(list.size());// 遍历listfor (TUser users : list) {System.out.println("personid:" + users.getUPersonid()+ "\tpersonname:" + users.getUPersonname());}} catch (Exception e) {e.printStackTrace();}}}


 

最后,欢迎访问风格清新简洁的轻博客网站[指尖一刻]