插入“Finally”以完成代码

时间:2013-07-18 08:35:46

标签: java

我在java中使用get和set方法编写了一个程序....但它没有给我所需的输出它告诉插入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);
                }
                   }

代码plz指定错误

5 个答案:

答案 0 :(得分:4)

在java中,try块必须遵循catchfinally块。在你的代码中,你有下面的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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

你不能只用Java尝试{}。 try {} block必须后跟catch {}或者最后{}。

因此,您应该使用catch{ }finnaly{ }来代码使用。

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

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

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

答案 3 :(得分:1)

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

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

如果您使用try和finally组合,请注意,尝试只有 以允许最终

答案 4 :(得分:0)

您没有指定stmt.getResultSet();什么! UserList是一个空列表,因为没有添加任何内容。您需要添加stmt.getResultSet()的结果;列表。

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

使用catch块来捕获错误