当前位置:  编程技术>移动开发
本页文章导读:
    ▪Java 调用 Oracle 存储过程回来结果集        Java 调用 Oracle 存储过程返回结果集   转自:http://wxy0327.itpub.net/post/16888/149516          http://www.blogjava.net/TrampEagle/archive/2011/05/03/23605.html   Oracle 存储过程返回结果集用 ref cursor 实现。试验.........
    ▪ Monitor Package uninstall Event 监听apk程序装配卸载事件        Monitor Package uninstall Event 监听apk程序安装卸载事件 两种方法   1、代码 1, Define a class extends BroadcastReceiver;2, Register broadcast receiver;     UninstallApp receiver = new UninstallApp(); IntentFilter filter = new Inte.........
    ▪ 当地片选择       本地片选择 package com.yfz; import java.io.FileNotFoundException; import android.app.Activity; import android.content.ContentResolver; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import a.........

[1]Java 调用 Oracle 存储过程回来结果集
    来源: 互联网  发布时间: 2014-02-18
Java 调用 Oracle 存储过程返回结果集

 

转自:http://wxy0327.itpub.net/post/16888/149516

         http://www.blogjava.net/TrampEagle/archive/2011/05/03/23605.html

 

Oracle 存储过程返回结果集用 ref cursor 实现。试验步骤如下:


1. 建立 ref cursor 类型和过程

 

drop table  prices  
/

drop table  test  
/

create or replace package types
as
    type ref_cursor is ref cursor;
end;
/

create table prices(
    ric varchar(6) primary key,
    price number(7,2),
    updated date )
/

create or replace function sp_get_prices(v_price in number) 
    return types.ref_cursor
as
    stock_cursor types.ref_cursor;
begin
    open stock_cursor for 
    select ric,price,updated from prices;

    return stock_cursor;
end;

/
 insert into prices 
select  '1',12,sysdate from dual  union all 
select  '2',123,sysdate from dual  union all 
select  '3',1245,sysdate from dual  
/
commit;

--创建表    
 create table test   
(   
carno     varchar2(30),   
carinfoid number   
)   
/   
--带 参数,无返回
create or replace procedure pro_ins(mt1 in varchar, mt2 in number) 
as  
carinfo_id number;   
begin  
  
insert into test(test.carno,test.carinfoid) values(mt1,mt2);   
commit;   
end pro_ins;   
/ 

--带参数,有返回
create or replace procedure pro_return(para1 in varchar2,para2 out varchar2)  as  
  
begin 
  
  select para1||' add ' into  para2 from dual;    
  
end pro_return; 
/
 

 


 

 
 

2. Java 调用

 

 

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

import oracle.jdbc.driver.OracleTypes;

public class JDBCDemo
{

    /**
     * Compile-time flag for deciding which query to use
     */
    private boolean useOracleQuery = true;

    /**
     * Class name of Oracle JDBC driver
     */
    private String driver = "oracle.jdbc.driver.OracleDriver";

    /**
     * Initial url fragment
     */
    private String url = "jdbc:oracle:thin:@";

    /**
     * Standard Oracle listener port
     */
    private String port = "1521";

    /**
     * Oracle style of calling a stored procedure
     */
    private String oracleQuery = "begin ? := sp_get_prices(?); end;";

    /**
     * JDBC style of calling a stored procedure
     */
    private String genericQuery = "{ call ? := sp_get_prices(?) }";

    /**
     * Connection to database
     */
    private Connection conn = null;

    public JDBCDemo(String host, String db, String user, String password) throws ClassNotFoundException, SQLException
    {

        // construct the url
        url = url + host + ":" + port + ":" + db;

        // load the Oracle driver and establish a connection
        try
        {
            Class.forName(driver);
            conn = DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException ex)
        {
            System.out.println("Failed to find driver class: " + driver);
            throw ex;
        } catch (SQLException ex)
        {
            System.out.println("Failed to establish a connection to: " + url);
            throw ex;
        }
    }

    /**
     * 
     * 返回 Cursor结果集
     * 
     * @throws SQLException
     * @author
     * @date
     */
    private void exeRetCursor() throws SQLException
    {

        String query = useOracleQuery ? oracleQuery : genericQuery;
        query = "{ call ? := sp_get_prices(?) }";
        query = "begin ? := sp_get_prices(?); end;";
        System.out.println("Query: " + query + "n");
        CallableStatement stmt = conn.prepareCall(query);

        // register the type of the out param - an Oracle specific type
        stmt.registerOutParameter(1, OracleTypes.CURSOR);

        // set the in param
        stmt.setFloat(2, 1);

        // execute and retrieve the result set
        stmt.execute();
        ResultSet rs = (ResultSet) stmt.getObject(1);

        // print the results
        while (rs.next())
        {
            System.out.println(rs.getString(1) + " | " + rs.getFloat(2) + " |" + rs.getDate(3).toString());
        }

        rs.close();
        stmt.close();
    }

