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

[经验分享] SpringMVC(四) 连接oracle数据库操作

[复制链接]

尚未签到

发表于 2016-8-2 21:59:35 | 显示全部楼层 |阅读模式
  首先看一下项目结构

DSC0000.png

实体类
  package com.dragon.entity;
  public class UserInfo {
private int user_id;
private String user_name;
private String user_password;
public int getUser_id() {
return user_id;
}
public void setUser_id(int userId) {
user_id = userId;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String userName) {
user_name = userName;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String userPassword) {
user_password = userPassword;
}

}

Dao层
  package com.dragon.dao;
  import java.util.List;
  import com.dragon.entity.UserInfo;
  public interface UserInfoDao {
public abstract List<UserInfo> getAll();
public abstract int insertUserInfo(UserInfo userInfo);
}


实现层
  package com.dragon.dao.impl;
  import java.util.ArrayList;
import java.util.List;
  import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
  import com.dragon.dao.UserInfoDao;
import com.dragon.entity.UserInfo;
  
  public class UserInfoDaoImpl extends SimpleJdbcDaoSupport implements
UserInfoDao {
/**
* 获得所有
*/
public List<UserInfo> getAll() {
// TODO Auto-generated method stub
List<UserInfo> userInfoList = new ArrayList<UserInfo>();
String sql = "select * from UserInfo";
userInfoList = super.getSimpleJdbcTemplate().query(sql,ParameterizedBeanPropertyRowMapper.newInstance(UserInfo.class));
return userInfoList;
}
/**
* 增加
*/
public int insertUserInfo(UserInfo userInfo) {
// TODO Auto-generated method stub
String sql="INSERT INTO UserInfo values(:user_id,:user_name,:user_password)";
//返回受影响的行数
int count = super.getSimpleJdbcTemplate().update(sql, new MapSqlParameterSource().addValue("user_id", userInfo.getUser_id()).addValue("user_name", userInfo.getUser_name()).addValue("user_password", userInfo.getUser_password()));
return count;
}
  }


Controller类
  package com.dragon.controller;
  import java.util.ArrayList;
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.UserInfoDao;
import com.dragon.entity.UserInfo;
  /**
  *查询所有
  */
  public class UserInfoController extends AbstractController {
  private UserInfoDao userInfoDao;

public UserInfoDao getUserInfoDao() {
return userInfoDao;
}
  public void setUserInfoDao(UserInfoDao userInfoDao) {
this.userInfoDao = userInfoDao;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
//定义用户集合
List<UserInfo> userInfoList = new ArrayList<UserInfo>();
//调用获得所有的方法
userInfoList = this.userInfoDao.getAll();
//创建集合
Map<String,Object> models = new HashMap<String, Object>();
//保存对象
models.put("userInfoList", userInfoList);
return new ModelAndView("index.jsp",models);
}
  }

添加
  package com.dragon.controller;
  import java.util.ArrayList;
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.UserInfoDao;
import com.dragon.entity.UserInfo;
  public class AddUserInfoController extends AbstractController {
private UserInfoDao userInfoDao;

public UserInfoDao getUserInfoDao() {
return userInfoDao;
}
  public void setUserInfoDao(UserInfoDao userInfoDao) {
this.userInfoDao = userInfoDao;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub

UserInfo userInfo = new UserInfo();

//获得用户的输入
userInfo.setUser_id(Integer.valueOf(request.getParameter("user_id")));
userInfo.setUser_name(request.getParameter("user_name"));
userInfo.setUser_password(request.getParameter("user_password"));

System.out.println(userInfo.getUser_id());

int i = this.userInfoDao.insertUserInfo(userInfo);
System.out.println(i);
//定义用户集合
List<UserInfo> userInfoList = new ArrayList<UserInfo>();
//调用获得所有的方法
userInfoList = this.userInfoDao.getAll();
//创建集合
Map<String,Object> models = new HashMap<String, Object>();
//保存对象
models.put("userInfoList", userInfoList);
return new ModelAndView("index.jsp",models);
}
  }


jdbc.properties配置文件
  jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=system
jdbc.password=orcl


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"
>


<!-- 配置spring mvc 支持-->
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置spring映射 -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

springapp-servlet.xml
  <?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" >
  
<bean id="userController" name="/userController.do" class="com.dragon.controller.UserInfoController">
<property name="userInfoDao" ref="userInfoDao"></property>
</bean>
<bean id="addUserInfoController" name="/add.do" class="com.dragon.controller.AddUserInfoController">
<property name="userInfoDao" ref="userInfoDao"></property>
</bean>
<!-- -->
<bean id="userInfoDao" class="com.dragon.dao.impl.UserInfoDaoImpl">
<property name="dataSource" ref="dataSource"></property>
</bean>
  <!-- 配置事务管理器 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 加载文件的路径 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</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="get*" read-only="true"></tx:method>
<tx:method name="insert*" propagation="REQUIRED"></tx:method>
<tx:method name="update*" propagation="REQUIRED"></tx:method>
<tx:method name="delete*" propagation="REQUIRED"></tx:method>

<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>


  </beans>


index.jsp
  <%@ 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 '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>
<tr>
<td>编号</td>
<td>名称</td>
<td>密码</td>
<td>操作</td>
</tr>

<j:forEach var="userInfo" items="${userInfoList }" >
<tr>
<td> <j:out value="${userInfo.user_id}"></j:out> </td>
<td> <j:out value="${userInfo.user_name}"></j:out></td>
<td> <j:out value="${userInfo.user_password}"></j:out></td>
<td><a href="" >删除</a></td>
</tr>

</j:forEach>
<tr >
<td colspan="4"><a href="add.jsp">添加</a></td>
</tr>
</table>
</body>
</html>


add.jsp
  <%@ 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="add.do" method="post">
编号:<input type="text" value="" name="user_id"/><br/>
名称:<input type="text" value="" name="user_name"/><br/>
密码:<input type="text" value="" name="user_password"/><br/>
<input value="提交" type="submit" />
</form>
</body>
</html>


访问的路径
http://localhost:8080/SpringMVC_JDBC/userController.do

慢慢的理解 其实这些官方的文档中都是有的  这种方法不是太好 一个操作就需要创建一个controller 类
数据库脚本
  CREATE TABLE UserInfo(
user_id NUMBER(5) PRIMARY KEY NOT NULL,
user_name NVARCHAR2(50) ,
user_password nvarchar2(50)
);
insert into UserInfo values(1,'1001','000000');
insert into UserInfo values(2,'1002','000000');
insert into UserInfo values(3,'1003','000000');
insert into UserInfo values(4,'1004','000000');
insert into UserInfo values(5,'1005','000000');
commit;



  <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-252176-1-1.html 上篇帖子: oracle 11g PL/SQL Programming学习六 下篇帖子: Oracle学习 sql基本语法(三)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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