java中 String strurl; Connection conn; Statement stmt; ResultSet rs;是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 String strurl; Connection conn; Statement stmt; ResultSet rs;是啥意思相关的知识,希望对你有一定的参考价值。

String strurl 不知道是不是指连接数据库的url地址
Connection conn 指的是数据库连接对象
Statement 你可以把他理解是一个可以执行sql语句的对象
result 你执行sql语句后肯定会返回一个结果 这个结果就放在这里面..
再给你复制一段例子吧..
// 这里是sqlserver的例子
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//创建连接对象
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=test", "sa", "123");
//创建语句对象
Statement stm=con.createStatement();
//得到结果集
ResultSet rs= stm.executeQuery(" select * from users ");
Users user=new Users();
while(rs.next())
user.setUid(rs.getInt("uid"));
user.setUname(rs.getString("uname"));
user.setUpwd(rs.getString("upwd"));

rs.close();
stm.close();
con.close();
参考技术A Connection是用于将JAVA和数据库连接的类
Statement是一个接口,提供了向数据库发送执行语句和获取结果的方法
ResultSet是接口是用来创建存放从数据库里得到的结果的对象

正解
参考技术B String不用说吧,一个字符串变量
Connection是用于将JAVA和数据库连接的类
Statement是一个接口,提供了向数据库发送执行语句和获取结果的方法
ResultSet是接口是用来创建存放从数据库里得到的结果的对象
参考技术C 从连接数据库到与数据库交互,
String strurl 为连接数据库的地址
conn 连接数据库的对象
stmt 定义数据库的操作语句
rs 则返回查询数据库的结果集
参考技术D 这是数据库连接操作的变量,
strurl是数据库的url
conn是获得数据库驱动
stmt是数据库操作
rs是结果集

java - 从方法返回数组

【中文标题】java - 从方法返回数组【英文标题】:java - return array from method 【发布时间】:2014-12-14 16:00:36 【问题描述】:

我创建了这个 sn-p:

public static String[] get_data()

    conn = getInstance();
    String[] data_array = null;
    if(conn != null)
    
        Statement query;
        try 
        
            query = conn.createStatement();

            String sql = "SELECT data_x FROM table_x";
            ResultSet result = query.executeQuery(sql);

            result.next();
            int count = result.getInt("data_x");
            result.close();

            data_x_array = new String[count];

            for (int x = 1; x <= count; x++)
            
                String data_x = result.getString(x);
                data_x_array[x] = data_x;
            
         
        catch (SQLException e) 
        
            e.printStackTrace();
        
    
    return data_x_array;

我刚刚创建了一个类,将数据库中的数据收集到一个数组中。

现在我只想从这个方法返回数组。

但我得到的是:

data_array cannot be resolved to a variable

谁能帮帮我?

您好!

更新:

我把 sn-p 改成:

public static String[] get_data()

    conn = getInstance();
    String[] data_array = null;
    if(conn != null)
    
        Statement query;
        try 
        
            query = conn.createStatement();

            String sql = "SELECT data_x FROM table_x";
            ResultSet result = query.executeQuery(sql);

            result.next();
            int count = result.getInt("data_x");
            result.close();

            data_array = new String[count];

            for (int x = 1; x <= count; x++)
            
                String data_x = result.getString(x);
                data_x_array[x] = data_x;
            
         
        catch (SQLException e) 
        
            e.printStackTrace();
        
    
    return data_x_array;

当我只编译时:

Invalid value for getInt() - 'value_in_table'

有人知道吗?

您好!

【问题讨论】:

data_arrayreturn(data_array); 不在同一范围内 您声明了 data_array 但尝试使用 data_x_array 【参考方案1】:

还有一件事大家忘了提

String[] data_array = new String[999];
for (int x = 0; x <= 999; x++)

将抛出 ArrayIndexOutOfBoundsException。 可能的解决方案

String[] data_array = new String[999];
for (int x = 0; x < 999; x++)

【讨论】:

【参考方案2】:

您已在 while 循环内定义了变量,即它对 return 语句不可见。另外,您已将您的方法定义为static void,这意味着不需要返回值。请改用static String []

【讨论】:

更新了我的帖子,可以参考一下吗?【参考方案3】:

由于它在 while 循环块之外无法访问,因此 compile 抱怨同样的问题。 试试这个:

public static String[] get_data()

conn = getInstance();
String[] data_array = null;
if(conn != null)

    Statement query;
    try 
    
        query = conn.createStatement();

        String sql = "SELECT data_x FROM table_x";
        ResultSet result = query.executeQuery(sql);

        while (result.next()) 
        
            String data_x = result.getString("data_x");
            data_array = new String[999];
            for (int x = 0; x <= 999; x++)
            
                data_array[x] = data_x;
            
        
     
    catch (SQLException e) 
    
        e.printStackTrace();
    

return data_array;

【讨论】:

【参考方案4】:

String[] 的声明与 return 语句不在同一范围内。

你需要在作用域的开头声明它。

而且你需要把函数的头部改成:

public static String[] get_data()

【讨论】:

【参考方案5】:

这里有两点需要解决:

public static void get_data()

此方法被声明为不返回任何内容。将其更改为:

public static String[] get_data()

您的变量String[] data_array 是在while 循环中声明的,因此它只在那里为人所知。您的 return 语句在该循环之外,因此它无权访问它。

将变量移出循环:

String sql = "SELECT data_x FROM table_x";
ResultSet result = query.executeQuery(sql);
String[] data_array = new String[999];

请注意,您需要将声明和初始化移到while 循环之外,否则您将通过再次初始化来覆盖该数组先前存储的数据。另外请注意,您的for 循环无论如何都会覆盖当前数据……您应该考虑将行数据存储在另一个数组中,否则它将丢失。

【讨论】:

以上是关于java中 String strurl; Connection conn; Statement stmt; ResultSet rs;是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

Java中HTTP接口请求与HTTPS证书验证问题

从远程路径读取图片,进行base64转码

http基本get和post请求

java关于jdbc的insert语句问题?

如何将 JAVa中的 String类变量嵌入SQL查询语句中...?

数据库问题:啥是Connection String