askyearAPI示例之用户注册

下载地址:http://www.askyear.com/download.jsp?id=f63bffbfff6b4411b072de66c282a5c5

本示例程序可直接在eclipse下运行

本示例共有两个类和两个jsp文件:

用户类:User.java("帐号", "昵称", "密码", "邮箱", "类型", "状态", "注册时间")

用户业务逻辑操作服务类:UserS.java

注册用户列表页:userList.jsp

用户注册编辑页:userEdit.jsp

建表脚本:db.sql

步骤1:建表

db.sql包含mssql和mysql两种建表SQL语句,如下:

/*mssql*/
CREATE TABLE [sys_user] (
[member] [varchar] (32) NOT NULL ,
[name] [varchar] (30) NOT NULL ,
[password] [varchar] (64) NOT NULL ,
[email] [varchar] (50) NOT NULL ,
[type] [varchar] (20) NULL ,
[useable] [bit] NULL ,
[createTime] [datetime] NULL ,
CONSTRAINT [PK_sys_user] PRIMARY KEY CLUSTERED
(
   [member]
) ON [PRIMARY]
) ON [PRIMARY]
GO
/*mysql*/
create table sys_user(
member varchar(32) not null,
name varchar(30) not null,
email varchar(100) not null,
type varchar(30),
password varchar(16),
useable bool,
createTime datetime);

步骤2:配置数据库连接

askyear数据库连接配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- jdbc表示默认的数据库连接 -->
<root cacheId="jdbc">
<Jdbc>
   <url>jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=Cursor;DatabaseName=gru</url>
   <driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
   <user>sa</user>
   <password></password>
   <min>1</min>
   <step>2</step>
   <max>50</max>
   <showSql>true</showSql>
</Jdbc>
</root>

您可能需要修改DatabaseName,user和password。

步骤3:运行

http://localhost:8080/demo1_user

运行后可在控制台看到如下日志输出:

2009-12-28 22:14:44 [INFO] - Askyear:新增数据库连接2条[共2条][jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=Cursor;DatabaseName=gru:sa:]
2009-12-28 22:14:44 [INFO] - | select count(*) from sys_user where 1=1
2009-12-28 22:14:44 [INFO] - Askyear:归还数据库连接1条[共2条,可用2条][jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=Cursor;DatabaseName=gru:sa:]
2009-12-28 22:14:44 [INFO] - | select top 10 member,name,password,email,type,useable,createtime from sys_user where 1=1
2009-12-28 22:14:44 [INFO] - Askyear:归还数据库连接1条[共2条,可用2条][jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=Cursor;DatabaseName=gru:sa:]

附:User.java

package com.askyear.demo.bean;

import java.util.Date;

import com.askyear.db.ATable;
import com.askyear.db.key.String32Key;

/**
* 用户
*
* @author askyear.com
*
*/
public class User extends ATable {
public static final String USER_SESSION = "user";
private static final long serialVersionUID = -8942196092377147945L;
private String member;
private String name;
private String password;
private String email;
private String type;
private Boolean useable;
private Date createTime;

public User() {
   this.initSelf();
}
public String getEmail() {
   return email;
}
public void setEmail(String email) {
   this.email = email;
}
public String getName() {
   return name;
}
public void setName(String name) {
   this.name = name;
}
public String getMember() {
   return member;
}
public void setMember(String member) {
   this.member = member;
}
public String getPassword() {
   return password;
}
public void setPassword(String password) {
   this.password = password;
}
public String getType() {
   return type;
}
public void setType(String type) {
   this.type = type;
}
public Boolean getUseable() {
   return useable;
}
public void setUseable(Boolean useable) {
   this.useable = useable;
}
public Date getCreateTime() {
   return createTime;
}
public void setCreateTime(Date createTime) {
   this.createTime = createTime;
}
public void buildKeyIfNull() {
   if (this.member == null || this.member.length() == 0) {
    this.member = String32Key.getKeyValue();
   }
   if (this.useable == null)
    this.useable = true;
   if (this.createTime == null)
    this.createTime = new Date();
}
public Object getPropertyValue(int index) {
   switch (index) {
   case 0:
    return member;
   case 1:
    return name;
   case 2:
    return password;
   case 3:
    return email;
   case 4:
    return type;
   case 5:
    return useable;
   case 6:
    return createTime;
   default:
    throw new ArrayIndexOutOfBoundsException("访问越界:" + index);
   }
}
public void initSelf() {
   this.setTableName("sys_user");
   this.setTableChinaName("系统用户");
   key = new int[] { 0 };
   property = new String[] { "member", "name", "password", "email", "type", "useable", "createTime" };
   field = new String[] { "member", "name", "password", "email", "type", "useable", "createTime" };
   propertyName = new String[] { "帐号", "昵称", "密码", "邮箱", "类型", "状态", "注册时间" };
}
public void setPropertyValue(int index, Object value) {
   switch (index) {
   case 0:
    this.member = parseString(value);
    break;
   case 1:
    this.name = parseString(value);
    break;
   case 2:
    this.password = parseString(value);
    break;
   case 3:
    this.email = parseString(value);
    break;
   case 4:
    this.type = parseString(value);
    break;
   case 5:
    this.useable = parseBoolean(value);
    break;
   case 6:
    this.createTime = parseDate(value);
    break;
   default:
    throw new ArrayIndexOutOfBoundsException("访问越界:" + index);
   }
}
}

