设为首页 收藏本站
查看: 412|回复: 0

[经验分享] Spring MVC + oracle 实现增删改查

[复制链接]

尚未签到

发表于 2016-8-4 16:32:05 | 显示全部楼层 |阅读模式
DSC0000.jpg
  jar包只要这几个就好了
  数据库

  ---------创建表
CREATE TABLE UserInfo (
user_id number(5) primary key not null,
user_name nvarchar2(50) not null,
user_password nvarchar2(50)
);
commit;
  insert into UserInfo values(1,'1001','111111');
insert into UserInfo values(2,'1002','111111');
insert into UserInfo values(3,'1003','111111');
insert into UserInfo values(4,'1004','111111');
insert into UserInfo values(5,'1005','111111');
commit;
  SELECT * FROM UserInfo;
  

Spring 配置文件
  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- springmvc访问页面是通过名字来获取的 对应于映射 mapping -->
<bean name="/index.action" class="com.dragon.controller.HelloController">
<!-- 执行成功返回的页面 -->
<property name="successView" value="index"></property>
</bean>
  <!-- 配置视图解析器 可以大大的简化代码 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置视图模式提供jstl的支持 以便于国际化 -->
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<!-- 前缀 -->
<property name="prefix" value="/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
  <!-- 配置数据库连接 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 数据库连接驱动 -->
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<!-- 数据库连接地址 -->
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<!-- 用户名 -->
<property name="username" value="system" />
<!-- 密码 -->
<property name="password" value="orcl" />
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
  <aop:config>
<aop:advisor pointcut="execution(* *com.dragon.dao.*(..))"
advice-ref="txAdvice" />
</aop:config>
<!-- 指定哪些方法应用事务处理 -->
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
  <bean id="userDao" class="com.dragon.dao.impl.UserDaoImpl">
<property name="dataSource" ref="dataSource" ></property>
</bean>
<!-- 查询全部的方法 -->
<bean id="userController" name="/selectAll.action" class="com.dragon.controller.UserController">
<property name="userDaoImpl" ref="userDao"></property>
</bean>
<!-- 添加的方法 -->
<bean id="addUserController" name="/addUser.action" class="com.dragon.controller.AddController">
<property name="userDaoImpl" ref="userDao"></property>
<!-- 请求转发 -->
<property name="successView" value="selectAll.action"></property>
</bean>
<!-- 删除的方法 -->
<bean id="deleteUserController" name="/deleteUser.action" class="com.dragon.controller.DeleteController">
<property name="userDaoImpl" ref="userDao"></property>
<!-- 请求转发 -->
<property name="successView" value="selectAll.action"></property>
</bean>
<!-- 加载修改 -->
<bean id="loadEditController" name="/loadUser.action" class="com.dragon.controller.LoadEdit">
<property name="userDaoImpl" ref="userDao"></property>
</bean>
<!-- 修改 -->
<bean id="editUserController" name="/editUser.action" class="com.dragon.controller.EditController">
<property name="userDaoImpl" ref="userDao"></property>
<!-- 请求转发 -->
<property name="successView" value="selectAll.action"></property>
</bean>
</beans>


WEB.XML
  <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<display-name></display-name>
  <!-- 配置spring支持 -->
<!-- 配置spring的核心控制器 -->
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置拦截 action为后缀名的请求 -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>



index页面
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="j" uri="<A href="http://java.sun.com/jsp/jstl/core"%" rel="nofollow">http://java.sun.com/jsp/jstl/core"%>
<%
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 'index.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>
<table border="1">
<tr>
<td>编号</td>
<td>名称</td>
<td>密码</td>
<td>操作</td>
</tr>
<j:forEach var="user" items="${maps.userInfoList }">
<tr>
<td><j:out value="${user.user_id }"></j:out>
</td>
<td><j:out value="${user.user_name }"></j:out>
</td>
<td><j:out value="${user.user_password }"></j:out>
</td>
<td>&nbsp;&nbsp;&nbsp;<a href="deleteUser.action?user_id=${user.user_id }">删除</a>&nbsp;&nbsp;&nbsp;<a
href="loadUser.action?user_id=${user.user_id }">修改</a>
</td>
</tr>
</j:forEach>
<tr>
<td><a href="add.jsp"> 添加</a>
</td>
  </tr>
</table>
</body>
</html>



