GVKun编程网logo

jdbc出现错误Before start of result set Query: select *(jdbc报错)

11

本文将介绍jdbc出现错误BeforestartofresultsetQuery:select*的详细情况,特别是关于jdbc报错的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解

本文将介绍jdbc出现错误Before start of result set Query: select *的详细情况,特别是关于jdbc报错的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2、Android startActivityForResult,setResult,onActivityResult未调用、Android startActivityForResult和setResult的区别、android – StartActivityForResults始终为Intent.ACTION_SEND返回RESULT_CANCELLED的知识。

本文目录一览:

jdbc出现错误Before start of result set Query: select *(jdbc报错)

jdbc出现错误Before start of result set Query: select *(jdbc报错)

public class Demo1 {
 @Test
 public void test1(){
  try {
   String sql="select * from user where id=3";
   Connection conn=JdbcUtil.getConnection();
   //创建DbUtils核心工具类对象
   QueryRunner qr=new QueryRunner();
   //查询
   User user=qr.query(conn, sql, new ResultSetHandler<User>(){
    public User handle(ResultSet rs) throws SQLException {
     if(rs.next()){
      User user=new User();
      user.setId(rs.getInt("id"));
      user.setName(rs.getString("name"));
      user.setWorkDate(rs.getString("workDate"));
      user.setAge(rs.getInt("age"));
      return user;
     }
     return null;
    }
   });
   System.out.println(user);
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }

----------------------------------------------缺少红色代码就会出现上面那个错误

.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2

Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:81)
 at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
 ... 122 more

Android startActivityForResult,setResult,onActivityResult未调用

Android startActivityForResult,setResult,onActivityResult未调用

我打了一个电话,要求提供结果:

    Intent intentcall = new Intent();
intentcall.setAction(Intent.ACTION_CALL);
intentcall.setData(Uri.parse("tel:" + phoneNumber));
this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);

