entity bean的作用是将与数据库交互的过程封装成对象,在servelet编写的过程中,只需要会写java,不必考虑与数据库交互细节。

实体类:

基本与数据库的表相对应,表示一个实在的对象。

例子:User类:

成员变量:私有属性

方法实现的功能:获取属性(可自动生成)、修改属性(可自动生成)

 package entity;
public class User { //定义private属性。
private String username;
private String password;
private String realname;
private int userType;
private int sex; public User() {
super();
} //user构造函数,创建一个新user对象
public User(String username, String password, String realname, int userType,
int sex) {
super();
this.username = username;
this.password = password;
this.realname = realname;
this.userType = userType;
this.sex = sex;
} //获取属性
public String getUsername() {
return username;
} //修改属性
public void setUsername(String usrname) {
this.username = usrname;
} //获取属性
public String getPassword() {
return password;
} //修改属性
public void setPassword(String password) {
this.password = password;
} //获取属性
public String getRealname() {
return realname;
} //修改属性
public void setRealname(String realname) {
this.realname = realname;
} //获取属性
public int getUserType() {
return userType;
} //修改属性
public void setUserType(int userType) {
this.userType = userType;
} //获取属性
public int getSex() {
return sex;
} //修改属性
public void setSex(int sex) {
this.sex = sex;
} }

管理类:

成员变量: 主键-对象 对应的哈希表,表示一个结果集。

方法:每个方法与一个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类

 package entity;

 import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap; import db.DBBean; public class UserMgr { private HashMap<String, User> userList; public UserMgr() {
super();
} /**
* 得到所有用户的列表
*
* @return
*/ //查询:传入查询条件,返回一个对象结果集。(如查询所有用户)
public HashMap getUserList() {
HashMap userList = new HashMap();
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
User user = null;
try {
conn = DBBean.getConnection();
String sql = "select * from Table_user";
stmt = conn.createStatement();
rset = stmt.executeQuery(sql);
while (rset.next()) {
user = new User(rset.getString("username"), "888888",
rset.getString("realname"), rset.getInt("userType"),
rset.getInt("sex")); userList.put(rset.getString("username"), user);
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace(); } finally {
try {
rset.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return userList;
} //插入:传入user对象,插入user对象的所有信息。
//因为数据库中主键不能重复,因此可能插入失败。(必须为新用户)
public int addUser(User newUser) {
int result = 0; //
if (findUser(newUser)) {
result = 1; //
} else {
String sql = "insert into Table_user(username,password,realname,userType,sex)values('"
+ newUser.getUsername()
+ "','"
+ newUser.getPassword()
+ "','"
+ newUser.getRealname()
+ "','"
+ newUser.getUserType() + "','" + newUser.getSex() + "')"; if (DBBean.update(sql)) {
result = 2; //
}
}
return result;
} public boolean findUser(User user) {
boolean result = false;
String sql = "select * from Table_user where username=('"
+ user.getUsername() + "')";
result = DBBean.hasRecord(sql);
return result;
} //删除:传入删除条件,传出删除是否成功信息
public boolean deleteUser(String username) {
boolean result = false;
String sql = "delete from Table_user where username=('" + username
+ "')";
result = DBBean.delete(sql);
System.out.println("delete user:" + sql);
return result;
} //查询:如果是通过主键找唯一对象,则返回对象。(如通过user_id找唯一用户)
//判断:本函数也可用来判断是否已经存在此对象。
public User getUser(String username) {
String sql = "select * from Table_user where username=('" + username
+ "')";
User user = null;
Connection conn = null;
Statement stmt = null;
ResultSet rset = null; try {
conn = DBBean.getConnection();
stmt = conn.createStatement();
rset = stmt.executeQuery(sql);
int i = 0;
while (rset.next()) {
user = new User(rset.getString("username"),
rset.getString("password"), rset.getString("realname"),
rset.getInt("userType"), rset.getInt("sex")); } } catch (SQLException e) {
e.printStackTrace(); } finally {
DBBean.clean(conn, stmt, rset);
}
return user;
} public int editUser(User user) {
int result = 1;
String sql = "update Table_user set username ='" + user.getUsername()
+ "',realname='" + user.getRealname() + "',userType='"
+ user.getUserType() + "' " + "where username=('"
+ user.getUsername() + "')";
//System.out.println("edit user:" + sql);
if (DBBean.update(sql)) {
result = 2;
}
return result;
} //判断:结果集是否为空,从而判断是否满足给定条件。
public int verifyUser(String username, String password) {
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
int result = -1;// 用户名密码不对
try {
conn = DBBean.getConnection();
String sql = "select * from table_user where username='" + username
+ "' and password='" + password + "'";
stmt = conn.createStatement();
rset = stmt.executeQuery(sql);
if (rset.next()) {
result = rset.getInt("userType");
System.out.println("user type: " + result);
}
} catch (SQLException e) {
System.out.println("SQLException inside verify user");
e.printStackTrace(); } finally {
try {
rset.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
} }

最新文章

  1. WinForm任务栏最小化
  2. IIS发布文件出现:未能加载文件或程序集“xxxx”或它的某一个依赖项。试图加载格式不正确的程序。
  3. OpenResty(nginx+lua) 入门
  4. SQL Server 诊断查询-(5)
  5. c#注册表对象映射
  6. 测试V模型
  7. javascript常用方法整理--数组篇
  8. OpenJudge/Poj 1915 Knight Moves
  9. 01_JavaMail_01_邮件服务器简述
  10. Linux下VNC的安装和开机启动
  11. 查看端口号他所占用的exe应用程序
  12. Python正则表达式指南(转)
  13. 01.python基础知识_01
  14. HTML知识点之表示强调的主要元素
  15. Golang 通用连接池库 Golang-Pool
  16. C++20 要来了!
  17. robot framework类型强制转换
  18. 1-JRE与JDK等知识
  19. pandas.DataFrame 插入列和行
  20. Filters: before, after, around, 常用到before_action,执行顺序是从外到内。

热门文章

  1. Keyboarding
  2. C/C++、Qt4实现FTP客户端(有无界面版)
  3. 怎么删除json 键值对
  4. php GD 和图像处理函数, 用 STHUPO.TTF 字体向图像写入文本
  5. nginx+lua访问流量实时上报kafka
  6. 【解决方案】文件上具有 Web 标记,请删除 Web 标记
  7. IOWebSocketChannel.connect handle errors
  8. 填坑——audio不能正常播放,控制台报错 Uncaught (in promise) DOMException
  9. 如何免费试用SAP的Fiori应用
  10. ABAP和Java里的单例模式攻击