`
jiangduxi
  • 浏览: 445224 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用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>&nbsp;</td>
     <td>&nbsp;</td>
...
</form>
</table>
</body>
</html>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics