如何用Java获得数据库的返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Java获得数据库的返回值相关的知识,希望对你有一定的参考价值。

现在用Java连接oracle数据库,比如有select * from emp 语句,怎么用ResultSet获取它的返回值连同列名称,如何没有查询到又该怎么获取,oracle的返回值,还有其它的增删该操作,如何没有执行成功,该怎么获取数据库的返回提示信息

前面的人回答了,你问怎么获取返回信息,我就回答这个吧:
如果你的执行不成功,系统会抛给你异常的,你在数据库操作的地方加上,try 你的代码catch(Excetion e)
System.out.println(e.getMessage());
//打印错误信息,你所说的错误信息都封装在了e这个Exception对象里头,这个就是java的面向对象,是java给你封装好了的对象,你可以直接用。


还有不明白的可以追问追问

如果有一个update 操作,如何更新成功,数据库会提示说影响行数为一行,能不能把这句话取出来,或是有一个delete操作,数据库提示已删除几行,像这样的信息怎么从数据库中取出来

追答

方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
------------------返回值就是 受影响的条数

参考技术A 类中集合的定义如下:
private Connection conn;
private PreparedStatement ps;
private ResultSet rs;
方法中通过下面的代码来获取数据库的返回值:
String sql="select * from emp";
conn=DBConnection.getConnection();
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
同理,增删该操作只需要将select * from emp换为对应的sql语句就可以了。
希望对你有帮助!追问

我是向问比如:增加了数据,怎么从数据库获取增加成功的信息

追答

你这个问的不清楚,增加了什么数据?就在emp表中增加了数据吗?再次执行程序时,程序会自动读取增加的数据的,这个就不用担心了。

本回答被提问者采纳
参考技术B statement 和preparestatement两个你可以试着用一下。。。。 参考技术C 建议你百度一下看看相关书籍,java数据库编程,理解其原理;
而且SQL语句一般不写成 SELECT * 这种方式是不优化的,增加了数据库的负担,效率低。
针对哪个列就写哪个列的;

如何用 func 委托替换 Action 委托,将值返回给函数

【中文标题】如何用 func 委托替换 Action 委托,将值返回给函数【英文标题】:How to replace Action delegate with a func delegate return a value to function 【发布时间】:2020-01-27 18:17:01 【问题描述】:

我有一个名为 CompleteDownload 的函数,它接受 int 参数,我想在这个函数中打印百分比

public void CompletedDownload(int percentage)
    
    Console.WriteLine(mID+":"+percentage+"% Loading is Completed");
 

我有一个功能:

public void LoadProcedure(int n,Action<int> inAction)
       
      // LoadingDisplay loadingDisplay=new LoadingDisplay(n);
        for(int i=0;i<=n;i++)
        
            if(i==n/4)
               

                inAction(i);


            
        
     

我想使用 func 委托将 i 值返回给 Completeddownload 函数,方法是什么

Loading loading=new Loading();
loading.LoadProcedure(100,display.CompletedDownLoad);

还帮助我主要如何指定它。

【问题讨论】:

您能否请edit 澄清为什么不能使用Func&lt;…&gt; 如何在上面的上下文中使用它先生你可以指定它 【参考方案1】:

在您的示例中,您似乎不需要对响应执行任何操作。因此,您无需尝试从 CompletedDownload 方法返回值,而是可以处理您的操作并在满足条件时简单地中断循环。

public void LoadProcedure(int n, Action<int> inAction)

    // LoadingDisplay loadingDisplay=new LoadingDisplay(n);
    for (int i = 0; i <= n; i++)
    
        if (i == n / 4)
        
            inAction(i);
            break;
        
    

这将运行您的操作,退出循环并返回调用方法。

如果您绝对需要返回触发操作的输入变量,只需将LoadProcedure 的返回类型从 void 更改为 int 并返回结果。

var result = loading.LoadProcedure(100,display.CompletedDownLoad);

public int LoadProcedure(int n, Action<int> inAction)

    // LoadingDisplay loadingDisplay=new LoadingDisplay(n);
    for (int i = 0; i <= n; i++)
    
        if (i == n / 4)
        
            inAction(i);
            return i;
        
    

无需将inAction 更改为Func&lt;&gt;,因为您目前没有在inAction 中进行任何计算。

【讨论】:

先生,对于同一个例子,我怎样才能用 func 委托替换动作委托 @Rock 您当前的示例不支持 Func 用例,但我添加了一个附加示例来返回触发回调的值。

以上是关于如何用Java获得数据库的返回值的主要内容,如果未能解决你的问题,请参考以下文章

c++如何用泛型控制返回值

如何用java编写函数?

如何用html编写的网页中显示java返回值

如何用java中 取到作为数据库主键的值,这个主键是通过序列的个变量

如何用批处理语句获取reg命令的返回值?

如何用java程序获得本机的端口号?