在JavaBean中连接数据库

1.      JavaBean的开发

用户信息封装成一个值对象的JavaBean,这个JavaBean只包含与用户信息相关的属性和与这些属性相关的getter,setter方法。如下是用户信息的JavaBeanUserInfo

package com.javabean.demo;

public class UserInfo {
	//属性
	private String userid;
	private String name;
	private String password;
	//getter方法
	public String getUserid(){
		return userid;
	}
	public String getName(){
		return name;
	}
	public String getPassword(){
		return password;
	}
    //setter方法
	public void setUserid(String userid){
		this.userid = userid;
	}
	public void setName(String name){
		this.name = name;
	}
	public void setPassword(String password){
		this.password = password;
	}
}


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

执行数据库操作的JavaBean代码:UserRegist

package com.javabean.demo;
import java.sql.*;

public class UserRegist {

	private Connection conn;
	private UserInfo userInfo;
	
	//获得数据库连接
	public UserRegist(){
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
			conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=jspdev", "sa", "sql123");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
	
	//设置待注册的用户信息
	public void setUserInfo(UserInfo  userInfo){
		this.userInfo = userInfo;
	}
	
	//注册用户
	public void Regist(){
		String sql="insert into user_Info values (?,?,?)";
		try{
			//创建一个预处理语句,然后设置它们的参数
			PreparedStatement  ps = conn.prepareStatement(sql);
			ps.setString(1, userInfo.getUserid());
			ps.setString(2, userInfo.getName());
			ps.setString(3, userInfo.getPassword());
			//执行更新操作
			ps.executeUpdate();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

UserInfo作为UserRegist的一个属性,这个属性可以在JSP页面中进行设置。在UserRegist的构造方法中,创建了一个到数据库的连接。

通过regist()方法执行数据库相关的操作。在这个方法中,首先通过connection对象创建一个预处理语句,然后设置这个预处理语句的参数。设置完参数后,通过ps.executeUpdate()方法执行数据库操作。如果在注册时发送了错误,那么将把这个异常抛出到JSP页面。

2.      JSP页面的开发

两个JSP页面:一个用于接收用户信息的输入的JSP,一个用于注册用户信息到数据库的JSP。执行注册的JSP首先通过JavaBean获得用户请求的参数,然后通过UserRegist JavaBean 执行具体的注册操作。

regist.jsp

<%@ 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>用户注册页面</title>
</head>
<body>
<form name="form1" action="newuser.jsp" method="get">
  <table>
  	<tr>
  	<td>用户名:</td>
  	<td><input type="text" name="userid"></td>
  	</tr>
  	<tr>
  	<td>真实名:</td>
  	<td><input type="text" name="name"></td>
  	</tr>
  	<tr>
  	<td>密码:</td>
  	<td><input type="password" name="password"></td>
  	</tr>
  </table>
  <input type="submit" value="注册">
</form>
</body>
</html>

newuser.jsp

分析蓝色部分代码:

这里使用UserInfo JavaBean接收客户端的输入参数必须注意的是,客户端的输入参数的名字和JavaBean属性的名字必须一一对应。

   <jsp:setProperty name="userInfo" property="*"/>

   一个语句就接收了客户端的所有参数。更让人人兴奋的是,内在的机制还把客户端的输入参数类型自动转换成JavaBean类型。

regist.setUserInfo(userInfo);方法把userInfo作为参数来设置RegistUseruserInfo属性。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
   <jsp:useBean id="userInfo" scope="page" class="com.javabean.demo.UserInfo">
   <jsp:setProperty name="userInfo" property="*"/>
   </jsp:useBean>
   <jsp:useBean id="regist" scope="page" class="com.javabean.demo.UserRegist">
   <jsp:setProperty name="regist" property="*"/>
   </jsp:useBean>
<!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>信息注册执行页面</title>
</head>
<body>
<%
    regist.setUserInfo(userInfo);
    regist.Regist();
    out.println("注册成功");
%>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/xiaocong1314/article/details/8889104