0

我已经使用get和set方法在java中编写了一个程序....但它没有给我所需的输出它告诉insert finally块我的代码在下面给出..在eclipse的控制台中它只显示连接但没有值显示的表格

      package com.glomindz.mercuri.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.glomindz.mercuri.pojo.User;
import com.glomindz.mercuri.util.MySingleTon;

  public class UserServicesDAO {

private Connection connection;

public UserServicesDAO() {
    // connection = new MySingleTon().getConnection();
    connection = MySingleTon.getInstance().getConnection();

}

public List<User> get_all_data() {
    List<User> usersList = new ArrayList<User>();
     String query = "SELECT * FROM spl_user_master";
    try {
         PreparedStatement stmt = connection.prepareStatement(query);
         boolean execute = stmt.execute();
        System.out.println(execute);
        ResultSet resultSet = stmt.getResultSet();
        System.out.println(resultSet.getMetaData());
        while (resultSet.next()) {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setName(resultSet.getString("name"));
            user.setEmail(resultSet.getString("email"));
            user.setMobile(resultSet.getString("mobile"));
            user.setPassword(resultSet.getString("password"));
            user.setRole(resultSet.getString("role"));
            user.setStatus(resultSet.getString("status"));
            user.setLast_udpate(resultSet.getString("last_update"));
            usersList.add(user);
        }
    }
    } 

    public List<User> set_all_data() {
        List<User> usersList = new ArrayList<User>(); 
        try {
             PreparedStatement stmt = connection.prepareStatement("INSERT INTO spl_user_master(name,email,mobile,password,role,status,last_update)VALUES(?,?,?,?,?,?,?)");
             stmt.setString(1, "Charlie Sheen");
             stmt.setString(2, "help@glomindz.com");
             stmt.setString(3, "9554087107");
             stmt.setString(4, "cbf91a71c21d5ec348b0c749b2f0055k");
             stmt.setString(5, "user");
             stmt.setString(6, "3");
             stmt.setString(7, "2013-07-02 22:05:16");


             boolean execute = stmt.execute();
            System.out.println(execute);
            stmt.getResultSet();

        } 

        catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    return usersList;
        }


       public static void main(String[] args) {
    UserServicesDAO userdao = new UserServicesDAO();
    List<User> data = userdao.get_all_data();
    List<User> data1 = userdao.set_all_data();
    System.out.println(data);
    System.out.println(data1);
    System.exit(0);
                }
                   }

代码有什么问题请指定

4

5 回答 5

4

在java中,tryblock后面必须跟acatchfinallyblock。在您的代码中,您有以下 try 块,后面没有 catch/finally 块。

  try {
         PreparedStatement stmt = connection.prepareStatement(query);
         boolean execute = stmt.execute();
        System.out.println(execute);
        ResultSet resultSet = stmt.getResultSet();
        System.out.println(resultSet.getMetaData());
        while (resultSet.next()) {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setName(resultSet.getString("name"));
            user.setEmail(resultSet.getString("email"));
            user.setMobile(resultSet.getString("mobile"));
            user.setPassword(resultSet.getString("password"));
            user.setRole(resultSet.getString("role"));
            user.setStatus(resultSet.getString("status"));
            user.setLast_udpate(resultSet.getString("last_update"));
            usersList.add(user);
        }
    } // missing catch/finally statements

您可以添加一个 catch 块来处理上述 try 块代码中发生的任何异常,或者放置一个 finally 块。try 块的一般结构是

try {
    code
}
catch and finally blocks . . .

在此处了解有关 java 异常处理的更多信息:http: //docs.oracle.com/javase/tutorial/essential/exceptions/handling.html

于 2013-07-18T08:37:53.280 回答
1

如果要捕获异常,则需要一个 catch 块。

try {
....
} catch (Exception e) {
....
}

如果您使用 try 和 finally 组合,请注意 try允许finally

于 2013-07-18T08:53:41.743 回答
1

Java 中不能只有 try{ }。try { } 块必须后跟 catch{ } 或 finally{ }。

所以在这里你应该使用catch{ }orfinnaly{ }来进行代码使用。

try{
....
....
}finally{
//cleanup
}

try{
....
....
}catch(Exception e)
{
....
....
}

您也可以参考: http ://docs.oracle.com/javase/tutorial/essential/exceptions/handling.html

于 2013-07-18T08:42:50.593 回答
0

您没有分配 stmt.getResultSet(); 对任何东西!UserList 是一个空列表,因为它没有添加任何内容。您需要添加 stmt.getResultSet(); 的结果 到列表中。

对于 finally:finally 中的代码块肯定会执行 - 但不确定何时执行!finally 用于关闭数据库连接或其他清理工作。或者更好的是,根本不使用它。http://my.safaribooksonline.com/book/programming/java/9780137150021/creating-and-destroying-objects/ch02lev1sec7

使用 catch 块捕获错误

于 2013-07-18T08:37:57.113 回答
0

你不能只有一个 try 块。要拥有一个 try 块,您必须至少有一个 catch 块或一个 finally 块

于 2013-07-18T08:38:03.197 回答