一个简单的Java问题,关于List和ArrayList的。在线等待各位高手指点。

wangsheng_ted 2008-09-07 02:56:59
在Eclipse中总提示getList()方法错误。

Multiple markers at this line
- Syntax error on token "List", @ expected
- Syntax error, insert "EnumBody" to complete BlockStatement
- Syntax error, insert "enum Identifier" to complete EnumHeaderName
- getList cannot be resolved to a type


我想实现返回一个List数组的结果集。Conn类和ShowItems类的代码如下。




import java.sql.*; //导入数据库操作的类

public class Conn //构造方法,初始化
{
private Connection conn; //连接对象
private String accessdriver; //保存Access驱动程序字符串
private String accessURL; //保存Access连接字符串

public Conn()
{
//Access驱动程序
accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接字符串
accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:\\Projacts\\GQCode\\GQCode\\WebContent\\WEB-INF\\zhcx.accdb;Uid=;Pwd=;";
conn = null;
}

//该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public Connection getConnToAccess(){
try{

Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请与管理员联系");
System.err.println(e.getMessage());
}
return conn;
}

//关闭数据库连接
public void closeconn()
{
try{
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}





import java.util.*;
import java.sql.*;

public class ShowItems
{
public ShowItems()
{
ArrayList list = new ArrayList();
list = null;
try
{
Conn access = new Conn();
Statement stmt = access.getConnToAccess().createStatement();
String sql = "select * from gqdm";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
list.add(rs.getRow());
}
rs.close();
stmt.close();
access.closeconn();
}catch(Exception e){
System.out.println("操作数据库出错,请与管理员联系");
System.err.println(e.getMessage());
}
public List getList()
{
return list;
}
}
}
...全文
347 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsheng_ted 2008-09-07
  • 打赏
  • 举报
回复
感谢大家的帮忙,我刚开始写程序,很多地方都弄不清楚,以后还请大家多帮忙。谢谢!
jiangfeng08 2008-09-07
  • 打赏
  • 举报
回复
不好意思刚刚看了前面几位仁兄的的意见,发现确实位置也有问题
import java.util.*;
import java.sql.*;

public class ShowItems
{
List list;
public ShowItems()
{
list = new ArrayList();
//list = null; 这行要去掉,刚才你再内存创建了一个空间,现在你置为空,就相当于垃圾收集机制一样,所以你后面就不能用list这个对象了,除 //非重新创建一个内存空间
try
{
Conn access = new Conn();
Statement stmt = access.getConnToAccess().createStatement();
String sql = "select * from gqdm";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
list.add(rs.getRow());
}
rs.close();
stmt.close();
access.closeconn();
}catch(Exception e){
System.out.println("操作数据库出错,请与管理员联系");
System.err.println(e.getMessage());
}

}
public List getList() {
return list;
}
}
jiangfeng08 2008-09-07
  • 打赏
  • 举报
回复
List是接口,List特性就是有序,会确保以一定的顺序保存元素.
ArrayList是它的实现类,是一个用数组实现的List.
一般会这么用:List list = new ArrayList();

另外你的代码
import java.util.*;
import java.sql.*;

public class ShowItems
{
public ShowItems()
{
ArrayList list = new ArrayList();
list = null;
try
{
Conn access = new Conn();
Statement stmt = access.getConnToAccess().createStatement();
String sql = "select * from gqdm";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
list.add(rs.getRow());
}
rs.close();
stmt.close();
access.closeconn();
}catch(Exception e){
System.out.println("操作数据库出错,请与管理员联系");
System.err.println(e.getMessage());
}
public List getList()
{
return list;
}
}
}

应该改为:
import java.util.*;
import java.sql.*;

public class ShowItems
{
public ShowItems()
{
ArrayList list = new ArrayList();//这里你也可以List list = new ArrayList();
//list = null; 这行要去掉,刚才你再内存创建了一个空间,现在你置为空,就相当于垃圾收集机制一样,所以你后面就不能用list这个对象了,除 //非重新创建一个内存空间
try
{
Conn access = new Conn();
Statement stmt = access.getConnToAccess().createStatement();
String sql = "select * from gqdm";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
list.add(rs.getRow());
}
rs.close();
stmt.close();
access.closeconn();
}catch(Exception e){
System.out.println("操作数据库出错,请与管理员联系");
System.err.println(e.getMessage());
}
public List getList()
{
return list;
}
}
}
老紫竹 2008-09-07
  • 打赏
  • 举报
回复
ArrayList list = new ArrayList();
list = null;
你不觉得很有趣吗?
这个也应该放到外面
public class ShowItems
{
ArrayList list = new ArrayList();
public ShowItems()
{
}
public List getList() {
}
}


老紫竹 2008-09-07
  • 打赏
  • 举报
回复
public ShowItems(){
public List getList()

你写错了位置了。呵呵,这个方法应该在构造器的外面。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