zoukankan      html  css  js  c++  java
  • 以webService为客户端获取List泛型结果集

    首先搭建好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 {
    
    	// Fields
    
    	private 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 accessors
    
    	public 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 MyEclipse
    
    public interface IUserService {
    		
    	public List<TUser> getAll();
    }


     

     实现类UserServiceImpl.java

    package com.xtgd.test;
    
    import java.util.List;
    
    //Generated by MyEclipse
    
    public 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) {
    		// 构建service
    		Service 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());
    			// 遍历list
    			for (TUser users : list) {
    				System.out.println("personid:" + users.getUPersonid()
    						+ "	personname:" + users.getUPersonname());
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }
  • 相关阅读:
    openstack 使用cloud init 和 console-log, nbd或者libguestfs 获取VM中的硬件信息。
    Unity doesn't load, no Launcher, no Dash appears
    ssh 应用
    设计感悟——产品的3个属性
    别让用户发呆—设计中的防呆的6个策略
    用户流失原因调研4步经
    5种方法提高你网站的登录体验
    浅谈当下7个网页设计趋势(转)
    适应各浏览器图片裁剪无刷新上传jQuery插件(转)
    C#操作Excel数据增删改查(转)
  • 原文地址:https://www.cnblogs.com/sideny/p/3395484.html
Copyright © 2011-2022 走看看