    /**
     * 
     * 无返回结果
     * 
     * @throws SQLException
     * @author
     * @date
     */
    private void exeNoRet() throws SQLException
    {

        String query = "{ call pro_ins(?,?) }";
        System.out.println("Query: " + query + "n");
        CallableStatement stmt = conn.prepareCall(query);

        // register the type of the out param - an Oracle specific type

        // set the in param
        stmt.setString(1, "abcd");
        stmt.setInt(2, 111);

        // execute and retrieve the result set
        stmt.execute();
        System.out.println(" call pro_ins success");

        stmt.close();
    }

    /**
     * 
     * 返回 String
     * 
     * @throws SQLException
     * @author
     * @date
     */
    private void exeRetSingle() throws SQLException
    {

        String query = "{ call pro_return(?,?) }";
        System.out.println("Query: " + query + "n");
        CallableStatement stmt = conn.prepareCall(query);

        // register the type of the out param - an Oracle specific type

        // set the in param
        stmt.setString(1, "abcd");
        stmt.registerOutParameter(2, Types.VARCHAR);

        // execute and retrieve the result set
        stmt.execute();
        String ret = stmt.getString(2);
        // print the results
        System.out.println("get pro_return:" + ret);

        stmt.close();
    }

    /**
     * Cleanup the connection
     */
    private void cleanup() throws SQLException
    {

        if (conn != null)
            conn.close();
    }

    /**
     * Runs the class
     */
    public static void main(String[] args) throws Exception
    {

        try
        {
            // assign the args to sensible variables for clarity
            String host = "127.0.0.1";
            String db = "orcl";
            String user = "zxinweb";
            String password = "zxinweb";

            // and execute the stored proc
            JDBCDemo jdbc = new JDBCDemo(host, db, user, password);
            // 返回 Cursor结果集
            jdbc.exeRetCursor();
            // 无返回
            jdbc.exeNoRet();
            // 返回String
            jdbc.exeRetSingle();
            jdbc.cleanup();
        } catch (ClassNotFoundException ex)
        {
            System.out.println("Demo failed");
        } catch (SQLException ex)
        {
            System.out.println("Demo failed: " + ex.getMessage());
        }
    }
}

 


推荐:oracle存储过程,http://www./oracle-develop/177537.html

    
[2] Monitor Package uninstall Event 监听apk程序装配卸载事件
    来源: 互联网  发布时间: 2014-02-18
Monitor Package uninstall Event 监听apk程序安装卸载事件

两种方法

 

1、代码

1, Define a class extends BroadcastReceiver;
2, Register broadcast receiver;

 

 

UninstallApp receiver = new UninstallApp();
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_INSTALL);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addDataScheme("package"); //This line is very important. Otherwise, broadcast can't be received.这一行很得要
registerReceiver(receiver, filter);

 

 

2、XML

 

 

<data android:scheme="package"></data>

 This line is very important. Otherwise, broadcast can't be received. 这一行很重要

 

<receiver android:name="UninstallApp">  
<intent-filter>  
<action android:name="android.intent.action.PACKAGE_REMOVED" />  
<data android:scheme="package"></data>   
</intent-filter>  
</receiver>  

 

 

import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.Intent;  
import android.util.Log;  
  
public class UninstallApp extends BroadcastReceiver {  
  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        Log.e("intent", "intent="+intent.getAction());  
    }  
  
}  
 

 


    
[3] 当地片选择
    来源: 互联网  发布时间: 2014-02-18
本地片选择
package com.yfz;
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Lesson_01_Pic extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button button = (Button)findViewById(R.id.b01);
        button.setText("选择图片");
        button.setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
			 	Intent intent = new Intent();
		        /* 开启Pictures画面Type设定为image */
		        intent.setType("image/*");
		        /* 使用Intent.ACTION_GET_CONTENT这个Action */
		        intent.setAction(Intent.ACTION_GET_CONTENT); 
		        /* 取得相片后返回本画面 */
		        startActivityForResult(intent, 1);
			}
        	
        });
    }
    
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode == RESULT_OK) {
			Uri uri = data.getData();
			Log.e("uri", uri.toString());
			ContentResolver cr = this.getContentResolver();
			try {
				Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
				ImageView imageView = (ImageView) findViewById(R.id.iv01);
				/* 将Bitmap设定到ImageView */
				imageView.setImageBitmap(bitmap);
			} catch (FileNotFoundException e) {
				Log.e("Exception", e.getMessage(),e);
			}
		}
		super.onActivityResult(requestCode, resultCode, data);
	}
}

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3