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代码。
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。
mysql
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; } }