你的位置:首页 > Java教程

[Java教程]javaWeb开发中entityBean的习惯用法


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 }