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(接口)詳細使用