我在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指定错误
答案 0 :(得分:4)
在java中,try
块必须遵循catch
或finally
块。在你的代码中,你有下面的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块来捕获错误