javabean按例分析开发方法
来源:互联网 发布:bae专业版 数据库 编辑:程序博客网 时间:2024/05/19 20:38
所有代码:
UserInfo.java
package com.william.TestJDBC.bean;
public class UserInfo //该类用来初始化所要用到的函数 包含一些set get器
{
private String userid;
private String name;
// setter property
public void setUserid(String value)
{
this.userid=value;
}
public void setName(String value)
{
this.name=value;
}
// getter property
public String getUserid()
{
return this.userid;
}
public String getName()
{
return this.name;
}
}
UserRegist.java
package com.william.TestJDBC.bean;
import java.sql.*;
public class UserRegist {
private UserInfo userInfo;//新建构造方法
private Connection conn;
// get database connection
public UserRegist() {
String CLASSFORNAME = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String SERVANDDB = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
String USER = "sa";
String PWD = "123";
try {
Class.forName(CLASSFORNAME);
conn = DriverManager.getConnection(SERVANDDB, USER, PWD);
} catch (Exception e) {
e.printStackTrace();
}
}
// set register user info
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
// begin register
public void regist() throws Exception {
String reg = "INSERT INTO user_info values(?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(reg);
pstmt.setString(1, userInfo.getUserid());
pstmt.setString(2, userInfo.getName());
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public ResultSet registSelect() throws Exception {
ResultSet rs = null;
String reg = "select * from user_info";
try {
PreparedStatement pstmt = conn.prepareStatement(reg);
rs = pstmt.executeQuery();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return rs;
}
}
index.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head>
<title>JavaBean Sample</title>
</head>
<body>
<script language="javascirpt">
function RgValidation()
{
if(document.form1.userid.value=="")
{
window.alert("Please input userID");
}
if(document.form1.name.value=="")
{
window.alert("Please input name");
}
return true;
}
</script>
<%String userid = request.getParameter("userid");//只是取做判断的!
String name = request.getParameter("name");
if (userid == null) {
userid = "";
}
if (name == null) {
name = "";
}
%>
<form name="form1" method="post" action="newuser.jsp">注册页面(Demo)
<hr>
输入用户ID: <input size="15" name="userid" value=<%=userid %>></input><br>
输入用户名: <input size="15" name="name" value=<%=name%>></input> <input
type="submit" name="submit!" value="插入"></form>
</body>
</html>
newuser.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<jsp:useBean id="userInfo" class="com.william.TestJDBC.bean.UserInfo"
scope="page">
<jsp:setProperty name="userInfo" property="*" />
</jsp:useBean>
<jsp:useBean id="regist" class="com.william.TestJDBC.bean.UserRegist"
scope="page" />
<%//使用第二个Bean的时候可以看出这种调用方法是隐含的将类给构造了一次!
regist.setUserInfo(userInfo);//从index中取得userid和name将其用set器设置
regist.regist();//调用regist方法 插入数据库
response.sendRedirect("userselect.jsp");//此步用来将这个JSP文件作为中间件直接转到userselect界面
%>
<html>
<head>
<title>My JSP 'newuser.jsp' starting page</title>
</head>
<body>
This is my JSP page.
<br>
</body>
</html>
userselect.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
import="java.sql.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:useBean id="userInfo" class="com.william.TestJDBC.bean.UserInfo"
scope="page">
<jsp:setProperty name="userInfo" property="*" />
</jsp:useBean>
<jsp:useBean id="registsel" class="com.william.TestJDBC.bean.UserRegist"
scope="page" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<table width="590" cellspacing="1">
<thead>
<tr>
<td>ID号</td>
<td>姓名</td>
</tr>
</thead>
<tbody>
<%registsel.setUserInfo(userInfo);
ResultSet rs = null;
rs = registsel.registSelect();
while (rs.next()) {
registsel.setUserInfo(userInfo);
userInfo.setUserid(rs.getString("userID"));
userInfo.setName(rs.getString("userName"));
%>
<tr>
<td><%=userInfo.getUserid()%></td>
<td><%=userInfo.getName()%></td>
</tr>
<%}
%>
</tbody>
</table>
</body>
</html>
一个javabean程序的调用步骤:
一.元素类UserInfo:
创建一个需要使用的元素的类,将所需要使用的元素设置为私有属性,然后给它设置set get器
二javabean类(UserRegist):
1. 为刚才的元素类创建一个对象:
Private UesrInfo userinfo;
2. 建立与数据库连接的办法:
定义一个构造函数UserRegist 构造函数中申明
CLASSFORNAME(申明接口名,固定为"com.microsoft.jdbc.sqlserver.SQLServerDriver")
SERVANDDB(申明数据库调用,格式
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test")
USER(申明数据库使用者,sa)
PSW(申明数据库使用者密码 123)
3.对UserInfo设置一个set器,修改userinfo的值
4.创建插入数据库的方法regist() 定义抛出异常
更新操作使用void返回值.
Select方法使用ResultSet返回值.
具体操作:
//插入操作,删除操作类似与此.修改也与此类似
public void regist() throws Exception {
String reg = "INSERT INTO user_info values(?,?)";//设置操作语言
try {
PreparedStatement pstmt = conn.prepareStatement(reg);
pstmt.setString(1, userInfo.getUserid());//第一个问号的值
pstmt.setString(2, userInfo.getName());//第二个问号的值
pstmt.executeUpdate();//做操作
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public ResultSet registSelect() throws Exception {
ResultSet rs = null;//一开始定义存放的容器rs
String reg = "select * from user_info";
try {
PreparedStatement pstmt = conn.prepareStatement(reg);
rs = pstmt.executeQuery();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return rs;
}
三.在JSP中调用.
<jsp:useBean id="userInfo" class="com.william.TestJDBC.bean.
UserInfo" scope="page">
<jsp:setProperty name="userInfo" property="*"/>
</jsp:useBean>
<jsp:useBean id="regist" class="com.william.TestJDBC.bean.
UserRegist" scope="page"/> //个人觉得这个调用就是java中的构造器
<%
//使用第二个Bean的时候可以看出这种调用方法是隐含的将类给构造了一次!
regist.setUserInfo(userInfo);//从index中取得userid和name将其用set器 设置
regist.regist();//调用regist方法 插入数据库
response.sendRedirect("userselect.jsp");//此步用来将这个JSP文件作为中间件直接转到userselect界面
在这里面第一步调用userInfo构造函数
第二步构造UserRegist类 取名叫regist.
先调用设置方法,然后调用刚才定义的插入数据库的方法,便完成操作.
在插入时候,首先是在index中将userid和name传进newuser.jsp中,将两个类都构造完之后,首先调用setuserinfo的set器将userid和username传入,然后当调用regest方法的时候.为了取问好的值,则需要调用userinfo的get器得到两个属性的值将其传入,最后执行更新操作就能够完成对数据库做的操作.
Select操作,有返回值,可以调用滴
四.再看看select在JSP中的调用
<jsp:useBean id="userInfo" class="com.william.TestJDBC.bean.
UserInfo"scope="page">
<jsp:setProperty name="userInfo" property="*" />
</jsp:useBean>
<jsp:useBean id="registsel" class="com.william.TestJDBC.bean
.UserRegist"scope="page" />
这个调用基本上是相同的.然后看主要是下面的取rs记录器里面的值的方法
<table width="590" cellspacing="1">
<thead>
<tr>
<td>ID号</td>
<td>姓名</td>
</tr>
</thead>
<tbody>
<%registsel.setUserInfo(userInfo);
ResultSet rs = null;
rs = registsel.registSelect();
while(rs.next()){
%>
<tr>
<td><%=rs.getString("userID") %></td>
<td><%=rs.getString("userName") %></td> //这里是从rs中取值,自然和刚才的不同鸟
</tr>
<%}
%>
</tbody>
</table>
下面是根据上面写的插入的方法,为了调用userInfo又写了一个select方法,这样可以把调用的过程看得更加清楚:
<table width="590" cellspacing="1">
<thead>
<tr>
<td>ID号</td>
<td>姓名</td>
</tr>
</thead>
<tbody>
<%registsel.setUserInfo(userInfo);
ResultSet rs = null;
rs = registsel.registSelect();
while(rs.next()){
registsel.setUserInfo(userInfo);
userInfo.setUserid(rs.getString("userID"));
userInfo.setName(rs.getString("userName"));
%>
<tr>
<td><%=userInfo.getUserid() %></td>
<td><%=userInfo.getName() %></td>
</tr>
<%}
%>
</tbody>
</table>
- javabean按例分析开发方法
- 按例
- 传统JSP,JSP+JavaBean,JSP+Servlet+JavaBean三种开发javaweb的方法比较
- Enterprise JavaBean开发专辑
- JavaBean开发规范
- web开发使用Javabean
- JavaBean、Web开发模式
- jsp javabean开发模式
- javaweb开发之javaBean
- javabean/jsp开发模式
- JavaBean的共享方法
- JavaBean属性方法反射
- javaBean对象toString方法
- 深入分析JavaWeb Item19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 深入分析JavaWeb 19 -- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- javabean开发要求和规范
- javabean开发要求和规范
- Struts2+JavaBean的开发练习
- 多种网页弹出窗口代码
- [原创] MySQL Proxy 学习笔记
- 如何保护你的博客及其一切衍生权利
- MSDN Webcast所有视频讲座的下载地址
- Read the book - Self Leadership and the One Minute Manager
- javabean按例分析开发方法
- String类、StringBuffer类、Math类
- FreeBSD 下 skyeye 运行 rtems
- Castle.ActiveRecord 使用 存储过程 返回实体类
- During Barry's "Intel Microprocessor"
- 硬盘的几点真相
- DNS解析错误解决办法
- Self Hack第4周周记
- QQ尾巴病毒 VC