完成目标:在页面显示数据库的信息,并且完成对数据库的增删改查,并且增加分页功能。在页面实现图片或文本的下载。
1.增删改查操作
User实体类代码:
package com.jredu.web.entity;
public class User {
private int id;
private String userName;
private String pwd;
private String displayName;
public User() {
};
public User(int id, String userName, String pwd, String displayName) {
super();
this.id = id;
this.userName = userName;
this.pwd = pwd;
this.displayName = displayName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
}
UserDao代码:
package com.jredu.web.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.jredu.web.db.DBConnection;
import com.jredu.web.entity.User;
import java.sql.*;
public class UserDao {
public List<User> selectAll() {
Connection con = DBConnection.getConnection();
Statement stmt;
List<User> list = new ArrayList<User>();
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while(rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("user_name"));
user.setPwd(rs.getString("pwd"));
user.setDisplayName(rs.getString("display_name"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBConnection.closeConnection();
}
return list;
}
public List<User> selectPage(int from,int rows) {
Connection con = DBConnection.getConnection();
Statement stmt;
List<User> list = new ArrayList<User>();
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users LIMIT "+from+","+rows);
while(rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("user_name"));
user.setPwd(rs.getString("pwd"));
user.setDisplayName(rs.getString("display_name"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBConnection.closeConnection();
}
return list;
}
// " where user_name = '' and pwd = '' "
public User selectWhere(String whereOption) {
Connection con = DBConnection.getConnection();
Statement stmt;
User user = null;
try {
stmt = con.createStatement();
String sql = "SELECT * FROM users ";
if(!whereOption.equals("")) {
sql += whereOption;
}
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()) {
user = new User();
user.setUserName(rs.getString("user_name"));
user.setPwd(rs.getString("pwd"));
user.setDisplayName(rs.getString("display_name"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBConnection.closeConnection();
}
return user;
}
public int selectCount() {
Connection con = DBConnection.getConnection();
Statement stmt;
int count = 0;
try {
stmt = con.createStatement();
String sql = "SELECT count(1) as count FROM users ";
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()) {
count = rs.getInt("count");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBConnection.closeConnection();
}
return count;
}
public int insert(User user){
Connection con = DBConnection.getConnection();
PreparedStatement pstmt = null;
int count =0;
String sql = " insert into users(user_name,pwd,display_name) values(?,?,?)";
try {
pstmt =con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPwd());
pstmt.setString(3, user.getDisplayName());
count = pstmt.executeUpdate();
/*if(count==0){
throw new DataAlreadyExistException();
}*/
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBConnection.closeConnection();
}
return count;
}
public int update