Java_Web 回顾 MVC模型实战start

po ---类implements Serializable (实现序列化接口):成员对应于数据库里表字段,每个成员拥有自己的get、set方法。




知识点:反射和泛型的掌握

public interface IBaseDAO<T>:

package com.zuxia.yc42.common.dao.imp;

import com.zuxia.yc42.common.dao.OperatinJDBC;
import com.zuxia.yc42.util.PageList;

public interface IBaseDAO<T>
{
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	public boolean saveInfo(T t);
	
	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	public boolean deleleInfo(Integer id);
	
	/**
	 * 根据对象修改数据库信息
	 * @param t
	 * @return
	 */
	public boolean modifyInfo(T t);
	
	/**
	 * 根据ID查询数据库信息
	 * @param id
	 * @return
	 */
	public T queryInfo(Integer id);

	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	public PageList<T> queryInfos(PageList<T> pageList);
	
	/**
	 * 设置className
	 * @param className
	 */
	public void setClassName(Class<T> className);
	
	/**
	 * 获取数据库连接对象
	 * @return
	 */
	public OperatinJDBC getOpJDBC();
}


public class BaseDAO <T>implements IBaseDAO <T>:

public class BaseDAO <T>implements IBaseDAO <T>
{
	/*	1.需要往那张表中存储数据   
		2.可以通过反射的方式获取到所有的实例类【PO】成员属性	*/
	private Class className;
	
	private OperatinJDBC opJDBC;
	
	//声明获取操作表类实例对象
	private ClassRelationTable cr_Table;	
	