UserS.java

package com.askyear.demo.server;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;
import com.askyear.demo.bean.User;
import com.askyear.html.ParameterBean;
import com.askyear.server.AServer;

/**
* 用户
*
* @author askyear.com
*
*/
public class UserS extends AServer {

public void server(PageContext pageContext) throws ServletException, IOException {
   HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
   User user = new User();
   // 从request读取参数值到user
   ParameterBean p = ParameterBean.newInstance(request, user, getPrefix(request));
   int count = 0;
   if (p.doAdd()) {
    count = this.add(user);
   } else if (p.doUpdate()) {
    // 判断member,name,email不能为空
    if (p.isNotEmpty(new int[] { 0, 1, 3 }, pageContext)) {
     User table = new User();
     table.setMember(user.getMember());
     count = this.loadByKey(table);
     if (count > 0) {
      // 用户存在
      table.setName(user.getName());
      table.setEmail(user.getEmail());
      table.setType(user.getType());
      count = this.update(table);
     }
    }
   } else if (p.doDelete()) {
    count = this.delete(user);
   }
   if (count <= 0) {
    // 操作失败
    this.setUnForward(request);
   }
}

}

userEdit.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.askyear.com/tld/askyear.tld" prefix="a"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>用户编辑</title>
   <script type="text/javascript">
    function post_form(opration){
     form1.domethod.value=opration;
     form1.submit();
    }
   </script>
</head>
<body>
<a:action prefix="user_" forward="userList.jsp" doClass="com.askyear.demo.server.UserS"></a:action>
   <!-- { "帐号", "昵称", "密码", "邮箱", "类型", "状态", "注册时间" } -->
   <form name="form1" method="post" action="userEdit.jsp">
   <input type="hidden" name="domethod"/>
   <c:if test="${not empty param.user_member}"><input type="hidden" name="user_member" value="${param.user_member}"/></c:if>
<a:tableBean readOnly="true" id="user" prefix="user_" keyValue="${param.user_member}" tableClass="com.askyear.demo.bean.User"></a:tableBean>
   <table border="1" cellpadding="0" cellspacing="0">
    <tr>
     <td>昵称</td><td><input name="user_name" value="${user.name}"/></td>
    </tr>
    <tr>
     <td>邮箱</td><td><input name="user_email" value="${user.email}"/></td>
    </tr>
    <tr>
     <td>密码</td><td><input type="password" name="user_password"/></td>
    </tr>
    <tr><td colspan="2">
     <input type="button" value="保存" οnclick="post_form('${empty param.user_member?"add":"update"}');"/>
     <input type="button" value="返回列表" οnclick="window.open('userList.jsp','_self');"/>
    </td></tr>
   </table>
   </form>
  
</body>
</html>

userList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.askyear.com/tld/askyear.tld" prefix="a"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>用户列表</title>
   <style type="text/css">
    .pageBar {text-align: right;}
    .pageBar a,span{margin-left: 10px;}
   </style>
</head>
<body>
   <a:tableBeanList id="userList" tableClass="com.askyear.demo.bean.User" fromTable="true" countTotalRows="true" pageIndex="" pageSize="10" readOnly="true"></a:tableBeanList>
   <!-- { "帐号", "昵称", "密码", "邮箱", "类型", "状态", "注册时间" } -->
   <table border="1" cellpadding="0" cellspacing="0">
    <tr>
     <td>帐号</td><td>昵称</td><td>状态</td><td>注册时间</td>
    </tr>
    <c:forEach var="user" items="${userList}">
     <tr>
      <td><a href="userEdit.jsp?user_member=${user.member}">${user.member}</a></td>
      <td>${user.name}</td>
      <td>${true eq user.useable?"启用":"停用"}</td>
      <td>${user.createTime}</td>
     </tr>
    </c:forEach>
    <tr><td colspan="4">
     <div class="pageBar">10条/页<a:pagination id="" href="userList.jsp?t=1" total="${total_rows_userList}" pageSize="10"></a:pagination>&nbsp;&nbsp;共${total_rows_userList}条</div>    
    </td></tr>
   </table>  
   <p><input type="button" value="添加用户" οnclick="window.open('userEdit.jsp','_self');"/></p>
</body>
</html>
来源:http://www.askyear.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值