然后像这样在电话监听器中设置结果:

    private class MyPhonestateListener extends PhonestateListener{
     public void onCallStateChanged(int state, String incomingNumber) {

         super.onCallStateChanged(state, incomingNumber);

         switch (state) {
             case TelephonyManager.CALL_STATE_IDLE:
                                   setResult(Activity.RESULT_OK);
                                   break;

最后,我想关闭onActivityResult中的图标,但是什么也没有发生.

    switch (requestCode) {

    case REQUEST_SLIPDROP_ICON_OFF:
        Log.d("request icon off", "request icon off");

        if (resultCode == Activity.RESULT_OK) {     

            changeMenuItem(R.id.fall, R.drawable.fall);
            slipAndDropIconOn = false;

        } 

        break;

哪里不对了?请指教!谢谢

解决方法:

我认为此操作不会返回结果,因此调用startActivityForResult与调用startActivity没什么不同

注意:输出=无.
http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL

Android startActivityForResult和setResult的区别

Android startActivityForResult和setResult的区别

 Android startActivityForResult和setResult的区别

startActivityForResult与startActivity的不同之处在于:

1、startActivity( )

仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。

2、startActivityForResult( )

可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。

相关函数:

startActivityForResult(Intent intent,Int requestCode)
setResut(int resultCode,Intent intent)
onActivityResult(int requestCode,int resultCode,Intent intent)

 简单例子介绍:

1.跳转的时候不是采用startActivity(intent) 这个方法,而是startActivityForResult(intent,0)

Intent intent=new Intent();
intent.setClass(A.this,B.class);
Bundle bundle=new Bundle();
String str1="aaaaaa";
bundle.putString("str1",str1);
intent.putExtras(bundle);
startActivityForResult(intent,0);//这里采用startActivityForResult来做跳转,此处的0为一个依据,可以写其他的值,但一定要>=0

2.重写onActivityResult方法,用来接收B回传的数据。

protected void onActivityResult(int requestCode,Intent data) {
switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK
  case RESULT_OK:
  Bundle b=data.getExtras(); //data为B中回传的Intent
  String str=b.getString("str1");//str即为回传的值
  break;
default:
  break;
  }
}

3.在B中回传数据时采用setResult方法,并且之后要调用finish方法。

setResult(RESULT_OK,intent); //intent为A传来的带有Bundle的intent,当然也可以自己定义新的Bundle
finish();//此处一定要调用finish()方法

Android activity的setResult()在什么时候调用(重点也是难点)

如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理!

如果一个activity要返回数据到启动它的那个activity,可以调用setResult()方法。那什么时候去调用setResult()方法返回数据呢?
看一下源码就明白了:

public final void setResult(int resultCode,Intent data) {
    synchronized (this) {
      mResultCode = resultCode;
      mResultData = data;
    }
  }

  public void finish() {
    if (mParent == null) {
      int resultCode;
      Intent resultData;
      synchronized (this) {
        resultCode = mResultCode;
        resultData = mResultData;
      }
      if (Config.LOGV) Log.v(TAG,"Finishing self: token=" + mToken);
      try {
        if (ActivityManagerNative.getDefault()
          .finishActivity(mToken,resultCode,resultData)) {
          mFinished = true;
        }
      } catch (remoteexception e) {
        // Empty
      }
    } else {
      mParent.finishFromChild(this);
    }
  }

这段代码可以看出activity返回result是在被finish的时候,也就是说调用setResult()方法必须在finish()之前。

那么如果在如下方法中调用setResult()也有可能不会返回成功: onPause(), onStop(), onDestroy(),

因为这些方法调用不一定是在finish之前的,当然在onCreate()就调用setResult肯定是在finish之前的

按BACK键从一个Activity退出来的,一按BACK,android就会自动调用Activity的finish()方法,然后设置resultCode为RESULT_CANCELED,也就不会返回任何数据了 .

解决方法就是在Activity里面捕获按BACK的事件,捕获到之后先setResult,然后自己来调用finish,就搞定了……把BACK事件直接自己给吞了

@Override
  public void onBackpressed() {
    Log.i(TAG,"onBackpressed");
    setResult(Const.LIVE_OK);
    super.onBackpressed();
  }

当然还可以在onCreate()就调用setResult,不过我觉得这种方法没有重写onBackpressed()方法好.

 以上就是Android startActivityForResult和setResult的区别,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

android – StartActivityForResults始终为Intent.ACTION_SEND返回RESULT_CANCELLED

android – StartActivityForResults始终为Intent.ACTION_SEND返回RESULT_CANCELLED

当出现共享弹出窗口时,我成功分享了WhatsApp上的内容,但仍然返回RESULT_CANCELLED.使用Gmail发送电子邮件时的结果相同.

使用startActivityForResult调用共享意图ACTION_SEND始终返回CANCELED

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(android.content.Intent.EXTRA_TITLE, "Taxeeta, Cab Around The Curb");
    sharingIntent
        .putExtra(
            android.content.Intent.EXTRA_TEXT,
                "Hiring a cab no longer needs you to wait on call centers, or pay a"
                + " convenience (yeah right!!) charge. Taxeeta connects you"
                + " to drivers directly, for a quick book experience. With Taxeeta"
                + " you can take matters in your own hands (literally). To download"
                + " the app for your phone visit http://www.taxeeta.com");
    startActivityForResult(Intent.createChooser(sharingIntent, "Share and earn a extra Priviledge"), 111);

ActivityForResult代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 111) {
        if (resultCode == RESULT_OK) {
            Toast.makeText(this, "Ok DUDE", Toast.LENGTH_LONG).show();
        } else if (resultCode == RESULT_CANCELED) {
            Toast.makeText(this, "Oversmart Eh!!", Toast.LENGTH_LONG).show();
        }
    }
}

解决方法:

startActivityForResult()仅适用于要以这种方式调用的活动.如果您调用的活动未显式返回结果,您将获得默认结果RESULT_CANCELED.显然,ACTION_SEND并非旨在以这种方式调用. ACTION_SEND的documentation表示不生成输出(即:不生成结果).

有关Activity.startActivityForResult(),请参阅documentation:

Note that this method should only be used with Intent protocols that
are defined to return a result. In other protocols (such as
ACTION_MAIN or ACTION_VIEW), you may not get the result when you
expect. For example, if the activity you are launching uses the
singleTask launch mode, it will not run in your task and thus you will
immediately receive a cancel result.

今天关于jdbc出现错误Before start of result set Query: select *jdbc报错的介绍到此结束,谢谢您的阅读,有关.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2、Android startActivityForResult,setResult,onActivityResult未调用、Android startActivityForResult和setResult的区别、android – StartActivityForResults始终为Intent.ACTION_SEND返回RESULT_CANCELLED等更多相关知识的信息可以在本站进行查询。

本文标签: