javaWeb开发中entityBean的习惯用法
2015-12-26 16:05
483 查看
entity bean的作用是将与数据库交互的过程封装成对象,在servelet编写的过程中,只需要会写java,不必考虑与数据库交互细节。
[b]实体类:[/b]
基本与数据库的表相对应,表示一个实在的对象。
例子:User类:
成员变量:私有属性
方法实现的功能:获取属性(可自动生成)、修改属性(可自动生成)
方法:每个方法与一个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类
[b]实体类:[/b]
基本与数据库的表相对应,表示一个实在的对象。
例子: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; } }
相关文章推荐
- Java实体类的作用
- Spring idref标签和ref的区别
- Java中的自动拆箱装箱(Autoboxing&Unboxing)
- java多线程下载实例详解
- StandardServer.await: create[8005]java.net.BindException: Address already in use: JVM_Bind
- Java集合操作
- Kafka和Spark Streaming Java版本集成并将数据实时写入HBase及代码
- Java 多线程(2)-Executor
- java文件上传和下载 如何获取文件名称
- 关于Eclipse中main(String[] args)中参数配置的问题
- 《Java Web程序开发入门》知识总结(二)
- [置顶]关于java中根据身份证求生日和年龄的问题
- [置顶]java开发之基础篇2
- JAVA语言概述
- Eclipse 常用快捷键 (动画讲解)(转载)
- eclipse安装svn插件,在输入url后,一直卡在in progress界面不懂。
- java基础笔记
- java学习之部分笔记2
- java学习之部分笔记
- java学习之i/o