	public BaseDAO()
	{
		opJDBC = new OperatinJDBC();
		cr_Table = ClassRelationTable.getInit();
	}
		
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	@Override
	public boolean saveInfo(T t) {
		//获取操作表
		String tableName = cr_Table.getTable(className.getName());
		//通过反射 反射出className对象 封装SQL语句
		String sql = "";
		
		
		boolean flag = false;
		//执行Sql
		try {
			Statement stm  = opJDBC.getConn().createStatement();
			flag = stm.execute(sql);
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
			//关闭数据库连接
			opJDBC.closeConn();
		}
		
		
		return flag;
	}

	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	@Override
	public PageList<T> queryInfos(PageList<T> pageList) {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * 获取数据库连接对象
	 * @return
	 */
	@Override
	public OperatinJDBC getOpJDBC() {
		// TODO Auto-generated method stub
		return opJDBC;
	}
	
	/**
	 * 设置className
	 * @param className
	 */
	public void setClassName(Class<T> className) {
		this.className = className;
	}

	
	public static void  main(String[] s)
	{
		IUserInfoDAO bsDAO = new UserInfoDAO();
		bsDAO.saveInfo(new UserInfo());	//UserInfo是PO类,数据源
	}

}



public class ClassRelationTable :

package com.zuxia.yc42.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class ClassRelationTable 
{
	public static ClassRelationTable classRelationTable;
	public static Map<String,String> map;
	
	private Properties pop;
	private ClassRelationTable()
	{
		map = new HashMap<String,String>();
		pop = new Properties();
		try {
			pop.load(new FileInputStream("D:\\apache-tomcat-6.0.33\\webapps\\MCV_T1\\WEB-INF\\classes\\class_relation_table.properties"));
			
			Set keys = pop.keySet();
			for(Object key:keys)
			{
				map.put(key.toString(), pop.get(key).toString());
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static ClassRelationTable getInit()
	{
		if(classRelationTable == null)
		{
			classRelationTable = new ClassRelationTable();
		}
		return classRelationTable;
	}
	
	
	/**
	 * 通过className获取表名
	 * @param className
	 * @return
	 */
	public String getTable(String className)
	{
		return map.get(className);
	}

}



class_relation_table.properties:

com.zuxia.yc42.system.po.UserInfo=user_info
com.zuxia.yc42.system.po.RoleInfo=role_info
com.zuxia.yc42.system.po.PostInfo=post_info
com.zuxia.yc42.system.po.DeptInfo=dept_info



public class UserInfo implements Serializable:

package com.zuxia.yc42.system.po;

import java.io.Serializable;
import java.util.Date;

public class UserInfo implements Serializable 
{
	  private Integer usId;
	  private String usNo;
	  private String usName;
	  private String password;
	  private Integer usAge ;
	  private String  usSex;
	  private Date entryTime ;
	  private Integer  pid;
	  private String  idNum;
	  private String   hometown;
	  private String  phone;
	  private String   email ;
	  private String  status;
	  

	public Integer getUsId() {
		return usId;
	}
	public void setUsId(Integer usId) {
		this.usId = usId;
	}
	public String getUsName() {
		return usName;
	}
	public void setUsName(String usName) {
		this.usName = usName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getUsAge() {
		return usAge;
	}
	public void setUsAge(Integer usAge) {
		this.usAge = usAge;
	}
	public String getUsSex() {
		return usSex;
	}
	public void setUsSex(String usSex) {
		this.usSex = usSex;
	}
	public Date getEntryTime() {
		return entryTime;
	}
	public void setEntryTime(Date entryTime) {
		this.entryTime = entryTime;
	}

	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public String getIdNum() {
		return idNum;
	}
	public void setIdNum(String idNum) {
		this.idNum = idNum;
	}
	public String getHometown() {
		return hometown;
	}
	public void setHometown(String hometown) {
		this.hometown = hometown;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getUsNo() {
		return usNo;
	}
	public void setUsNo(String usNo) {
		this.usNo = usNo;
	}
}


public class UserInfoDAO extends BaseDAO<UserInfo> implements IUserInfoDAO :

package com.zuxia.yc42.system.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;

import com.zuxia.yc42.common.dao.BaseDAO;
import com.zuxia.yc42.common.dao.OperatinJDBC;
import com.zuxia.yc42.system.dao.imp.IUserInfoDAO;
import com.zuxia.yc42.system.po.UserInfo;

public class UserInfoDAO extends BaseDAO<UserInfo> implements IUserInfoDAO 
{
		public UserInfoDAO()
		{
			//通过构造函数给父类的ClassName属性赋值
			super.setClassName(UserInfo.class);	
		}

		/**
		 * 根据员工号获取用户信息
		 * @param usNo
		 * @return
		 */
		@Override
		public UserInfo queryUserInfo(String usNo) 
		{
			OperatinJDBC opJDBC = this.getOpJDBC();
			String sql ="select * from user_info where usNo = ? and status='0'";
			UserInfo userInfo = null;
			try 
			{
				PreparedStatement stm = opJDBC.getConn().prepareStatement(sql);
				stm.setString(1, usNo);
				ResultSet rs = stm.executeQuery();
				if(rs.next())
				{
					userInfo = new UserInfo();
					userInfo.setUsId(rs.getInt("usId"));
					userInfo.setUsNo(rs.getString("usNO"));
					userInfo.setUsName(rs.getString("usName"));
					userInfo.setPassword(rs.getString("password"));
					userInfo.setUsAge(rs.getInt("usAge"));
					userInfo.setUsSex(rs.getString("usSex"));
					userInfo.setEmail(rs.getString("email"));
					
					//获取带时分秒的日期
					Calendar rightNow = Calendar.getInstance();
					userInfo.setEntryTime(rs.getDate("entryTime",rightNow));
					
					userInfo.setIdNum(rs.getString("idNum"));
					userInfo.setPhone(rs.getString("phone"));
					userInfo.setStatus(rs.getString("status"));
					userInfo.setHometown(rs.getString("homeTown"));
					
				}
				
			} 
			catch (SQLException e) 
			{
				e.printStackTrace();
			}
			
			
			return userInfo;
		}
		
		public static void main(String[] s)
		{
			IUserInfoDAO dao = new UserInfoDAO();
			UserInfo user = dao.queryUserInfo("T20130002");
			System.out.println(user);
		}
}




public class UserInfoService  extends BaseService<UserInfo> implements IUserInfoService:

package com.zuxia.yc42.system.service;

import com.zuxia.yc42.common.service.BaseService;
import com.zuxia.yc42.system.dao.UserInfoDAO;
import com.zuxia.yc42.system.dao.imp.IUserInfoDAO;
import com.zuxia.yc42.system.po.UserInfo;
import com.zuxia.yc42.system.service.imp.IUserInfoService;

public class UserInfoService  extends BaseService<UserInfo> implements IUserInfoService{
	
	private IUserInfoDAO userDAO;
	
	public UserInfoService()
	{
		userDAO = new UserInfoDAO();
		
		super.setBaseDAO(userDAO);
	}

	@Override
	public UserInfo queryUserInfo(String usNo) 
	{
		return userDAO.queryUserInfo(usNo);
	}
	
}



public class UserManagerServlet extends HttpServlet :

package com.zuxia.yc42.system.servlet;

import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zuxia.yc42.system.po.UserInfo;
import com.zuxia.yc42.system.service.UserInfoService;
import com.zuxia.yc42.system.service.imp.IUserInfoService;

public class UserManagerServlet extends HttpServlet 
{
	private IUserInfoService userService;
	
	public UserManagerServlet()
	{
		userService = new UserInfoService();
	}

	public void doPost(HttpServletRequest request,HttpServletResponse response)
	{
		//获取流程标识
		String flag = request.getParameter("flag");	
		//<form action="usManager?flag=login" method="post">
		
		if(flag.equals("login"))
		{
			usLogin(request,response);
		}
		else if(flag.equals("save"))
		{
			UserInfo userInfo = new UserInfo();
			userInfo.setUsNo("T20030003");
			userInfo.setUsName("root1");
			userInfo.setPassword("123");
			userInfo.setUsAge(20);
			userInfo.setUsSex("0");
			userInfo.setEmail("wh1@qq.com");
			
			//获取带时分秒的日期
			//Calendar rightNow = Calendar.getInstance();
			userInfo.setEntryTime(new Date());
			
			userInfo.setIdNum("51545454541");
			userInfo.setPhone("125454585");
			userInfo.setStatus("0");
			userInfo.setHometown("重庆");
			
			userService.saveInfo(userInfo);
		}
		else if(flag.equals("modify"))
		{
			
		}
		else if(flag.equals("delete"))
		{
			
		}
		else if(flag.equals("query"))
		{
			
		}
		else 
		{
			
		}
	}
	
	public void doGet(HttpServletRequest request,HttpServletResponse response)
	{
		doPost(request,response);
	}
	
	/**
	 * 用户登录时调用方法
	 * @param request
	 * @param response
	 */
	private void usLogin(HttpServletRequest request,HttpServletResponse response)
	{
		String url ="";
		
		//前台获取员工号及登录密码
		String usNo = request.getParameter("usNo");
		String password = request.getParameter("usPass");
		
		//根据员工号获取用户信息
		UserInfo userInfo = userService.queryUserInfo(usNo);
		
		if(userInfo != null && userInfo.getPassword().trim().equals(password.trim()))
		{
			//登录成功跳转至首页
			url ="/jsp/main.jsp";
			request.getSession().setAttribute("user",userInfo);
		}
		else
		{
			//登录失败跳转至登录页面
			url ="/jsp/login.jsp";
			request.setAttribute("msg","用户名或密码错误!");
		}
		//跳转
		try {
			request.getRequestDispatcher(url).forward(request, response);
		} catch (ServletException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}



以下是具体演示代码:

package com.zuxia.yc42.common.dao.imp

public interface IBaseDAO<T>

package com.zuxia.yc42.common.dao.imp;

import com.zuxia.yc42.common.dao.OperatinJDBC;
import com.zuxia.yc42.util.PageList;

public interface IBaseDAO<T>
{
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	public boolean saveInfo(T t);
	
	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	public boolean deleleInfo(Integer id);
	
	/**
	 * 根据对象修改数据库信息
	 * @param t
	 * @return
	 */
	public boolean modifyInfo(T t);
	
	/**
	 * 根据ID查询数据库信息
	 * @param id
	 * @return
	 */
	public T queryInfo(Integer id);

	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	public PageList<T> queryInfos(PageList<T> pageList);
	
	/**
	 * 设置className
	 * @param className
	 */
	public void setClassName(Class<T> className);
	
	/**
	 * 获取数据库连接对象
	 * @return
	 */
	public OperatinJDBC getOpJDBC();
}



package com.zuxia.yc42.common.dao

public class BaseDAO <T>implements IBaseDAO <T>

package com.zuxia.yc42.common.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.system.dao.UserInfoDAO;
import com.zuxia.yc42.system.dao.imp.IUserInfoDAO;
import com.zuxia.yc42.system.po.UserInfo;
import com.zuxia.yc42.util.ClassRelationTable;
import com.zuxia.yc42.util.PageList;

public class BaseDAO <T>implements IBaseDAO <T>
{
	//1.需要往那张表中存储数据   2.可以通过反射的方式获取到所有的实例类【PO】成员属性
	private Class className;
	
	private OperatinJDBC opJDBC;
	
	private ClassRelationTable cr_Table;
	
	public BaseDAO()
	{
		opJDBC = new OperatinJDBC();
		cr_Table = ClassRelationTable.getInit();
	}
	
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	@Override
	public boolean saveInfo(T t) {
		//获取操作表
		String tableName = cr_Table.getTable(className.getName());
		//通过反射 反射出className对象 封装SQL语句
		String sql = "";
		
		
		boolean flag = false;
		//执行Sql
		try {
			Statement stm  = opJDBC.getConn().createStatement();
			flag = stm.execute(sql);
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
			//关闭数据库连接
			opJDBC.closeConn();
		}
		
		
		return flag;
	}
	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	@Override
	public boolean deleleInfo(Integer id) {
		// TODO Auto-generated method stub
		return false;
	}
	/**
	 * 根据对象修改数据库信息
	 * @param t
	 * @return
	 */
	@Override
	public boolean modifyInfo(T t) {
		// TODO Auto-generated method stub
		return false;
	}
	/**
	 * 根据ID查询数据库信息
	 * @param id
	 * @return
	 */
	@Override
	public T queryInfo(Integer id) {
		// TODO Auto-generated method stub
		return null;
	}
	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	@Override
	public PageList<T> queryInfos(PageList<T> pageList) {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * 获取数据库连接对象
	 * @return
	 */
	@Override
	public OperatinJDBC getOpJDBC() {
		// TODO Auto-generated method stub
		return opJDBC;
	}
	
	/**
	 * 设置className
	 * @param className
	 */
	public void setClassName(Class<T> className) {
		this.className = className;
	}

	public static void  main(String[] s)
	{
		IUserInfoDAO bsDAO = new UserInfoDAO();
		bsDAO.saveInfo(new UserInfo());
	}
}



package com.zuxia.yc42.common.dao

public class OperatinJDBC 

package com.zuxia.yc42.common.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class OperatinJDBC 
{
	private String className = "oracle.jdbc.driver.OracleDriver";
	private String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	private String user="yc42";
	private String password="yc42";
	private Connection conn = null;

	/**
	 * 获取数据库连接
	 * @return
	 */
	public Connection getConn()
	{
		try {
			Class.forName(className);
			conn = DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return conn;	
	}
	
	/**
	 * 关闭数据库连接
	 */
	public void closeConn()
	{
		if(conn!=null)
		{
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}



package com.zuxia.yc42.common.service.imp

public interface IBaseService <T>

package com.zuxia.yc42.common.service.imp;

import com.zuxia.yc42.util.PageList;

public interface IBaseService <T>
{
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	public boolean saveInfo(T t);
	
	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	public boolean deleleInfo(Integer id);
	
	/**
	 * 根据对象修改数据库信息
	 * @param t
	 * @return
	 */
	public boolean modifyInfo(T t);
	
	/**
	 * 根据ID查询数据库信息
	 * @param id
	 * @return
	 */
	public T queryInfo(Integer id);

	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	public PageList<T> queryInfos(PageList<T> pageList);
	
}



package com.zuxia.yc42.common.service

public class BaseService<T> implements IBaseService<T> 

package com.zuxia.yc42.common.service;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.common.service.imp.IBaseService;
import com.zuxia.yc42.util.PageList;

public class BaseService<T> implements IBaseService<T> 
{

	private IBaseDAO<T> baseDAO;
	
	/**
	 * 根据对象保存数据至数据库
	 * @param t
	 * @return
	 */
	@Override
	public boolean saveInfo(T t) 
	{
		return baseDAO.saveInfo(t);
	}
	/**
	 * 根据ID删除对象
	 * @param id
	 * @return
	 */
	@Override
	public boolean deleleInfo(Integer id) 
	{
		return baseDAO.deleleInfo(id);
	}
	/**
	 * 根据对象修改数据库信息
	 * @param t
	 * @return
	 */
	@Override
	public boolean modifyInfo(T t) 
	{
		return baseDAO.modifyInfo(t);
	}
	/**
	 * 根据ID查询数据库信息
	 * @param id
	 * @return
	 */
	@Override
	public T queryInfo(Integer id) 
	{
		return baseDAO.queryInfo(id);
	}
	/**
	 * 根据分页对象查询数据库信息
	 * @param pageList
	 * @return
	 */
	@Override
	public PageList<T> queryInfos(PageList<T> pageList) 
	{
		return baseDAO.queryInfos(pageList);
	}
	
	/**
	 * 设置DAO类
	 * @param baseDAO
	 */
	public void setBaseDAO(IBaseDAO<T> baseDAO) 
	{
		this.baseDAO = baseDAO;
	}
}



package com.zuxia.yc42.system.dao.imp

public interface IDeptInfoDAO extends IBaseDAO<DeptInfo>

package com.zuxia.yc42.system.dao.imp;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.system.po.DeptInfo;

public interface IDeptInfoDAO extends IBaseDAO<DeptInfo> {

}


public interface IPostInfoDAO extends IBaseDAO<PostInfo>

package com.zuxia.yc42.system.dao.imp;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.system.po.PostInfo;

public interface IPostInfoDAO extends IBaseDAO<PostInfo> {

}


public interface IRoleInfoDAO extends IBaseDAO<RoleInfo>

package com.zuxia.yc42.system.dao.imp;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.system.po.RoleInfo;

public interface IRoleInfoDAO extends IBaseDAO<RoleInfo> {

}


public interface IUserInfoDAO extends IBaseDAO<UserInfo>

package com.zuxia.yc42.system.dao.imp;

import com.zuxia.yc42.common.dao.imp.IBaseDAO;
import com.zuxia.yc42.system.po.UserInfo;

public interface IUserInfoDAO extends IBaseDAO<UserInfo>
{

	/**
	 * 根据员工号获取用户信息
	 * @param usNo
	 * @return
	 */
	public UserInfo queryUserInfo(String usNo);
}



package com.zuxia.yc42.system.dao

public class DeptInfoDAO extends BaseDAO<DeptInfo> implements IDeptInfoDAO:

package com.zuxia.yc42.system.dao;

import com.zuxia.yc42.common.dao.BaseDAO;
import com.zuxia.yc42.system.dao.imp.IDeptInfoDAO;
import com.zuxia.yc42.system.po.DeptInfo;

public class DeptInfoDAO extends BaseDAO<DeptInfo> implements IDeptInfoDAO {

	public DeptInfoDAO()
	{
		super();
		super.setClassName(DeptInfo.class);
	}
}


public class PostInfoDAO extends BaseDAO<PostInfo> implements IPostInfoDAO

package com.zuxia.yc42.system.dao;

import com.zuxia.yc42.common.dao.BaseDAO;
import com.zuxia.yc42.system.dao.imp.IPostInfoDAO;
import com.zuxia.yc42.system.po.PostInfo;

public class PostInfoDAO extends BaseDAO<PostInfo> implements IPostInfoDAO {
	public PostInfoDAO()
	{
		super.setClassName(PostInfo.class);
	}
}


public class RoleInfoDAO extends BaseDAO<RoleInfo>  implements IRoleInfoDAO

package com.zuxia.yc42.system.dao;

import com.zuxia.yc42.common.dao.BaseDAO;
import com.zuxia.yc42.system.dao.imp.IRoleInfoDAO;
import com.zuxia.yc42.system.po.RoleInfo;

public class RoleInfoDAO extends BaseDAO<RoleInfo>  implements IRoleInfoDAO {
	
	public RoleInfoDAO()
	{
		super.setClassName(RoleInfo.class);
	}

}


public class UserInfoDAO extends BaseDAO<UserInfo> implements IUserInfoDAO

package com.zuxia.yc42.system.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;

import com.zuxia.yc42.common.dao.BaseDAO;
import com.zuxia.yc42.common.dao.OperatinJDBC;
import com.zuxia.yc42.system.dao.imp.IUserInfoDAO;
import com.zuxia.yc42.system.po.UserInfo;

public class UserInfoDAO extends BaseDAO<UserInfo> implements IUserInfoDAO 
{
		public UserInfoDAO()
		{
			super.setClassName(UserInfo.class);
		}

		/**
		 * 根据员工号获取用户信息
		 * @param usNo
		 * @return
		 */
		@Override
		public UserInfo queryUserInfo(String usNo) 
		{
			OperatinJDBC opJDBC = this.getOpJDBC();
			String sql ="select * from user_info where usNo = ? and status='0'";
			UserInfo userInfo = null;
			try 
			{
				PreparedStatement stm = opJDBC.getConn().prepareStatement(sql);
				stm.setString(1, usNo);
				ResultSet rs = stm.executeQuery();
				if(rs.next())
				{
					userInfo = new UserInfo();
					userInfo.setUsId(rs.getInt("usId"));
					userInfo.setUsNo(rs.getString("usNO"));
					userInfo.setUsName(rs.getString("usName"));
					userInfo.setPassword(rs.getString("password"));
					userInfo.setUsAge(rs.getInt("usAge"));
					userInfo.setUsSex(rs.getString("usSex"));
					userInfo.setEmail(rs.getString("email"));
					
					//获取带时分秒的日期
					Calendar rightNow = Calendar.getInstance();
					userInfo.setEntryTime(rs.getDate("entryTime",rightNow));
					
					userInfo.setIdNum(rs.getString("idNum"));
					userInfo.setPhone(rs.getString("phone"));
					userInfo.setStatus(rs.getString("status"));
					userInfo.setHometown(rs.getString("homeTown"));
					
				}
				
			} 
			catch (SQLException e) 
			{
				e.printStackTrace();
			}
			
			
			return userInfo;
		}
		
		public static void main(String[] s)
		{
			IUserInfoDAO dao = new UserInfoDAO();
			UserInfo user = dao.queryUserInfo("T20130002");
			System.out.println(user);
		}
}



package com.zuxia.yc42.system.po

public class DeptInfo implements Serializable 

package com.zuxia.yc42.system.po;

import java.io.Serializable;

public class DeptInfo implements Serializable
{
	   private Integer dpId;
	   private String dname;
	   private String usId;
	   private String dremark;
	   private String status;
	   
	public Integer getDpId() {
		return dpId;
	}
	public void setDpId(Integer dpId) {
		this.dpId = dpId;
	}
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	public String getUsId() {
		return usId;
	}
	public void setUsId(String usId) {
		this.usId = usId;
	}
	public String getDremark() {
		return dremark;
	}
	public void setDremark(String dremark) {
		this.dremark = dremark;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
}


public class PostInfo implements Serializable :

package com.zuxia.yc42.system.po;

import java.io.Serializable;

public class PostInfo implements Serializable 
{
	 private Integer pid; 
	 private String pname;
	 private String premark;
	 private Integer dpId;
	 private String status; 
	 private Integer rid;
	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
	public String getPremark() {
		return premark;
	}
	public void setPremark(String premark) {
		this.premark = premark;
	}
	public Integer getDpId() {
		return dpId;
	}
	public void setDpId(Integer dpId) {
		this.dpId = dpId;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public Integer getRid() {
		return rid;
	}
	public void setRid(Integer rid) {
		this.rid = rid;
	}
}


public class PurViewInfo implements Serializable 

package com.zuxia.yc42.system.po;

import java.io.Serializable;

public class PurViewInfo implements Serializable 
{
	private Integer pid;
	private String pflag;
	private String premark;
	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public String getPflag() {
		return pflag;
	}
	public void setPflag(String pflag) {
		this.pflag = pflag;
	}
	public String getPremark() {
		return premark;
	}
	public void setPremark(String premark) {
		this.premark = premark;
	}
	
	
}


public class RoleInfo implements Serializable :

package com.zuxia.yc42.system.po;

import java.io.Serializable;

public class RoleInfo implements Serializable {
	private Integer rid;
	private String rname;
	private String rremark;
	private String status;
	
	public Integer getRid() {
		return rid;
	}
	public void setRid(Integer rid) {
		this.rid = rid;
	}
	public String getRname() {
		return rname;
	}
	public void setRname(String rname) {
		this.rname = rname;
	}
	public String getRremark() {
		return rremark;
	}
	public void setRremark(String rremark) {
		this.rremark = rremark;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
}


public class RolePurviewInfo implements Serializable

package com.zuxia.yc42.system.po;

import java.io.Serializable;

public class RolePurviewInfo implements Serializable 
{

	private Integer rpId;
	private Integer rid;
	private Integer pid;
	public Integer getRpId() {
		return rpId;
	}
	public void setRpId(Integer rpId) {
		this.rpId = rpId;
	}
	public Integer getRid() {
		return rid;
	}
	public void setRid(Integer rid) {
		this.rid = rid;
	}
	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
}


public class UserInfo implements Serializable 

package com.zuxia.yc42.system.po;

import java.io.Serializable;
import java.util.Date;

public class UserInfo implements Serializable 
{
	  private Integer usId;
	  private String usNo;
	  private String usName;
	  private String password;
	  private Integer usAge ;
	  private String  usSex;
	  private Date entryTime ;
	  private Integer  pid;
	  private String  idNum;
	  private String   hometown;
	  private String  phone;
	  private String   email ;
	  private String  status;
	  

	public Integer getUsId() {
		return usId;
	}
	public void setUsId(Integer usId) {
		this.usId = usId;
	}
	public String getUsName() {
		return usName;
	}
	public void setUsName(String usName) {
		this.usName = usName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getUsAge() {
		return usAge;
	}
	public void setUsAge(Integer usAge) {
		this.usAge = usAge;
	}
	public String getUsSex() {
		return usSex;
	}
	public void setUsSex(String usSex) {
		this.usSex = usSex;
	}
	public Date getEntryTime() {
		return entryTime;
	}
	public void setEntryTime(Date entryTime) {
		this.entryTime = entryTime;
	}

	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public String getIdNum() {
		return idNum;
	}
	public void setIdNum(String idNum) {
		this.idNum = idNum;
	}
	public String getHometown() {
		return hometown;
	}
	public void setHometown(String hometown) {
		this.hometown = hometown;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getUsNo() {
		return usNo;
	}
	public void setUsNo(String usNo) {
		this.usNo = usNo;
	}
}



package com.zuxia.yc42.system.service.imp

public interface IDeptInfoService extends IBaseService<DeptInfo>

package com.zuxia.yc42.system.service.imp;

import com.zuxia.yc42.common.service.imp.IBaseService;
import com.zuxia.yc42.system.po.DeptInfo;

public interface IDeptInfoService extends IBaseService<DeptInfo> {

}


public interface IPostInfoService extends IBaseService<PostInfo>

package com.zuxia.yc42.system.service.imp;

import com.zuxia.yc42.common.service.imp.IBaseService;
import com.zuxia.yc42.system.po.PostInfo;

public interface IPostInfoService extends IBaseService<PostInfo> {

}


public interface IRoleInfoService extends IBaseService<RoleInfo> 

package com.zuxia.yc42.system.service.imp;

import com.zuxia.yc42.common.service.imp.IBaseService;
import com.zuxia.yc42.system.po.RoleInfo;

public interface IRoleInfoService extends IBaseService<RoleInfo> {

}


public interface IUserInfoService  extends IBaseService<UserInfo> 

package com.zuxia.yc42.system.service.imp;

import com.zuxia.yc42.common.service.imp.IBaseService;
import com.zuxia.yc42.system.po.UserInfo;

public interface IUserInfoService  extends IBaseService<UserInfo> 
{
	/**
	 * 根据员工号查询用户信息
	 * @param usNo
	 * @return
	 */
	public UserInfo queryUserInfo(String usNo);

}



package com.zuxia.yc42.system.service

public class DeptInfoService extends BaseService<DeptInfo> implements IDeptInfoService 

package com.zuxia.yc42.system.service;

import com.zuxia.yc42.common.service.BaseService;
import com.zuxia.yc42.system.po.DeptInfo;
import com.zuxia.yc42.system.service.imp.IDeptInfoService;

public class DeptInfoService extends BaseService<DeptInfo> implements IDeptInfoService 
{

}


public class PostInfoService extends BaseService<PostInfo> implements IPostInfoService

package com.zuxia.yc42.system.service;

import com.zuxia.yc42.common.service.BaseService;
import com.zuxia.yc42.system.po.PostInfo;
import com.zuxia.yc42.system.service.imp.IPostInfoService;

public class PostInfoService extends BaseService<PostInfo> implements IPostInfoService {


}


public class RoleInfoService extends BaseService<RoleInfo> implements IRoleInfoService

package com.zuxia.yc42.system.service;

import com.zuxia.yc42.common.service.BaseService;
import com.zuxia.yc42.system.po.RoleInfo;
import com.zuxia.yc42.system.service.imp.IRoleInfoService;

public class RoleInfoService extends BaseService<RoleInfo> implements IRoleInfoService 
{

}


public class UserInfoService  extends BaseService<UserInfo> implements IUserInfoService

package com.zuxia.yc42.system.service;

import com.zuxia.yc42.common.service.BaseService;
import com.zuxia.yc42.system.dao.UserInfoDAO;
import com.zuxia.yc42.system.dao.imp.IUserInfoDAO;
import com.zuxia.yc42.system.po.UserInfo;
import com.zuxia.yc42.system.service.imp.IUserInfoService;

public class UserInfoService  extends BaseService<UserInfo> implements IUserInfoService{
	
	private IUserInfoDAO userDAO;
	
	public UserInfoService()
	{
		userDAO = new UserInfoDAO();
		
		super.setBaseDAO(userDAO);
	}

	@Override
	public UserInfo queryUserInfo(String usNo) 
	{
		return userDAO.queryUserInfo(usNo);
	}
	
}



package com.zuxia.yc42.system.servlet

public class DeptManagerServlet extends HttpServlet

package com.zuxia.yc42.system.servlet;

import javax.servlet.http.HttpServlet;

public class DeptManagerServlet extends HttpServlet {

}


public class PostManagerServlet extends HttpServlet

package com.zuxia.yc42.system.servlet;

import javax.servlet.http.HttpServlet;

public class PostManagerServlet extends HttpServlet {

}


public class RoleManagerServlet extends HttpServlet

package com.zuxia.yc42.system.servlet;

import javax.servlet.http.HttpServlet;

public class RoleManagerServlet extends HttpServlet {

}


public class UserManagerServlet extends HttpServlet 

package com.zuxia.yc42.system.servlet;

import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zuxia.yc42.system.po.UserInfo;
import com.zuxia.yc42.system.service.UserInfoService;
import com.zuxia.yc42.system.service.imp.IUserInfoService;

public class UserManagerServlet extends HttpServlet 
{
	private IUserInfoService userService;
	
	public UserManagerServlet()
	{
		userService = new UserInfoService();
	}

	public void doPost(HttpServletRequest request,HttpServletResponse response)
	{
		//获取流程标识
		String flag = request.getParameter("flag");
		
		if(flag.equals("login"))
		{
			usLogin(request,response);
		}
		else if(flag.equals("save"))
		{
			UserInfo userInfo = new UserInfo();
			userInfo.setUsNo("T20030003");
			userInfo.setUsName("root1");
			userInfo.setPassword("123");
			userInfo.setUsAge(20);
			userInfo.setUsSex("0");
			userInfo.setEmail("wh1@qq.com");
			
			//获取带时分秒的日期
			//Calendar rightNow = Calendar.getInstance();
			userInfo.setEntryTime(new Date());
			
			userInfo.setIdNum("51545454541");
			userInfo.setPhone("125454585");
			userInfo.setStatus("0");
			userInfo.setHometown("重庆");
			
			userService.saveInfo(userInfo);
		}
		else if(flag.equals("modify"))
		{
			
		}
		else if(flag.equals("delete"))
		{
			
		}
		else if(flag.equals("query"))
		{
			
		}
		else 
		{
			
		}
	}
	
	public void doGet(HttpServletRequest request,HttpServletResponse response)
	{
		doPost(request,response);
	}
	
	/**
	 * 用户登录时调用方法
	 * @param request
	 * @param response
	 */
	private void usLogin(HttpServletRequest request,HttpServletResponse response)
	{
		String url ="";
		
		//前台获取员工号及登录密码
		String usNo = request.getParameter("usNo");
		String password = request.getParameter("usPass");
		
		//根据员工号获取用户信息
		UserInfo userInfo = userService.queryUserInfo(usNo);
		
		if(userInfo != null && userInfo.getPassword().trim().equals(password.trim()))
		{
			//登录成功跳转至首页
			url ="/jsp/main.jsp";
			request.getSession().setAttribute("user",userInfo);
		}
		else
		{
			//登录失败跳转至登录页面
			url ="/jsp/login.jsp";
			request.setAttribute("msg","用户名或密码错误!");
		}
		//跳转
		try {
			request.getRequestDispatcher(url).forward(request, response);
		} catch (ServletException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}



package com.zuxia.yc42.util

public class ClassRelationTable 

package com.zuxia.yc42.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class ClassRelationTable 
{
	public static ClassRelationTable classRelationTable;
	public static Map<String,String> map;
	
	private Properties pop;
	private ClassRelationTable()
	{
		map = new HashMap<String,String>();
		pop = new Properties();
		try {
			pop.load(new FileInputStream("D:\\apache-tomcat-6.0.33\\webapps\\MCV_T1\\WEB-INF\\classes\\class_relation_table.properties"));
			
			Set keys = pop.keySet();
			for(Object key:keys)
			{
				map.put(key.toString(), pop.get(key).toString());
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static ClassRelationTable getInit()
	{
		if(classRelationTable == null)
		{
			classRelationTable = new ClassRelationTable();
		}
		return classRelationTable;
	}
	
	
	/**
	 * 通过className获取表名
	 * @param className
	 * @return
	 */
	public String getTable(String className)
	{
		return map.get(className);
	}

}


public class PageList<T> 

package com.zuxia.yc42.util;

public class PageList<T> 
{

}


class_relation_table.properties

com.zuxia.yc42.system.po.UserInfo=user_info
com.zuxia.yc42.system.po.RoleInfo=role_info
com.zuxia.yc42.system.po.PostInfo=post_info
com.zuxia.yc42.system.po.DeptInfo=dept_info


jsp/login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	<center>${msg}</center>
    <form action="usManager?flag=login" method="post">
    		<table align="center" border="1" width="90%">
    			<tr>
    				<th>员工号</th>
    				<td>
    					<input type="text" name="usNo"/>
    				</td>
    			</tr>
    			<tr>
    				<th>密  码</th>
    				<td>
    					<input type="password" name="usPass"/>
    				</td>
    			</tr>
    			<tr>
    				<td colspan="2" align="center">
    					<input type="submit" value=" 登  录  "/>
    					<input type="reset" value=" 重  置 "/>
    				</td>
    			</tr>
    		</table>
    </form>
  </body>
</html>


jsp/main.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <form >
    	<ul>
    		<li><a href="usManager?save">添加用户</a></li>
    		<li><a href="usManager?modify">修改用户</a></li>
    		<li><a href="usManager?delete">删除用户</a></li>
    		<li><a href="usManager?query">查询用户</a></li>
    	</ul>
    	
    </form>
  </body>
</html>


web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>	
  <servlet>
  	<servlet-name>RoleManager</servlet-name>
  	<servlet-class>com.zuxia.yc42.system.servlet.RoleManagerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>RoleManager</servlet-name>
  	<url-pattern>/roleManager</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>UserManager</servlet-name>
  	<servlet-class>com.zuxia.yc42.system.servlet.UserManagerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>UserManager</servlet-name>
  	<url-pattern>/usManager</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>



使用到的oracle 表:

--创建序列
create sequence dept_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/
create sequence post_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/

create sequence role_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/
create sequence pur_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/

create sequence role_purView_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/

create sequence user_seq
increment by 1
start with 1
 maxvalue 999999999
 minvalue 1
 cache 10
/

--创建表
/*==============================================================*/
/* Table: dept_info                                           */
/*==============================================================*/
create table dept_info  (
   dpId               INTEGER                         not null,
   dName              VARCHAR2(20),
   usId               INTEGER,
   dRemark            VARCHAR2(200),
   status             char(1),
   constraint PK_DEPT_INFO primary key (dpId)
)
/

/*==============================================================*/
/* Table: post_info                                           */
/*==============================================================*/
create table post_info  (
   pId                INTEGER                         not null,
   pName              VARCHAR2(20),
   pRemark            VARCHAR2(200),
   dpId               INTEGER,
   status             char(1),
   rId                INTEGER,
   constraint PK_POST_INFO primary key (pId)
)
/

/*==============================================================*/
/* Table: purView_info                                        */
/*==============================================================*/
create table purView_info  (
   pId                INTEGER                         not null,
   pFlag              VARCHAR2(20),
   pRemark            VARCHAR2(100),
   constraint PK_PURVIEW_INFO primary key (pId)
)
/

/*==============================================================*/
/* Table: role_info                                           */
/*==============================================================*/
create table role_info  (
   rId                INTEGER                         not null,
   rName              VARCHAR2(20),
   rRemark            VARCHAR2(100),
   status             CHAR(1),
   constraint PK_ROLE_INFO primary key (rId)
)
/

/*==============================================================*/
/* Table: role_purview_info                                   */
/*==============================================================*/
create table role_purview_info  (
   rpId               INTEGER                         not null,
   rId                INTEGER,
   pId                INTEGER,
   constraint PK_ROLE_PURVIEW_INFO primary key (rpId)
)
/

/*==============================================================*/
/* Table: user_info                                           */
/*==============================================================*/
create table user_info  (
   usId               NUMBER(9)                       not null,
   usName             VARCHAR2(20),
   password           VARCHAR2(32),
   usAge              INTEGER,
   usSex              char(1),
   entryTime          DATE,
   pId                integer,
   idNum              varchar2(20),
   hometown           VARCHAR2(20),
   phone              VARCHAR2(11),
   email              VARCHAR2(50),
   status             char(1),
   constraint PK_USER_INFO primary key (usId)
)
/

--修改user_info表字段:添加员工号字段,该字段不允许重复
alter table user_info add(usNO char(9) unique);

--创建表关系
alter table post_info
   add constraint FK_POST_INF_REFERENCE_DEPT_INF foreign key (dpId)
      references dept_info (dpId)
/

alter table post_info
   add constraint FK_POST_INF_REFERENCE_ROLE_INF foreign key (rId)
      references role_info (rId)
/

alter table role_purview_info
   add constraint FK_ROLE_PUR_REFERENCE_PURVIEW_ foreign key (pId)
      references purView_info (pId)
/

alter table role_purview_info
   add constraint FK_ROLE_PUR_REFERENCE_ROLE_INF foreign key (rId)
      references role_info (rId)
/

alter table user_info
   add constraint FK_USER_INF_REFERENCE_POST_INF foreign key (pId)
      references post_info (pId)
/

--创建触发器  用于主键自增
create trigger tib_dept_info before insert
on dept_info for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column dpId uses sequence dept_seq
    select dept_seq.NEXTVAL INTO :new.dpId from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/


create trigger tib_post_info before insert
on post_info for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column pId uses sequence post_seq
    select post_seq.NEXTVAL INTO :new.pId from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/


create trigger tib_purview_info before insert
on purView_info for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column pId uses sequence pur_seq
    select pur_seq.NEXTVAL INTO :new.pId from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/


create trigger tib_role_purview_info before insert
on role_purview_info for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column rpId uses sequence role_purView_seq
    select role_purView_seq.NEXTVAL INTO :new.rpId from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/


create trigger tib_user_info before insert
on user_info for each row
declare
    integrity_error  exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;

begin
    --  Column usId uses sequence user_seq
    select user_seq.NEXTVAL INTO :new.usId from dual;

--  Errors handling
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
/










select * from user_info for update;

select * from user_info where usNo='admin' and status='0';

insert into user_info (usname,password,usage,ussex,entrytime,pid,idnum,hometown,phone,email,status,usno)
	values('管理员',123,18,'1',sysdate,null,'5145151515151','重庆','15954546321','wh@qq.com','0','T20130001');
insert into user_info (usname,password,usage,ussex,entrytime,pid,idnum,hometown,phone,email,status,usno)
	values('无效数据',123,18,'1',sysdate,null,'5145151515151','北京','15954546321','w1h@qq.com','1','T20130002');
commit;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值