Java 如何从方法返回多个变量?
这里我从数据库中获取数据,并将这些数据放入不同的ArrayList中。我需要将所有这些数组列表传递到jsp页面。如何传递多个数组列表,这是我的代码Java 如何从方法返回多个变量?,java,jsp,arraylist,methods,Java,Jsp,Arraylist,Methods,这里我从数据库中获取数据,并将这些数据放入不同的ArrayList中。我需要将所有这些数组列表传递到jsp页面。如何传递多个数组列表,这是我的代码 package ConnectionPack; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Connection; import java.util.ArrayList; import com.mysql.jdbc.Statement
package ConnectionPack;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
import java.util.ArrayList;
import com.mysql.jdbc.Statement;
public class DBConnection {
String DB_URL="jdbc:mysql://localhost:3306/bbc";
String DB_Username="root";
String DB_Password="";
String sql ="select * from news";
Connection con = null;
ArrayList<String> para=new ArrayList<String>();
ArrayList<String> link=new ArrayList<String>();
ArrayList<Integer> image=new ArrayList<Integer>();
public ArrayList data(){
ArrayList<String> li=new ArrayList<String>();
ArrayList<String> li1=new ArrayList<String>();
ArrayList<String> li2=new ArrayList<String>();
ArrayList<Integer> li3=new ArrayList<Integer>();
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(DB_URL,DB_Username,DB_Password);
Statement statement = (Statement) con.createStatement();
ResultSet resultset = statement.executeQuery(sql);
while(resultset.next()){
String headdata = resultset.getString("Title");
li.add(headdata);
String paradata = resultset.getString("Description");
li1.add(paradata);
String linkdata = resultset.getString("Link");
li2.add(linkdata);
int imagedata = resultset.getInt("id");
li3.add(imagedata);
}
}catch(Exception e){
e.printStackTrace();
}
return li;
}
//close the connection
}
包连接包;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.Connection;
导入java.util.ArrayList;
导入com.mysql.jdbc.Statement;
公共类数据库连接{
String DB_URL=“jdbc:mysql://localhost:3306/bbc";
字符串DB_Username=“root”;
字符串DB_Password=“”;
String sql=“从新闻中选择*”;
连接con=null;
ArrayList para=新的ArrayList();
ArrayList link=新的ArrayList();
ArrayList image=新的ArrayList();
公共ArrayList数据(){
ArrayList li=新的ArrayList();
ArrayList li1=新的ArrayList();
ArrayList li2=新的ArrayList();
ArrayList li3=新的ArrayList();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
con=DriverManager.getConnection(DB_URL、DB_用户名、DB_密码);
语句=(语句)con.createStatement();
ResultSet ResultSet=statement.executeQuery(sql);
while(resultset.next()){
String headdata=resultset.getString(“Title”);
li.添加(标题数据);
字符串paradata=resultset.getString(“说明”);
li1.添加(paradata);
String linkdata=resultset.getString(“链接”);
li2.添加(linkdata);
int imagedata=resultset.getInt(“id”);
li3.添加(图像数据);
}
}捕获(例外e){
e、 printStackTrace();
}
返回李;
}
//关闭连接
}
我需要将这个'li'、'li1'、'li2'、'li3'传递到JSP页面,我该怎么做?在我看来,您需要传回一个新闻列表,例如定义一个名为
news
的类(包含您的标题、id等)并返回list
请注意,这在返回(比如)字符串列表时强制了某种类型安全性。您可以更进一步,返回一个新闻列表
(它本身包含一个列表
,并且能够迭代这个渲染,或者您需要的任何其他功能?)
不要羞于创建这样的对象。它们为您提供了类型安全性以及封装行为和内容的能力。您必须传递的是一个包含多个对象的列表。列表不多您可以使用ArrayList的ArrayList、ArrayList的数组、ArrayList的任何集合、您自己的包含列表的数据对象类……或者为什么不尝试创建一个数据结构来实际建模您正在传递的内容:创建一个包含标题、说明、,链接和id并传递这些对象的列表。@OHGODSPIDERS正好找到了它。最好是创建一个数据结构。这将使您对代码的意图更加清晰,以供将来可能阅读它的任何人,甚至在远离它几个月后的您自己。它还将使进一步的代码生成更容易处理