JavaBean技术
一、什么是javabean
JavaBean就是一个可重复使用的,基于Java的软件组件,可以在软件开发工具中被直观地操作. JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称Bean
二、javabean的特点
JavaBean是基于Java语言的,具有以下特点:
(1)可以实现代码的重复利用,因此可以缩短开发时间。
(2)易编写,易维护、易使用。
(3)可以在任何安装了Java运行环境的平台上使用,而不需要重新编译,为JSP的应用带来了更多的可扩展性。
三、创建JavaBean必须满足条件
1. Javabean作为一个特殊的类,需满足以下规范
2. 是一个public类,可供其他类实例化
3. 如果有构造方法,则这个构造方法必须是没有参数的构造方法
4. 所有的属性最好定义为私有的
5. 定义public的方法setxxx()和getXXX()来对属性进行操作
四、创建javabean
创建一个标准JavaBean的基本语法如下。
(1)定义包名称
(2)定义JavaBean类
JavaBean类定义的语法结构如下:
public class 类名称
{
//类成员的定义
//类方法的定义。
//类属性的定义。
}
其中需要强调的是,类名称与保存的文件名称必须一致,否则就会出现编译错误。同时,类必须声明为公有类,即public。
如:public class CarBean
{
private String maker;
……….
}
(3) 定义JavaBean类的构造函数
JavaBean是Jave类,JavaBean就有自己的构造函数,并且构造函数的名称必须与JavaBean类的名称一致。构造函数的主要作用是用来初始化,而且构造函数无参数输入,其语法结构如下:
public JavaBean类名称
{
//初始化
……..
}
例如:
public CarBean
{
}
(4) 定义JavaBean属性
JavaBean是Jave类,那么它不但有自己的构造函数,还有自己的属性。JavaBean属性的定义的语法结构如下:
private 数据类型 属性名称;
例如:private String maker;
(5) 设定JavaBean属性值的方法
定义了JavaBean属性之后,还要对其属性值进行设定,其属性值设定的语法结构如下:
public void set设定方法名称(数据类型 参数)
{
this.变量=参数;
}
例如:
public void setMaker(String maker)
{ this.maker="Benz";
}
值得注意的是:JavaBean属性值的设定方法名称一般以set三个字母开头,后面跟上属性设定方法名称
(6) 读取JavaBean属性值的方法
上面讲述了如何设定JavaBean属性值,那么属性值设定好之后,如何读取呢?JavaBean属性值读取的语法结构如下:
public void get读取方法名称()
{
return this.变量;
}
例如:
public void getMaker()
{
return this.maker;
}
例如:下面定义一个Login用户登录的JavaBean(具有id,name,pass三个属性),则创建Login的javabean的步骤如下。
// 1、打开eclipse,并在java2e项目中的的java Resources\src目录中创建一个数据包bean,如下图所示。
// 2、右击刚创建好的数据包“bean”在弹出如下菜单。
// 3、单击“new->class”命令,弹出创建新类的对话框,如下图所示。
// 4、在对话框中输入类的名称Login,然后单击"Finish"结束。在bean数据包中会看到Login.java类如下图所示 。
5、我们在右边的代码工作区中输入如下代码。
package bean;
public class Login {
private int id;//定义类的成员
private String name;
private String pass;
public Login(){}//定义类的构造方法
public Login(int id,String name,String pass){
this.id=id;
this.name=name;
this.pass=pass;
}
public int getId() {//定义类的属性
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
五、 在JSP中使用javabean
1.在JSP中使用JavaBean
通过page指令导入
<%@ page import= “javabean”
2.Bean标签
(1)<jsp:useBean>
<jsp:useBean id="实例化对象名称" scope="保存范围" class="包.类名称" />
如我们要使用Login的JavaBean,则所写的代码如下。
<jsp:useBean id="login" scope="page" class="bean.Login"></jsp:useBean>
(2)<jsp:setProperty>
设置属性:<jsp:setProperty>
NO.
|
类型
|
语法格式
|
1
|
自动匹配
|
<jsp:setProperty name="实例化对象的名称(id)" property="*" />
|
2
|
指定属性
|
<jsp:setProperty name="实例化对象的名称(id)" property="属性名称" />
|
3
|
指定参数
|
<jsp:setProperty name="实例化对象的名称(id)" property="属性名称" param="参数名称" />
|
4
|
指定内容
|
<jsp:setProperty name="实例化对象的名称(id)" property="属性名称" value="内容" />
|
(3)<jsp:getProperty>
取得属性:<jsp:getProperty>
<jsp:getProperty name="实例化对象名称(id)" property="属性名称" />
JavaBean的保存范围:
page:保存在一页的范围中,跳转后此JavaBean无效。
request:一个JavaBean对象可以保存在一次服务器跳转的范围中。
session:在一个用户的操作范围中保存,重新打开浏览器时才会声明新的JavaBean。
application:在整个服务器上保存,服务器关闭时才会消失。
JavaBean的删除:
删除page范围的JavaBean可以使用pageContext.removeAttribute(JavaBean名称)。
删除request范围的JavaBean可以使用request.removeAttribute(JavaBean 名称)。
删除session范围的JavaBean可以使用session.removeAttribute(JavaBean 名称)。
删除application范围的JavaBean可以使用application.removeAttribute(JavaBean名称)。
例如:在jsp中使用上面所定的Login.java的JavaBean,代码如下。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="loginbean" class="bean.Login"></jsp:useBean>
<jsp:setProperty property="id" name="loginbean" value="1"/>
<jsp:setProperty property="name" name="loginbean" value="lisi"/>
<jsp:setProperty property="pass" name="loginbean" value="lisi"/>
用户的编号是:<jsp:getProperty property="id" name="loginbean"/></br>
用户的名是:<jsp:getProperty property="name" name="loginbean"/></br>
用户的密码是:<jsp:getProperty property="pass" name="loginbean"/></br>
</body>
</html>
其中<jsp:useBean id="loginbean" class="bean.Login"></jsp:useBean>是对bean.Login时行实例化,对象名就命令中id的值loginbean;这个对象名在<jsp:setProperty><jsp:getProperty>命令中的name属性中引用如上代码所示。即在<jsp:setProperty property="id" name="loginbean" value="1"/>或<jsp:getProperty property="id" name="loginbean"/>中的name属性的值必须是<jsp:useBean id="loginbean" class="bean.Login">中的id属性值一样。
JDBC技术
JDBC基础
1.JDBC介绍
JDBC是java访问[对象型数据库/关系型数据库]数据库的规则,是原SUN公司开发的.
原来我们程序员需要针对具体的数据库操作,费时费力;
自从有了JDBC规则后,程序员只需要针对JDBC规则编程,不用管底层具体数据库的实现,
好处在于:写一份JDBC代码,可以在很多数据库在执行,即可移植性
2.驱动的原理及使用
就是JDBC规则,在具体数据库中的实现类,且用java书写(需要安装JDK)
3.JDBC核心使用
做jdbc代码,需要用到如下几个固定步骤,以查询为例:
(1). 加载mysql数据库服务器的驱动,DriverManager
(2). 获取mysql数据库服务器的连接,Connection
(3). 获取封装sql语句的对象,Statement
(4). 执行sql语句,并返回结果集合,ResultSet
(5). 迭代这个结果集合,while(){}
(6). 按轻到重的原则关闭连接对象,ResultSet-Statement-Connection,在必要情况下,Connection可重用
如下代码用于对login数据表进行查询操作:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %> <!-- 引入数据包-->
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! //
private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";// 采用mysql-connector-java-5.1.12-bin.jar作为连接mysql数据库时,使用的数据库驱动类。
// 连接数据库地址,其中localhost是我们在本机上安装的mysql数据库管理系统,stsc是在myssql数据库系统中创建的数据库名,若使用较低版时,使用“jdbc:mysql://localhost:3306/zy”
private static final String DBURL = "jdbc:mysql://localhost:3306/stsc";// 采用mysql-connector-java-5.1.12-bin.jar作为连接mysql数据库时,使用的数据库地址。
// 连接数据库管理员,是mysql数据库的系统管理员root
private static final String DBUSER = "root";
// 连接数据库管理员登录密码,是在安装mysql数据库时,给定的密码
private static final String DBPASS = "admin";
// 创建数据库连接对象conn
private static Connection conn = null;
%>
<%
try {
// 加载mysql数据库的驱动程,
Class.forName(DBDRIVER);
// 获取数据库连接对象
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
//定义sql命令,用于从login数据表中记录,
String sql="select id,name,pass from login";
//创建执行sql命令的对象
PreparedStatement psta=conn.prepareStatement(sql);
ResultSet rs=psta.executeQuery();
if(rs !=null){
%>
<table width=100 border=1>
<%while(rs.next()){ %>
<tr>
<td><%=rs.getInt(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(3) %></td>
</tr>
<%}%>
</table>
<%
}
//关闭数据集对象
rs.close();
//关闭执行sql命令的对象
psta.close();
// 关闭数据库连接对象
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
4.DriverManager(类)、Connection(接口)、Statement(接口)、ResultSet(接口)详细使用