entity bean的作用是将与数据库交互的过程封装成对象,在servelet编写的过程中,只需要会写Java,不必考虑与数据库交互细节。
实体类:
基本与数据库的表相对应,表示一个实在的对象。
例子:User类:
成员变量:私有属性
方法实现的功能:获取属性(可自动生成)、修改属性(可自动生成)
1 package entity; 2 public class User { 3 4 //定义private属性。 5 private String username; 6 private String password; 7 private String realname; 8 private int userType; 9 private int sex;10 11 public User() {12 super();13 }14 15 //user构造函数,创建一个新user对象16 public User(String username, String password, String realname, int userType,17 int sex) {18 super();19 this.username = username;20 this.password = password;21 this.realname = realname;22 this.userType = userType;23 this.sex = sex;24 }25 26 //获取属性27 public String getUsername() {28 return username;29 }30 31 //修改属性32 public void setUsername(String usrname) {33 this.username = usrname;34 }35 36 //获取属性37 public String getPassword() {38 return password;39 }40 41 //修改属性42 public void setPassword(String password) {43 this.password = password;44 }45 46 //获取属性47 public String getRealname() {48 return realname;49 }50 51 52 //修改属性53 public void setRealname(String realname) {54 this.realname = realname;55 }56 57 //获取属性58 public int getUserType() {59 return userType;60 }61 62 //修改属性63 public void setUserType(int userType) {64 this.userType = userType;65 }66 67 //获取属性68 public int getSex() {69 return sex;70 }71 72 //修改属性73 public void setSex(int sex) {74 this.sex = sex;75 }76 77 }
成员变量: 主键-对象 对应的哈希表,表示一个结果集。
方法:每个方法与一个sql语句相对应
因此new一个管理类的对象,可用于得到某条查询的结果集。
常见方法:
查询(select)语句:
JDBC:ResultSet rset = stmt.executeQuery(sql);
1、传入查询条件,返回一个对象结果集。(如查询所有用户)
2、如果是通过主键找唯一对象,则返回对象。(如通过user_id找唯一用户)
本函数也可用来判断是否已经存在此对象。
判断:JDBC:bool result = DBBean.hasRecord(sql);
3、判断结果集是否为空,从而判断是否满足给定条件。
插入(insert)语句:
JDBC:bool success=DBBean.update(sql);
1、传入user对象,插入user对象的所有信息。
因为数据库中主键不能重复,因此可能插入失败。(必须为新用户)
更新(update)语句:
JDBC:bool success = DBBean.update(sql);
1、传入user对象,传出是否更新成功信息。
要更新记录必须在数据库有原始记录,否则会更新失败。
删除(delete)语句:
JDBC:bool success = DBBean.delete(sql);
1、传入删除条件,传出删除是否成功信息
例子:UserMgr类
1 package entity; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 import java.util.HashMap; 8 9 import db.DBBean; 10 11 public class UserMgr { 12 13 private HashMap<String, User> userList; 14 15 public UserMgr() { 16 super(); 17 } 18 19 /** 20 * 得到所有用户的列表 21 * 22 * @return 23 */ 24 25 26 //查询:传入查询条件,返回一个对象结果集。(如查询所有用户) 27 public HashMap getUserList() { 28 HashMap userList = new HashMap(); 29 Connection conn = null; 30 Statement stmt = null; 31 ResultSet rset = null; 32 User user = null; 33 try { 34 conn = DBBean.getConnection(); 35 String sql = "select * from Table_user"; 36 stmt = conn.createStatement(); 37 rset = stmt.executeQuery(sql); 38 while (rset.next()) { 39 user = new User(rset.getString("username"), "888888", 40 rset.getString("realname"), rset.getInt("userType"), 41 rset.getInt("sex")); 42 43 userList.put(rset.getString("username"), user); 44 } 45 46 } catch (SQLException e) { 47 // TODO Auto-generated catch block 48 e.printStackTrace(); 49 50 } finally { 51 try { 52 rset.close(); 53 stmt.close(); 54 conn.close(); 55 } catch (Exception e) { 56 e.printStackTrace(); 57 } 58 } 59 return userList; 60 } 61 62 63 64 65 66 //插入:传入user对象,插入user对象的所有信息。 67 //因为数据库中主键不能重复,因此可能插入失败。(必须为新用户) 68 public int addUser(User newUser) { 69 int result = 0; // 70 if (findUser(newUser)) { 71 result = 1; // 72 } else { 73 String sql = "insert into Table_user(username,password,realname,userType,sex)values('" 74 + newUser.getUsername() 75 + "','" 76 + newUser.getPassword() 77 + "','" 78 + newUser.getRealname() 79 + "','" 80 + newUser.getUserType() + "','" + newUser.getSex() + "')"; 81 82 if (DBBean.update(sql)) { 83 result = 2; // 84 } 85 } 86 return result; 87 } 88 89 90 91 public boolean findUser(User user) { 92 boolean result = false; 93 String sql = "select * from Table_user where username=('" 94 + user.getUsername() + "')"; 95 result = DBBean.hasRecord(sql); 96 return result; 97 } 98 99 100 //删除:传入删除条件,传出删除是否成功信息101 public boolean deleteUser(String username) {102 boolean result = false;103 String sql = "delete from Table_user where username=('" + username104 + "')";105 result = DBBean.delete(sql);106 System.out.println("delete user:" + sql);107 return result;108 }109 110 111 //查询:如果是通过主键找唯一对象,则返回对象。(如通过user_id找唯一用户)112 //判断:本函数也可用来判断是否已经存在此对象。113 public User getUser(String username) {114 String sql = "select * from Table_user where username=('" + username115 + "')";116 User user = null;117 Connection conn = null;118 Statement stmt = null;119 ResultSet rset = null;120 121 try {122 conn = DBBean.getConnection();123 stmt = conn.createStatement();124 rset = stmt.executeQuery(sql);125 int i = 0;126 while (rset.next()) {127 user = new User(rset.getString("username"),128 rset.getString("password"), rset.getString("realname"),129 rset.getInt("userType"), rset.getInt("sex"));130 131 }132 133 } catch (SQLException e) {134 e.printStackTrace();135 136 } finally {137 DBBean.clean(conn, stmt, rset);138 }139 return user;140 }141 142 143 144 145 public int editUser(User user) {146 int result = 1;147 String sql = "update Table_user set username ='" + user.getUsername()148 + "',realname='" + user.getRealname() + "',userType='"149 + user.getUserType() + "' " + "where username=('"150 + user.getUsername() + "')";151 //System.out.println("edit user:" + sql);152 if (DBBean.update(sql)) {153 result = 2; 154 }155 return result;156 }157 158 159 //判断:结果集是否为空,从而判断是否满足给定条件。160 public int verifyUser(String username, String password) {161 Connection conn = null;162 Statement stmt = null;163 ResultSet rset = null;164 int result = -1;// 用户名密码不对165 try {166 conn = DBBean.getConnection();167 String sql = "select * from table_user where username='" + username168 + "' and password='" + password + "'";169 stmt = conn.createStatement();170 rset = stmt.executeQuery(sql);171 if (rset.next()) {172 result = rset.getInt("userType");173 System.out.println("user type: " + result);174 }175 } catch (SQLException e) {176 System.out.println("SQLException inside verify user");177 e.printStackTrace();178 179 } finally {180 try {181 rset.close();182 stmt.close();183 conn.close();184 } catch (Exception e) {185 e.printStackTrace();186 }187 }188 return result;189 }190 191 }
PHP教程程序员之家编程图书
原文地址:http://www.cnblogs.com/susuguo/p/5078273.html