一.JavaBean 概述
1.JavaBean 是一种使用java语言写成的可重用组件。从某种程度上来说,它就是符合某些命名方法或者设计规范的特殊的java类,用以复杂的计算等等。

2.JavaBean的常用属性分为:

1)简单属性:简单属性通常为伴随着一对get/set方法的变量,而且属性名称对应了方法的名称。

2)索引属性:索引属性与简单属性类似,但返回的是数组的值。

3)绑定属性:绑定属性用于通知监听器某个JavaBean组件的属性发生了变化,每当属性变化时,会触发一个PropertyChange时间通知其他对象。

4)约束属性:约束属性与绑定属性类似,但是此时属性值的变化实现要被监听器验证之后,才会发生作用,即当某个属性值发生 变化时,与这个属性值保持连接的某个java对象可以否决该属性的变化,并且抛出异常,PropertyVetoException异常用来否决属性值的变化。

3.JavaBean通常具备的三个主要特征:

1)没有参数的构造函数

2)私有的属性

3)操作属性值的get/set方法

二.一个简单的JavaBean实例

JavaBean:StudentInfoBean

public class StudentInfoBean { /* * 学号 */ public int stuID; /* * 学生姓名 */ public String stuName; /* * 联系电话 */ public String telephone; /* * 设置学号 */ public void setStuID(int id) { this.stuID = id; } /* * 获取学号 */ public int getStuID() { return this.stuID; } /* * 设置学生姓名 */ public void setStuName(String name) { this.stuName = name; } /* * 获取学生姓名 */ public String getStuName() { return this.stuName; } /* * 设置联系电话 */ public void setTelephone(String telephone) { this.telephone = telephone; } /* * 获取联系电话 */ public String getTelephone() { return this.telephone; } }

下面来写jsp页面

<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%> <%@ page import="java.util.*"%> <jsp:useBean id="student" scope="page" class="com.jspKongfu.ch07.StudentInfoBean"/> <jsp:setProperty name="student" property="stuID" value="2008001"/> <jsp:setProperty name="student" property="stuName" value="宋文"/> <jsp:setProperty name="student" property="telephone" value="13501010202"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> 学生信息 </title> </head> <body> <center> <jsp:getProperty name="student" property="stuName"/>同学!欢迎你!<br><br> 您的基本信息如下:<br> 学号:<jsp:getProperty name="student" property="stuID"/><br> 姓名:<jsp:getProperty name="student" property="stuName"/><br> 电话:<jsp:getProperty name="student" property="telephone"/><br> </center> </body> </html>

三.一个数据库处理的JavaBean源码

//引入java.sql包 import java.sql.*; public class DatabaseBean { /* * 连接对象 */ public Connection connection; /* * sql语句 */ public String sqlStr; /* * 查询条件 */ public String params[]; /* * 查询结果 */ public ResultSet result; /* * 设置连接 */ public void setConnection(String driverName, String jdbcUrl, String userName, String password) throws Exception { //定义一个临时的连接对象,暂存中间值 Connection tempConnection; //注册JDBC驱动程序 Class.forName(driverName); tempConnection = DriverManager.getConnection(jdbcUrl, userName, password); tempConnection.setAutoCommit(false); this.connection = tempConnection; } /* * 获取连接 */ public Connection getConnection() { return this.connection; } /* * 设置sql语句 */ public void setSqlStr(String sql) { this.sqlStr = sql; } /* * 获取sql语句 */ public String getSqlStr() { return this.sqlStr; } /* * 设置查询条件 */ public void setParams(String[] param) { this.params = param; } /* * 获取查询条件 */ public String[] getParams() { return this.params; } /* * 获取查询结果 */ public ResultSet getResult() { try { PreparedStatement ps = connection.prepareStatement(sqlStr, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); if(params != null) { for(int i = 0; i < params.length; i++) { ps.setString(i + 1, params[i]); } } //执行查询操作,并将结果返回 result = ps.executeQuery(); } catch(Exception ex) { System.out.println(ex); } return result; } /* * 创建新表 */ public void createTable() throws SQLException { try { PreparedStatement ps = connection.prepareStatement(sqlStr); //执行创建表的操作 ps.executeUpdate(); //关闭连接 ps.close(); connection.commit(); } catch(Exception ex) { System.out.println(ex); //若事务失败,则回滚 connection.rollback(); } } /* * 新增数据记录 */ public void insertData() throws SQLException { try { PreparedStatement ps = connection.prepareStatement(sqlStr); if(params != null) { for(int i = 0; i < params.length; i++) { ps.setString(i + 1, params[i]); } } //执行新增数据的操作 ps.executeUpdate(); //关闭连接 ps.close(); connection.commit(); } catch(Exception ex) { System.out.println(ex); //若事务失败,则回滚 connection.rollback(); } } /* * 更新数据 */ public void updateData() throws SQLException { try { PreparedStatement ps = connection.prepareStatement(sqlStr); if(params != null) { for(int i = 0; i < params.length; i++) { ps.setString(i + 1, params[i]); } } //执行更新数据的操作 ps.executeUpdate(); //关闭连接 ps.close(); connection.commit(); } catch(Exception ex) { System.out.println(ex); //若事务失败,则回滚 connection.rollback(); } } /* * 删除数据 */ public void deleteData() throws SQLException { try { PreparedStatement ps = connection.prepareStatement(sqlStr); if(params != null) { for(int i = 0; i < params.length; i++) { ps.setString(i + 1, params[i]); } } //执行删除数据的操作 ps.executeUpdate(); //关闭连接 ps.close(); connection.commit(); } catch(Exception ex) { System.out.println(ex); //若事务失败,则回滚 connection.rollback(); } } }