Java Web开发中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)语句:

JDBCResultSet rset = stmt.executeQuery(sql);

1、传入查询条件,返回一个对象结果集。(如查询所有用户)

2、如果是通过主键找唯一对象,则返回对象。(如通过user_id找唯一用户)

本函数也可用来判断是否已经存在此对象。

判断:JDBCbool result = DBBean.hasRecord(sql);

3、判断结果集是否为空,从而判断是否满足给定条件。

 

插入(insert)语句:

JDBCbool success=DBBean.update(sql);

1、传入user对象,插入user对象的所有信息。

因为数据库中主键不能重复,因此可能插入失败。(必须为新用户)

 

更新(update)语句:

JDBCbool success = DBBean.update(sql);

1、传入user对象,传出是否更新成功信息。

要更新记录必须在数据库有原始记录,否则会更新失败。

 

删除(delete)语句:

JDBCbool 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


你可能感兴趣的:(java)