使用JavaBean中连接数据库

随着JSP技术的发展和开发技术的成熟,在JSP页面中连接数据库的编程方式已经很少见。虽然在JSP页面中使用Scriptlets也可以连接数据库,进行数据库的操作。但这样会造成页面难以维护等缺点。在大型的项目中,这些缺点变得更加突出。
如果不使用EJB,那么比较好的解决办法就是把与数据库操作相关的代码封装在JavaBean组件或者Servlet组件中,这样JavaBean或者Servlet就执行后台的数据库操作,并且获得执行结果,最后的结果通过JSP显示。

那看看下面的一些JavaBean

import java.util.Date;
public class UserInfo
{
private String userid;
private String password;
private String email;
private String name;
private String street;
private String city;
private String state;
private String phone;
private String zipCode;
private String cardNumber;
private int cardType;
private Date expireDate;
private int userLogCount;
private int userType;
private Date userLastLogTime;
prvate String fanvcategory;

//getter方法,setter方法
public String getUserid(){
return this.userid;
}
public void setUserid(String userid){
this.userid=userid;
}
.........
}

可以看出,UserInfo仅仅表示用户信息的属性,没有任何业务方法,它的主要用途是数据的传递。UserInfo的每个属性对应于提交的表单中的一个参数。

下面显示数据库操作的JavaBean代码

public class UserRegist
{
private UserInfo userInfo;
private Connection con;
//获得数据库链接
public UserRegist(){
String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String SERVANDDB="jdbc:microsoft.sqlserver://127.0.0.1:1433;DatabaseName=test";
String USER="root";
String PWD="123456";
try{
Class.forName(CLASSFORNAME);
con=DriverManager.getConnection(SERVANDDB,USER,PWD);
}
catch(Exception e){
e.printStackTrace();
}
}
//设置待注册的用户信息
public void setUserInfo(UserInfo userInfo){
this.userInfo=userInfo;
}

//进行注册
public void regist()throws Exception{
String reg="insert into user_Info values(?,?,?,?,?,?,?,?,?,?,?,?....)"
try{
PreparedStatement pstmt=con.prepareStatement(reg);
// 创建一个预处理语句,然后设置它们的参数
pstmt.setString(1,userInfo.getUserid());
pstmt.setString(2,userInfo.getName());
pstmt.setString(3,userInfo.getPhone());
pstmt.setString(4,userInfo.getStreet());
.......
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
throw e;
}
}
}


下面看看JSP页面

.....
<script language="javascript">
<!-- Begin validation script
function checkId(o){
if(o.value!="")
for(i=0;i<o.value.length;i++){
if(!((o.value.charCodeAt(i)>=48&&o.value.charCodeAt(i)<=57)||(o.value.charAt(i)>=65&&(o.value.charCodeAt(i)<=90)||o.value.charCodeAt(i)<=122))){
alert("ID 只能由字母和数字组成");
o.focus();
break;
}
}
}
function checkConfirm(o1,o2){
if(o2.value!=""){
if(o2.value!=o1.value){
alert("两次输入的密码必须相同!");
o1.focus();
}
}
}
<script language="JavaScript">
<!--
function RgTest(){
if(document.form1.userid.value==""){
window.alert("请输入用户名名称");
document.form1.resource.focus();
return false;
}
if(document.form1.name.value==""){
window.alert("输入真实姓名!");
document.form1.userid.focus();
return false;
}
...//其他表单的验证
if(document.form1.password.value!=document.form1.confirmpassword.value){
window.alert("请正确输入密码");
document.form1.password.focus();
return false;
}
return true;

}
//-- >
</script>
<%
String userid=request.getParameter("userid");
if(userid==null){
userid="";
}
String email=request.getParameter("email")
if(email==null){
email="";
}
..//其他省略

%>
<%
if(errorMessage!=null){
%>
<span class="headingred">
<%=errorMessage%>
</span>
<br>
<%
}
%>
<form method="post" action="newuser.jsp" name="form1">
<table border="0" cellspacing="0" width="500">
..//省略部分
<td>用户名</td>
<td><input size="15" name="useid" value=<%=userid%>></input></td>
<td> </td>
<td> </td>
...
</form>
</table>
</body>
</html>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值