您的位置:首页 > 编程语言 > Java开发

java连接MYSQL及查询数据记录

2016-03-21 00:00 856 查看
摘要: 数据库连接,rs.next()问题。

public DBConnection{
private static final String DB_DRIVER="com.mysql.jdbc.Driver";
private static final String DB_URL="jdbc.mysql://localhost:3306/demo";
private static final String DB_USERNAME="root";
private static final String DB_PASSWORD="***";
private static Connection conn=null;

public static Connection getDBConnection(){
try{
//注册数据库驱动
Class.forName(DB_DRIVER);
conn=DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
system.out.println("连接数据库成功");
}catch(ClassNotFoundException|SQLException e){
system.out.println("连接数据库失败");
e.printStackTrace();
}finally{
conn,close();
}
return conn;
}
}

上面是连接数据库的Java代码。

public DBUtil{
Connection conn=null;
Preparedstatement ps=null;
ResultSet rs=null;  //存放结果集

//查询用户信息
public static List<User> queryUser(){
User user=null;
List<User> userList=new ArryList<User>();
conn=DBConnection.getDBConection();
try{
String sql="select * from user_info";
ps=conn.preparedStatement(sql);    //一般用PreparedStatement而不用Statement,preparestatement处理速度快
rs.executeQuery();
// system.out.println(rs.next);  //判断rs.next();
while(rs.next()){
user=new User();
user.setId(rs.getInt(1));
user.setUserName(rs.getString(2));
user.setPassWord(rs.getString(3));
userList.add(user);
}
return userList;
}catch(SQLException e){
system.out.println("查询用户失败");
e.printStackTrace();
}finally{
rs.close();
ps.close();
conn.close();
}
}
}

上段代码是查询用户信息,如果数据库中只有一条数据记录,我们先判断了rs.next()是否为真。那么代码就不会执行while循环内的语句,这是因为在判断rs.next()时候,我们就取出了第一条数据,因为数据库中只有一条数据,所以while中的判断为false。

public User{
private Int id;
private String username;
private String password;

public void setId(int id){
this.id=id;
}
public Int getId(){
return id;
}
public void setUserName(String username){
this.username=username;
}
public String getUserName(){
return username;
}
public void setPassWord(){
this.password=password;
}
public String getPassWord(){
return password;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: