账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如果我有一个类,这个类中有内部类,我应该要怎么操作才能使QueryRunner的query方法返回的类中的内部类不为null
    30
    0
    我的数据库中Customer表是以region表的id作为外键的,假设我有一个Customer类,这个类中有个内部类是region,我应该要怎么操作才能使QueryRunner的query方法返回的Customer类中的region不为null,其他方法也可以,如果没有的话大佬也可以说一下,如果我的代码有什么错误大佬们也可以指出我也用过BeanMapHandler()来接收数据,虽然可以得到region的数据,但是却不是我想要的数据,可能是我的方法用错了,希望各位大佬解惑
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 溺死在爱情海的鱼 普通会员 1楼

      在Java中,你可以通过将内部类的类名作为参数传递给QueryRunner的query方法来避免null值。这是因为QueryRunner的query方法接受一个Java对象作为参数,该对象将被用来执行查询。

      以下是一个示例:

      ```java public class MyClass { private MyInnerClass myInnerClass;

      public MyClass(MyInnerClass myInnerClass) {
          this.myInnerClass = myInnerClass;
      }
      
      public void executeQuery() {
          QueryRunner runner = new QueryRunner();
          runner.setQueryRunnerQuery(new QueryRunnerQuery() {
              @Override
              public void setParameter(String name, Object value) {
                  // your code to set the parameter
              }
      
              @Override
              public Object execute() throws Exception {
                  // your code to execute the query
                  return myInnerClass.getValue();
              }
          });
      
          runner.query("myQuery", new QueryRunnerQueryCallback() {
              @Override
              public void queryCompleted(ResultSet resultSet, int columnCount, int[][] resultSetValues, Object[] resultSetKeys) {
                  // your code to handle the query result
              }
          });
      
          runner.close();
      }
      

      }

      public class QueryRunnerQuery { public void setParameter(String name, Object value) { // your code to set the parameter }

      public Object execute() throws Exception {
          // your code to execute the query
          return null;
      }
      

      }

      public class QueryRunnerQueryCallback { @Override public void queryCompleted(ResultSet resultSet, int columnCount, int[][] resultSetValues, Object[] resultSetKeys) { // your code to handle the query result } } ```

      在这个示例中,MyClass类有一个MyInnerClass内部类。当你调用MyClass的executeQuery方法时,QueryRunner会创建一个新的QueryRunnerQuery对象,并将MyInnerClass的实例传递给它。然后,QueryRunner会执行查询,并在查询完成后调用QueryRunnerQueryCallback的queryCompleted方法来处理结果。

      请注意,你需要在MyClass的构造函数中初始化MyInnerClass的实例。在这个示例中,我们只是简单地将它作为参数传递给构造函数。在实际使用中,你可能需要添加更多的代码来初始化内部类。

    • 肥鲇鱼 普通会员 2楼

      在Java中,你可以通过将内部类的类名作为参数传递给QueryRunner的query方法来避免null值。这是因为QueryRunner的query方法接受一个Java对象作为参数,该对象将被用来执行查询。

      以下是一个示例:

      ```java public class MyClass { private MyInnerClass myInnerClass;

      public MyClass(MyInnerClass myInnerClass) {
          this.myInnerClass = myInnerClass;
      }
      
      public void executeQuery() {
          QueryRunner runner = new QueryRunner();
          runner.setQueryRunnerQuery(new QueryRunnerQuery() {
              @Override
              public void setParameter(String name, Object value) {
                  // your code to set the parameter
              }
      
              @Override
              public Object execute() throws Exception {
                  // your code to execute the query
                  return myInnerClass.getValue();
              }
          });
      
          runner.query("myQuery", new QueryRunnerQueryCallback() {
              @Override
              public void queryCompleted(ResultSet resultSet, int columnCount, int[][] resultSetValues, Object[] resultSetKeys) {
                  // your code to handle the query result
              }
          });
      
          runner.close();
      }
      

      }

      public class QueryRunnerQuery { public void setParameter(String name, Object value) { // your code to set the parameter }

      public Object execute() throws Exception {
          // your code to execute the query
          return null;
      }
      

      }

      public class QueryRunnerQueryCallback { @Override public void queryCompleted(ResultSet resultSet, int columnCount, int[][] resultSetValues, Object[] resultSetKeys) { // your code to handle the query result } } ```

      在这个示例中,MyClass类有一个MyInnerClass内部类。当你调用MyClass的executeQuery方法时,QueryRunner会创建一个新的QueryRunnerQuery对象,并将MyInnerClass的实例传递给它。然后,QueryRunner会执行查询,并在查询完成后调用QueryRunnerQueryCallback的queryCompleted方法来处理结果。

      请注意,你需要在MyClass的构造函数中初始化MyInnerClass的实例。在这个示例中,我们只是简单地将它作为参数传递给构造函数。在实际使用中,你可能需要添加更多的代码来初始化内部类。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部