`

maven+ssi对oracle实现增删改查(二)

阅读更多
1.index.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>Insert title here</title>
	<script type="text/javascript">  
    var link;  
    function doLink(link) {  
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }  
	</script> 
</head>
<body>
	<form id="myform" action="login" method="post">  
    <input type="button" name="b2" value="注册"  
        onClick="window.open('register.jsp','new','height=250,width=400,top=100,left=400')" />     
      
    <input type="button" name="b1" value="用户管理"  
        onClick="doLink('queryall')" />
    <br> 
    username:<input type="text" name="nuser" />  
    <br>  
    password:<input type="password" name="password" />  
    <br>  
    <input type="submit" name="sub" value="登录" />      
    <input type="reset" name="reset" value="重置" />  
</form> 
</body>
</html>

2.主页上“注册”按钮的页面文件
  <%@ 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 action="register" method="post" id="myform">
		用户名:
		<input type="text" name="nuser" id="nuserid"><br/>
		密      码:
		<input type="password" name="password"  ><br>
		<input type="submit" value="注册" >
	</form>
</body>
</html>

3. com.action 的UserManagerAction.java
  import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.service.IUserManager;
import com.vo.User_SSI;

public class UserManagerAction extends ActionSupport {  

	private static final long serialVersionUID = 1L;
	private String nuser;  
    private String password; 
	
    private IUserManager managerService;  
          
    public String queryall() {  
        List<User_SSI> list = managerService.queryall();  
        HttpServletRequest request = ServletActionContext.getRequest();  
        request.setAttribute("nuserList", list);  
        return SUCCESS;
    }  
  
    public String register() {
    	User_SSI user_SSI = new User_SSI();
    	user_SSI.setNuser(nuser);
    	user_SSI.setPassword(password);
        boolean flag = false;  
        System.out.println("测试执行了action中的这句没有!");
        flag = managerService.register(user_SSI);  
  
        return flag==true?SUCCESS:ERROR;  
    }  
      
    public String update() { 
    	User_SSI user_SSI = new User_SSI();
    	
        HttpServletRequest request = ServletActionContext.getRequest();  
        String nuser2 = request.getParameter("nuser"); //获取页面中的值
        String pwd2 = request.getParameter("password");
        this.setNuser(nuser2); //设置到相应的属性中
        this.setPassword(pwd2);
        user_SSI.setNuser(nuser);
    	user_SSI.setPassword(password);
        System.out.println("------------获得需要修改的用户名-----------------"+nuser2);
        boolean flag = false;
        System.out.println("nuser=>"+nuser);
        System.out.println("getusername()=>"+getNuser());
        flag = managerService.update(user_SSI); 
  
      // return flag==true?SUCCESS:ERROR; //这里还不能让程序直接执行更新操作。
        return SUCCESS;
    }  
      
    @SuppressWarnings("unused")
	public String delete() {  
        HttpServletRequest request = ServletActionContext.getRequest();  
        String nuser=request.getParameter("nuser");  
        boolean flag = false;  
        flag = managerService.delete(getNuser());  
  
        return flag==true?SUCCESS:ERROR;  
    }


	public String getNuser() {
		return nuser;
	}

	public void setNuser(String nuser) {
		this.nuser = nuser;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public IUserManager getManagerService() {
		return managerService;
	}
	
	public void setManagerService(IUserManager managerService) {
		this.managerService = managerService;
	}
}

4. vo包
 package com.vo;

public class User_SSI {
	private String nuser;
	private String password;
	public User_SSI() {
		super();
	}
	public User_SSI(String nuser, String password) {
		super();
		this.nuser = nuser;
		this.password = password;
	}
	public String getNuser() {
		return nuser;
	}
	public void setNuser(String nuser) {
		this.nuser = nuser;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

5.service层的代码
  package com.service;

import java.util.List;
import com.vo.User_SSI;
//管理用户的一些方法定义在接口中
public interface IUserManager {
	 public List<User_SSI> queryall() ;
	 public boolean register(User_SSI user_SSI);
	 public boolean update(User_SSI user_SSI);
	 public boolean delete(String username);
}


//接口具体的实现
package com.service;

import java.util.List;

import com.dao.IUserDao;
import com.vo.User_SSI;

public class ManagerService implements IUserManager {  
    private IUserDao userDao;
  
	public List<User_SSI> queryall(){  
        List<User_SSI> l1 = userDao.queryUser();  
        return l1;
    }  
      
    public boolean register(User_SSI user_SSI){  
    	  
    	System.out.println("----------------"+user_SSI.getNuser());
    	System.out.println("----------------"+user_SSI.getPassword());
        userDao.insertUser(user_SSI);//出过一个NullPointer异常,是因为在这里不能新new一个User,要依赖于Spring注入  
        return true;  
    }  
    
    public boolean update(User_SSI user_SSI){  
        return userDao.updateUser(user_SSI);  
    }  
      
    public boolean delete(String username){  
        return userDao.deleteUser(username);  
    }
	public IUserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}  
} 

6.用户管理中dao层的操作:
  package com.dao;

import java.util.List;

import com.vo.User_SSI;

public interface IUserDao {
	public List<User_SSI> queryUser();
	public boolean deleteUser(String id);
	public void insertUser(User_SSI u);
	public boolean updateUser(User_SSI u);
	public List<User_SSI> queryUserName(String name);
}

  package com.dao;

import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.vo.User_SSI;
public class UserDaoImpl extends SqlMapClientDaoSupport implements IUserDao {  
    
    /*这儿不用手动初始化了,等着spring注入完直接用  
    * spring会往service里,注入一个带dataSource和ibatis配置的dao  
    *   
   private static SqlMapClient sqlMap; 
   void init() { 
       try { 
         Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");//借助Reader读入xml配置,注意位置  
         sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); 
         reader.close();  
       } catch (IOException e) { 
         // Fail fast. 
         throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e); 
       } 
     } 
   */   
   @SuppressWarnings("unchecked")
public List<User_SSI> queryUser() {
       List<User_SSI> list = null;  
       list = getSqlMapClientTemplate().queryForList("User.getAllUser");  
       return list;      
   }  
 
   public boolean deleteUser(String id) {  
       int deletedCount = 0;  
       deletedCount = getSqlMapClientTemplate().delete("User.deleteUserById",id);  
         
       return deletedCount>0?true:false;      
   }  
 
   @SuppressWarnings("unused")
public void insertUser(User_SSI u) {  
       int insertCount = 0;  
       getSqlMapClientTemplate().insert("User.insertUser",u);    
   }  
 
   public boolean updateUser(User_SSI u) {  
       int updatedCount = 0;    
       updatedCount = getSqlMapClientTemplate().update("User.updateUser",u);  
       System.out.println("updatedCount=>"+updatedCount);   
       return updatedCount>0?true:false;  
   }  
 
   @SuppressWarnings("unchecked")
public List<User_SSI> queryUserName(String uname) {  
       List<User_SSI> list = null;  
       list = getSqlMapClientTemplate().queryForList("User.selectUserByUsername",uname);
       return list;  
   }  
} 

----------------------------以上用户管理的实现------------------------
7.用户登录action
  package com.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.service.ILogin;

public class LoginAction extends ActionSupport {
	/**
	 * test ssi seconde
	 * author cat
	 */
	private static final long serialVersionUID = 1L;
	private String nuser;
	private String password;
	private ILogin loginService;

	public LoginAction() {
	}

	public String login(){
		boolean flag = false;
		//System.out.println("--------action flag返回值----"+flag);
		//System.out.println(getNuser()+"------"+getPassword());
		flag = loginService.login(getNuser(), getPassword());
		//System.out.println("--------action flag返回值 step 2----"+flag);
		if (true == flag) {
			Map<String, Object> attibutes = ActionContext.getContext()
					.getSession();// 记录用户登录信息
			attibutes.put("nuser", nuser);
			attibutes.put("password", password);// 登录session
		}
		return flag == true ? SUCCESS : ERROR;
	}

	public String logOut() {
		Map<String, Object> attibutes = ActionContext.getContext().getSession();
		attibutes.remove("nuser");
		return SUCCESS;
	}

	public String getNuser() {
		return nuser;
	}

	public void setNuser(String nuser) {
		this.nuser = nuser;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public ILogin getLoginService() {
		return loginService;
	}

	public void setLoginService(ILogin loginService) {
		this.loginService = loginService;
	}
}

8.  用户登录service
  package com.service;

public interface ILogin {
	public boolean login(String nuser, String password);
}

package com.service;

import java.util.List;

import com.dao.IUserDao;
import com.vo.User_SSI;

public class LoginService implements ILogin {  
    private IUserDao userDao;  
      
    public boolean login(String nuser, String password) {  
    	User_SSI user = new User_SSI();
        user.setNuser(nuser);  
        user.setPassword(password);  
        List<User_SSI> l = userDao.queryUserName(user.getNuser());  
        if(l==null || l.size()==0)
        	return false;
        for(int i=0;i<l.size();i++){  
            String pwd = l.get(i).getPassword();  
            if(user.getPassword().equals(pwd))   
                return true;
        }  
        return false;  
    }

	public IUserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}
}

9.一些页面 manager.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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>
	<script type="text/javascript">  
    var link;  
    function doLink(link) {  
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }  
	</script>
</head>
<body>
	<form action="#" id="myform" name="myform" method="post">  
<table border=1 width="80%">  
    <tr>  
        <th width="39%">用户名</th>  
        <th width="39%">密码</th>  
        <th>修改</th>  
        <th>删除</th>  
    </tr>
    <tr>  
        <s:iterator value="#request.nuser" id="id" status="st">  
            <s:if test="#st.index%2==0||#st.last"> 
             <tr>        
             </s:if>
            <td><s:property value="#id.nuser" /></td>  
            <td><s:property value="#id.password" /></td>  
            <td><input style="width: 40px; height: 40px" name="button"  
                    type="button" class="class1" onMouseOver="this.className='class2'"onMouseOut="this.className='class1'"  
                    onClick="window.open('update.action?nuser=<s:property value="#id.nuser" />&password=<s:property value="#id.password" />','new','height=500,width=800,top=100,left=400')"  
                    value="修改" /></td>
            <td><input style="width: 40px; height: 40px" name="button"  
                    type="button" class="class3" onMouseOver="this.className= 'class4'"onMouseOut="this.className='class3'"  
                    onclick="doLink('delete?nuser=<s:property value="#id.nuser" />')"  
                    value="删除" /></td>
            <s:if test="#st.index%2==0||#st.last">
            <!-- 这里本多一个tr -->       
              </s:if> 
        </s:iterator>  
    </tr>  
</table>  
</form> 
</body>
</html>


update.jsp (其它不是太复杂的页面省略)。
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!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>update_date</title>
	<!-- 根据传参控制调用的Action以及方法 -->  
<script type="text/javascript">  
    var link;
    function doLink(link) { 
        document.getElementById("myform").action = link;  
        document.getElementById("myform").submit();  
    }
</script> 
</head>
<body>
   <h4>
    修改:
   </h4>
   <s:form name="myForm" action="register" method="post">
    <table border="1" cellpadding="1" cellspacing="1" width="480">
      <tr><td>
       	用户名:<input type="text" name="nuser" value="${nuser}"><!-- 这个name需跟action中的一致 -->
                     密     码:<input type="password" name="password" value="${password}">
      <input type="hidden" name="id" value="${dto.id}">
      </td></tr>
    </table><br>
    <input value="提交" type="submit">&nbsp;&nbsp;&nbsp; 
    <input type="reset" value="重 置">&nbsp;&nbsp;&nbsp;    
    <input type="button" value="返 回"
     onclick="window.location.href='javascript:history.go(-1)'">
   </s:form>
</body>
</html>

详细的见附件,里面包括源码和数据库文件。
分享到:
评论

相关推荐

    Maven+SpringBoot+MyBatis+MySQL实现增删改查源码

    本教程将通过一个实际的项目案例,讲解如何使用Maven、SpringBoot、MyBatis和MySQL这四个关键技术来实现基本的数据增删改查(CURD)功能。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Maven是一个项目...

    spring mvc + mybatis + maven + easyui + oracle 数据库实现增删改查.rar

    这个项目"spring mvc + mybatis + maven + easyui + oracle 数据库实现增删改查"就是一个典型的例子,它整合了五个关键组件来完成常见的CRUD(创建、读取、更新和删除)操作。以下是对这些技术及其相互作用的详细...

    Maven + Spring +Mysql实现简单增删改查及用户登录

    本项目旨在为初学者提供一个基础的增删改查(CRUD)操作和用户登录功能的实现教程。下面我们将深入探讨这个组合中的每个组件及其在实际开发中的作用。 **Maven** 是一个项目管理和综合工具,主要用于管理Java项目的...

    maven+spring+springmvc+hiberante+easyui实现的增删改查

    在本项目中,我们主要探讨的是一个基于"Maven+Spring+SpringMVC+Hibernate+EasyUI"技术栈实现的典型企业级应用系统,主要用于完成基本的CRUD(增删改查)操作。以下是对这些技术及其在项目中的作用的详细说明: 1. ...

    maven +mabatis+springmvc 实现web增删改查

    下面将详细讲解如何利用这些技术实现Web应用的增删改查功能,并针对描述中的“按数据库格式添加数据”进行重点解析。 1. Maven:Maven是一个项目管理和综合工具,它提供了统一的方式来构建、管理和部署Java项目。在...

    spring mvc + mybatis + maven + easyui + oracle 数据库实现增删改查

    在本项目中,我们主要利用一系列技术来构建一个完整的Web应用程序,实现对数据库的数据操作,包括增、删、改、查等基本功能。这个项目基于Java后端开发框架,前端UI设计以及Oracle数据库,具体涉及的技术栈有Spring ...

    Maven+SpringBoot+JPA单表增删改查实例

    本项目选择了"Maven+SpringBoot+JPA"这一技术栈,旨在提供一个简单的单表操作示例,帮助开发者快速理解如何在Spring Boot环境下使用Maven构建项目,并通过Spring Data JPA实现数据的增删改查功能。 首先,让我们...

    springboot+maven+mybatis实现的项目增删改查实例

    总之,"springboot+maven+mybatis实现的项目增删改查实例"是一个很好的学习资源,它帮助初学者理解这三大技术如何协同工作,以及如何构建一个简单的Java Web应用。通过这个实例,开发者可以迅速掌握SpringBoot的便捷...

    Springmvc+maven+ajax+jquery+json+mybatis登录增删改查详细注释

    Springmvc+maven+ajax+jquery+json+mybatis做的登录,注册,增删改查详细注释,大家可以来一下,看看对自己有没有帮助哈,这是我自己一点点的打的,采用MyEclipse 10运行出来.并且付有sql脚本.可直接导入运行.并且经本人...

    IntelliJ IDEA下SpringBoot+Maven+JPA+Thymeleaf整合实现增删改查及分页入门项目实例.zip

    主要利用IntelliJ IDEA作为集成开发环境,SpringBoot作为核心框架,Maven作为项目构建工具,JPA(Java Persistence API)作为持久层解决方案,以及Thymeleaf作为视图层模板引擎,实现了基本的增删改查(CRUD)功能和...

    Maven+SpringMVC+Mybatis的增删改查Demo

    使用Idea工具开发,Maven+SpringMVC+Mybatis的增删改查Demo,也是根据网上找的demo,自己亲自动手写的,在编写过程也是遇到了各种小问题,不过都一一处理,里面附带了一个简单文档和建表语句,希望对你有所帮助。...

    springboot+mybatis+mysql+layUI+thymeleaf实现增删改查

    在本项目中,我们利用了SpringBoot、MyBatis、MySQL、LayUI和Thymeleaf这五种核心技术,构建了一个完整的Web应用程序,实现了学生信息管理系统的增删改查功能。下面将对这些技术及其在项目中的应用进行详细解释。 *...

    maven+ssm+redis增删改查小demo

    本项目“maven+ssm+redis增删改查小demo”提供了一个基本的示例,展示了如何在SSM基础上利用Redis进行数据的高效存储和检索。 **1. Spring框架** Spring作为Java企业级应用的核心框架,提供了依赖注入(DI)和面向切...

    springmvc+mybatis+maven登陆、增删改查、分页实例-初学者必选(含数据库)

    在本项目中,MyBatis作为数据访问层,与数据库进行交互,执行SQL语句,实现了对数据的增删改查操作。通过Mapper接口和XML配置文件,开发者可以方便地编写和执行SQL,同时避免了直接操作JDBC的繁琐。 3. **Maven**:...

    使用springmvc+maven做简单的网页增删改查

    在本文中,我们将深入探讨如何使用Spring MVC和Maven构建一个基本的Web应用程序,实现网页上的数据增删改查(CRUD)功能。这适用于初学者,帮助他们快速理解和掌握这两种技术的结合。 首先,Spring MVC是Spring框架...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    Ibatis与MySQL的结合,使得开发者能够方便地执行SQL查询,实现数据的增删改查操作。 整合这五个技术的关键在于配置。在Maven的pom.xml文件中,需要定义所有依赖项,确保所有组件的版本兼容。在Spring的配置文件中,...

    springboot+mybatis-plus+gradle+mysql+swagger基础增删改查、树形查询

    本项目基于一系列技术栈,包括Spring Boot、MyBatis Plus、Gradle、MySQL和Swagger,实现了一个基础的增删改查(CRUD)功能,并提供了树形查询的能力。下面将详细介绍这些技术及其在项目中的应用。 **1. Spring ...

    maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架

    maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查...

Global site tag (gtag.js) - Google Analytics