edit页面
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="j" uri="http://java.sun.com/jsp/jstl/core" %>
<%
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 'edit.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 action="editUser.action" method="post">
<table border="1">
<tr>
<td>编号</td>
<td><input type="text" value="${userInfo.user_id }" name="user_id" ></td>
</tr>
<tr>
<td>名称</td>
<td><input type="text" value="${userInfo.user_name }" name="user_name"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="text" value="${userInfo.user_password }" name="user_password"></td>
</tr>
<tr>
<td><input type="submit" value="修改" /></td>
</tr>
</table>
</form>
</body>
</html>



add页面
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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 'add.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 action="addUser.action" method="post">
<table border="1" >
<tr>
<td>编号:<input value="" name="user_id" type="text" /></td>
<td>名称:<input value="" name="user_name" type="text" /></td>
<td>密码:<input value="" name="user_password" type="text" /></td>
<td><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
</body>
</html>

实体类
  
package com.dragon.entity;import java.io.Serializable;
/**
* 用户类
* @author Administrator
*
*/
public class UserInfo implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int user_id;
private String user_name;
private String user_password;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
public UserInfo(int user_id, String user_name, String user_password) {
super();
this.user_id = user_id;
this.user_name = user_name;
this.user_password = user_password;
}
public UserInfo() {
super();
}}
  
