- DbUtil.java 封装数据常用操作
package com.jsly.drp.util;
import java.sql.*;
/**
* 封装数据常用操作
* @author Administrator
*
*/
public class DbUtil {
/**
* 取得Connection
* @return
*/
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:jsly";
String username = "drp1";
String password = "drp1";
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
/**
* 关闭conn
* @param conn
*/
public static void close(Connection conn){
if (conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭pstmt
* @param pstmt
*/
public static void close(PreparedStatement pstmt){
if (pstmt != null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String arg[]){
System.out.print(DbUtil.getConnection());
}
}
- User.java 用户实体类
package com.jsly.drp.sysmgr.domain;
import java.util.Date;
/**
* 用户实体类
* @author Administrator
*
*/
public class User {
//用户代码
private String userId;
//用户姓名
private String userName;
//密码
private String password;
//联系电话
private String contactTel;
//电子邮件
private String email;
//创建日期
private Date createDate;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getContactTel() {
return contactTel;
}
public void setContactTel(String contactTel) {
this.contactTel = contactTel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
- UserManager.java 采用单例管理用户
package com.jsly.drp.sysmgr.manager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import com.jsly.drp.sysmgr.domain.User;
import com.jsly.drp.util.DbUtil;
/**
* 采用单例管理用户
* @author Administrator
*
*/
public class UserManager {
private static UserManager instance = new UserManager();//私有静态成员变量
private UserManager(){ //私有构造方法
}
public static UserManager getInstance(){ //公共静态入口点方法
return instance;
}
/**
* 添加用户
* @param user
*/
public void addUser(User user){
String sql = "insert into t_user (user_id, user_name, password, contact_tel, email, create_date) "+
" values (?, ?, ?, ?, ?, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DbUtil.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUserId());
pstmt.setString(2, user.getUserName());
pstmt.setString(3, user.getPassword());
pstmt.setString(4, user.getContactTel());
pstmt.setString(5, user.getEmail());
//pstmt.setTimestamp(6, new Timestamp(new java.util.Date().getTime()));
//setDate保存年月日,setTime保存时分秒,setTimestamp保存年月日时分秒
pstmt.setTimestamp(6, new Timestamp(System.currentTimeMillis()));
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DbUtil.close(pstmt);
DbUtil.close(conn);
}
}
/**
* 根据用户代码进行查询
* @param user
* @return
* 如果存在则返回user对象 不存在则返回null
*/
public User findUserById(String userId){
String sql = "select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
User user = null;
try{
conn = DbUtil.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
rs = pstmt.executeQuery();
if(rs.next()){
user =new User();
user.setUserId("userId");
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
}
}catch(SQLException e){
e.printStackTrace();
}finally{
DbUtil.close(rs);
DbUtil.close(pstmt);
DbUtil.close(conn);
}
return user;
}
}
- user_add.jsp //
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="com.jsly.drp.sysmgr.domain.*"%>
<%@ page import="com.jsly.drp.sysmgr.manager.*" %>
<%
request.setCharacterEncoding("GB18030");
String command = request.getParameter("command");
/**
*保持页面数据
**/
String userId = "";
String userName = "";
String contactTel = "";
String email = "";
if ("add".equals(command)){
if(UserManager.getInstance().findUserById(request.getParameter("userId")) == null){
User user = new User();
user.setUserId(request.getParameter("userId"));
user.setUserName(request.getParameter("userName"));
user.setPassword(request.getParameter("password"));
user.setContactTel(request.getParameter("contactTel"));
user.setEmail(request.getParameter("email"));
UserManager.getInstance().addUser(user);
out.print("添加用户成功!");
}else{
userId = request.getParameter("userId");
userName = request.getParameter("userName");
contactTel = request.getParameter("contactTel");
email = request.getParameter("email");
out.print("用户代码已经存在,不能添加!");
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>添加用户</title>
<link rel="stylesheet" href="../style/drp.css">
<script src="../script/client_validate.js"></script>
<script type="text/javascript">
function goBack() {
window.self.location="user_maint.html"
}
function addUser() {
var vUseIdElt = document.getElementById("userId");
//用户代码不能为空
if(isEmpty(vUseIdElt.value) == true){
alert("用户代码不能为空!");
vUseIdElt.focus();
return;
}
//用户代码至少4个字符
if(trim(vUseIdElt.value).length < 4){
alert("用户代码不能小于4个字符!");
vUseIdElt.focus();
return;
}
//用户代码第一个字符是字母
if(!(trim(vUseIdElt.value).charAt(0) >= "a" && trim(vUseIdElt.value).charAt(0) <= "z")){
alert("用户代码第一个字符必须是字母!");
vUseIdElt.focus();
return;
}
//采用正则表达式判断用户代码只能是数字或字母,位数为4-6位
var re = new RegExp(/^[a-zA-Z0-9]{4,6}$/);
if (!re.test(trim(vUseIdElt.value))){
alert("用户代码只能是数字或字母,位数为4-6位");
vUseIdElt.focus();
return;
}
//用户名称不能为空
if(isEmpty(document.getElementById("userName").value) == true){
alert("用户名称不能为空!");
document.getElementById("userName").focus();
return;
}
//密码至少6位
if(document.getElementById("password").value.length < 6){
alert("密码不能为少于6位!");
document.getElementById("password").focus();
return;
}
//如果联系电话不为空,则都为数字(正则)
var vContactTelElt = document.getElementById("contactTel");
if(isEmpty(vContactTelElt.value) == false){
re.compile(//D/);// /D表示非数字 //把正则表达式编译为内部格式,从而执行得更快。----不明白,暂时理解为改变正则表达式就ok了
if(re.test(trim(vContactTelElt.value))){
alert("联系电话格式不正确!");
vContactTelElt.focus();
return;
}
}
//如果邮箱不为空,则判断格式
if(isEmpty(document.getElementById("email").value) == false){
if(trim(document.getElementById("email").value).search(/@/) < 0){
alert("邮编格式不正确!");
}
}
document.getElementById("userForm").action = "user_add.jsp";
document.getElementById("userForm").method = "post";
document.getElementById("userForm").submit();
}
//初始化获取焦点
function init(){
document.getElementById("userId").focus();
}
//只允许输入字母
function userIdOnKeyPress(){
if(!(event.keyCode >= 97 && event.keyCode <=122)){
event.keyCode = 0;
}
}
//覆盖document.onkeydown()方法,用回车(13)代替tab(9)键
function document.onkeydown(){
if((event.keyCode == 13) && (event.srcElement.type != "button")){
event.keyCode = 9;
}
}
</script>
</head>
<body class="body1" οnlοad="init()">
<form name="userForm" target="_self" id="userForm">
i<input type="hidden" name="command" value="add">
<div align="center">
<table width="95%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
</td>
</tr>
</table>
<table width="95%" border="0" cellspacing="0" cellpadding="0"
height="25">
<tr>
<td width="522" class="p1" height="25" nowrap>
<img src="../images/mark_arrow_03.gif" width="14" height="14">
<b>系统管理>>用户维护>>添加</b>
</td>
</tr>
</table>
<hr width="97%" align="center" size=0>
<table width="95%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="22%" height="29">
<div align="right">
<font color="#FF0000">*</font>用户代码:
</div>
</td>
<td width="78%">
<input name="userId" type="text" class="text1" id="userId" value="<%=userId %> "
size="10" maxlength="10" OnKeyPress="userIdOnKeyPress()">
</td>
</tr>
<tr>
<td height="26">
<div align="right">
<font color="#FF0000">*</font>用户名称:
</div>
</td>
<td>
<input name="userName" type="text" class="text1" id="userName" value="<%=userName %>"
size="20" maxlength="20">
</td>
</tr>
<tr>
<td height="26">
<div align="right">
<font color="#FF0000">*</font>密码:
</div>
</td>
<td>
<label>
<input name="password" type="password" class="text1"
id="password" size="20" maxlength="20">
</label>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
联系电话:
</div>
</td>
<td>
<input name="contactTel" type="text" class="text1" value="<%=contactTel %>"
id="contactTel" size="20" maxlength="20">
</td>
</tr>
<tr>
<td height="26">
<div align="right">
email:
</div>
</td>
<td>
<input name="email" type="text" class="text1" id="email" value="<%=email %>"
size="20" maxlength="20">
</td>
</tr>
</table>
<hr width="97%" align="center" size=0>
<div align="center">
<input name="btnAdd" class="button1" type="button" id="btnAdd"
value="添加" onClick="addUser()">
<input name="btnBack" class="button1" type="button" id="btnBack"
value="返回" onClick="goBack()" />
</div>
</div>
</form>
</body>
</html>