UserDao 类  package com.dragon.dao;
  import java.util.List;
  import com.dragon.entity.UserInfo;
  public interface UserDao {
public abstract List<UserInfo> getAllUser();
public abstract int addUserInfo(UserInfo userInfo);
public abstract UserInfo getUserInfo(int id);
public abstract int deleteUserInfo(UserInfo userInfo);
public abstract int updateUserInfo(UserInfo userInfo);
}
userDaoImpl 类  package com.dragon.dao.impl;
  import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
  import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
  public class UserDaoImpl extends SimpleJdbcDaoSupport implements UserDao {
/**
* 查询全部
*/
public List<UserInfo> getAllUser() {
// TODO Auto-generated method stub
List<UserInfo> userInfoList = null;
try {
String sql = "select * from userInfo";
//ParameterizedBeanPropertyRowMapper.newInstance(UserInfo.class)
userInfoList = this.getSimpleJdbcTemplate().query(sql, new UserMapper() );
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return userInfoList;
}
  @SuppressWarnings("unused")
private static class UserMapper implements ParameterizedRowMapper<UserInfo>{
/**
* 从数据库中检索到数据的时候转换为实体类的类型
*/
public UserInfo mapRow(ResultSet resultSet, int rowNum) throws SQLException {
// TODO Auto-generated method stub
UserInfo userInfo = new UserInfo();
userInfo.setUser_id(resultSet.getInt("user_id"));
userInfo.setUser_name(resultSet.getString("user_name"));
userInfo.setUser_password(resultSet.getString("user_password"));
  return userInfo;
}
  }
/**
* 添加用户对象的方法
*/
public int addUserInfo(UserInfo userInfo) {
// TODO Auto-generated method stub
//定义sql语句
String sql = "insert into UserInfo values(:user_id,:user_name,:user_password )";
int result = 0;
try {
result = this.getSimpleJdbcTemplate().update(sql, new MapSqlParameterSource()
.addValue("user_id", userInfo.getUser_id())
.addValue("user_name", userInfo.getUser_name())
.addValue("user_password", userInfo.getUser_password()));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
  return result;
}
/**\
* 根据编号查询对象信息
*/
public UserInfo getUserInfo(int id) {
// TODO Auto-generated method stub
UserInfo userInfo = null;
try {
String sql = "SELECT * FROM UserInfo WHERE user_id = :user_id";
//根据编号查询对象
List<UserInfo> userInfoList = this.getSimpleJdbcTemplate().query(sql, new UserMapper(), new MapSqlParameterSource().addValue("user_id", id));
if(userInfoList.size()>0){
userInfo = userInfoList.get(0);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return userInfo;
}
/**
* 删除的方法
*/
public int deleteUserInfo(UserInfo userInfo) {
// TODO Auto-generated method stub
int result = 0;
try {
String sql = "DELETE FROM UserInfo WHERE user_id=:user_id";
result = this.getSimpleJdbcTemplate().update(sql, new MapSqlParameterSource().addValue("user_id", userInfo.getUser_id()));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return result;
}
/**
* 修改的方法
*/
public int updateUserInfo(UserInfo userInfo) {
// TODO Auto-generated method stub
int result = 0;
try {
String sql = "UPDATE UserInfo SET user_name =:user_name,user_password=:user_password WHERE user_id=:user_id";
result = this.getSimpleJdbcTemplate().update(sql, new MapSqlParameterSource().addValue("user_name", userInfo.getUser_name()).addValue("user_password", userInfo.getUser_password()).addValue("user_id", userInfo.getUser_id()));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return result;
}
  
}

查询全部的Controller  package com.dragon.controller;
  import java.util.HashMap;
import java.util.List;
import java.util.Map;
  import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
  public class UserController extends AbstractController {
private UserDao userDaoImpl;
public UserDao getUserDaoImpl() {
return userDaoImpl;
}
public void setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
private String successView;
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
List<UserInfo> userInfoList = this.userDaoImpl.getAllUser();
//for (int i = 0; i < userInfoList.size(); i++) {
//System.out.println(userInfoList.get(i).getUser_name());
//}
//创建集合对象保存参数结果
Map<String, Object> maps = new HashMap<String, Object>();
//保存用户信息集合
maps.put("userInfoList", userInfoList);
return new ModelAndView("index","maps",maps);
}
  }

加载修改的Controller  package com.dragon.controller;
  import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
  public class LoadEdit extends AbstractController {
private UserDao userDaoImpl;
public UserDao getUserDaoImpl() {
return userDaoImpl;
}
public void setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
private String successView;
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String user_id = request.getParameter("user_id");
UserInfo userInfo = this.userDaoImpl.getUserInfo(Integer.valueOf(user_id));
return new ModelAndView("edit", "userInfo" ,userInfo);
}
  }

执行修改的Controller  package com.dragon.controller;
  import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.view.RedirectView;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
/**
* 修改的方法
* @author Administrator
*
*/
public class EditController implements Controller {
private UserDao userDaoImpl;
public UserDao getUserDaoImpl() {
return userDaoImpl;
}
public void setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
private String successView;
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//获得用户的输入
String user_id = request.getParameter("user_id");
String user_name = request.getParameter("user_name");
String user_password = request.getParameter("user_password");
UserInfo userInfo = this.userDaoImpl.getUserInfo(Integer.valueOf(user_id));
userInfo.setUser_id(Integer.valueOf(user_id));
userInfo.setUser_name(user_name);
userInfo.setUser_password(user_password);
int result = this.userDaoImpl.updateUserInfo(userInfo);
if(result>0){
return new ModelAndView(new RedirectView(this.getSuccessView()));
}
return new ModelAndView("edit");
}
  }

删除的Controller  package com.dragon.controller;
  import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.web.servlet.view.RedirectView;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
/**
* 删除的方法
* @author Administrator
*
*/
public class DeleteController extends AbstractController {
private UserDao userDaoImpl;
public UserDao getUserDaoImpl() {
return userDaoImpl;
}
public void setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
private String successView;
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
//获得用户的输入
String user_id = request.getParameter("user_id");
//查询当前的对象
UserInfo userInfo = this.userDaoImpl.getUserInfo(Integer.valueOf(user_id));
int result = 0;
if(userInfo!=null){
//调用删除的方法
result = this.userDaoImpl.deleteUserInfo(userInfo);
}
//判断是否删除成功
if(result>0){
return new ModelAndView(new RedirectView(this.getSuccessView()));
}
return new ModelAndView("error");
}
  }

添加的Controller  package com.dragon.controller;
  import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.web.servlet.view.RedirectView;
  import com.dragon.dao.UserDao;
import com.dragon.entity.UserInfo;
/**
* 添加的方法
* @author Administrator
*
*/
public class AddController extends AbstractController {
private UserDao userDaoImpl;
public UserDao getUserDaoImpl() {
return userDaoImpl;
}
public void setUserDaoImpl(UserDao userDaoImpl) {
this.userDaoImpl = userDaoImpl;
}
private String successView;
public String getSuccessView() {
return successView;
}
public void setSuccessView(String successView) {
this.successView = successView;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
//获得用户的输入
String user_id = request.getParameter("user_id");
String user_name = request.getParameter("user_name");
String user_password = request.getParameter("user_password");
UserInfo userInfo = new UserInfo();
userInfo.setUser_id(Integer.valueOf(user_id));
userInfo.setUser_name(user_name);
userInfo.setUser_password(user_password);
//调用插入的方法
int result = this.userDaoImpl.addUserInfo(userInfo);
// 判断用户是否插入成功
if(result>0){
//如果插入成功请求重定向
return new ModelAndView(new RedirectView(this.getSuccessView()));
}
return new ModelAndView("add");
}
  }

代码黏贴就可以用 只要jar文件正确  希望能对您有所帮助!最简单也是最傻瓜的方式!
  <wbr></wbr>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252941-1-1.html 上篇帖子: Oracle 经典SQL 专为笔试准备【转】 下篇帖子: ORACLE start with conect by 详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表