关闭

Spring-mvc整合mybatis-oracle11g-druid数据源

标签: springmvcmybatisspring数据源整合
5953人阅读 评论(0) 收藏 举报
分类:

今天做了个小练习,spring-mvc整合mybatis。使用的表是,oracle自带的emp表。

项目内容:
对emp表的增删改查

项目所使用的框架版本
Spring 3.1
mybatis 3.2
oracle 11g
druid 1.0.15

废话不多话,上图解释。

这里写图片描述

先展示各个配置文件的内容
web.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>EmpMgr</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <!-- 启动Spring -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:app*.xml</param-value>
    </context-param>

    <!-- 启动Spring MVC -->
    <servlet>
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 查看数据源 -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

    <!-- 解决中文乱码问题 -->
    <filter>
        <filter-name>encode</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encode</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

generatorConfig.xml 。至于如何使用mybatis逆向工程,请访问本博客专栏mybatis如何实现逆向工程

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>

    <context id="context1" targetRuntime="MyBatis3Simple"
        defaultModelType="flat">
        <commentGenerator>
            <property name="suppressDate" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="scott"
            password="tiger" />

        <javaModelGenerator targetPackage="com.mvc.zxf.emp.entity"
            targetProject="EmpMgr/src" />
        <sqlMapGenerator targetPackage="com.mvc.zxf.emp.dao"
            targetProject="EmpMgr/src" />
        <javaClientGenerator targetPackage="com.mvc.zxf.emp.dao"
            targetProject="EmpMgr/src" type="XMLMAPPER" />
        <table tableName="emp">
            <generatedKey column="empno" sqlStatement="select SEQ_EMP.nextval from dual" />
        </table>
    </context>
</generatorConfiguration>

mvc-servlet.xml spring mvc 配置

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

    <!-- 开启注解的功能 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <context:component-scan base-package="com.mvc.zxf.emp.ctrl"/>

    <!-- 解决静态资源被拦截的问题 -->
    <mvc:default-servlet-handler/>

    <!-- 配置视图解析器,使得在JSP中能够使用完整的JSTL功能 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

mybatis-config.xml mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置日志系统,采用log4j作为日志工具 -->
    <settings>
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <!-- 配置别名 -->
    <typeAliases>
        <package name="com.mvc-mybatis.zxf.emp.entity" />
    </typeAliases>
</configuration>

log4j.properties 日志记录文件

# Global logging configuration
#log4j.rootLogger=ERROR, stdout, E
log4j.rootLogger=info, stdout, E
# JDBC and MyBatis logging configuration...
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout

# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

# Save error message to file...
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ../logs/slsdw_error_
log4j.appender.E.DatePattern=yyyy-MM-dd'.log'
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

jdbc.properties 驱动属性配置

driverClassName=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc_username=scott
jdbc_password=tiger

applicationContext.xml 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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
    xsi:schemaLocation="
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd
    ">
    <!-- 读取属性文件 -->
    <bean id="config"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties"></property>
    </bean>

    <!-- 配置数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
        <!-- 基本属性 url、user、password -->
        <property name="url" value="${jdbc_url}" />
        <property name="username" value="${jdbc_username}" />
        <property name="password" value="${jdbc_password}" />

        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="10" />
        <property name="minIdle" value="10" />
        <property name="maxActive" value="20" />

        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="60000" />

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="validationQuery" value="SELECT 'x' FROM DUAL" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize"
            value="20" />

        <!-- 配置监控统计拦截的filters -->
        <property name="filters" value="stat" />
    </bean>

    <!-- 配置Mybatis会话工厂 -->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:mybatis-config.xml" />
    </bean>
    <!-- 自动扫描mybatis映射接口,并生成实现类 -->

    <mybatis:scan base-package="com.mvc.zxf.emp.dao" />
    <!-- 自动扫描业务类包 -->
    <context:component-scan base-package="com.mvc.zxf.emp.biz" />

    <!-- 配置事物管理器 -->
    <bean id="txMgr"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 配置声明式事务 -->
    <tx:advice transaction-manager="txMgr" id="txAdvice">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="create*" propagation="REQUIRED" />
            <tx:method name="remove*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="modify*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="find*" propagation="REQUIRED" read-only="true" />
            <tx:method name="search*" propagation="REQUIRED" read-only="true" />
            <tx:method name="get*" propagation="REQUIRED" read-only="true" />
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut expression="execution(* *..biz..*.*(..))"
            id="txSrvMethod" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txSrvMethod" />
    </aop:config>

</beans>

实现的效果如下图:
运行结果

项目资源分享
链接:http://pan.baidu.com/s/1c0pyogw 密码:zdg9

如有问题,请留言交流,谢谢。

0
0
查看评论

SpringMVC+Druid+Oracle配置

项目内容:  对emp表的增删改查 项目所使用的框架版本  Spring 3.1  mybatis 3.2  oracle 11g  druid 1.0.15 废话不多话,上图解释。 先展示各个配置文件的...
  • opera95
  • opera95
  • 2017-06-13 17:22
  • 485

阿里数据库连接池druid连接Oracle 11g R2报错:not support oracle driver 1.0

今天碰到问题druid链接orcal报错 not support oracle driver 1.0 百度了一下 发现各种人 说各种ojdbc可行 试了一下 都不行 最后 去orcal目录下找jdbc文件夹下 lib中 ojdbc6 测试 可用  去你的orca...
  • u012848229
  • u012848229
  • 2016-04-05 17:19
  • 1580

解决Druid设置Oracle的Clob字段时的小坑

众所周知,Oracle有很多坑, 所以才有了去IOE。在使用Druid做数据库连接池后,其实偶尔也会碰到小坑,这就是使用开源项目所必须去填平的。【如果使用不开源的产品,那就不是坑,而是陷阱了,你都不知道怎么去填坑】用Druid连接池,通过JDBC往Oracle数据库的Clob字段插入数据,或者更新数...
  • renfufei
  • renfufei
  • 2015-04-05 13:39
  • 7965

淘宝druid数据库连接池使用示例

参考: 淘宝连接池Druid  http://www.zhurouyoudu.com/index.php/archives/635/ http://code.alibabatech.com/wiki/display/Druid/Home druid使用 http://blog.csdn....
  • tower888
  • tower888
  • 2013-05-22 16:18
  • 35794

阿里数据库连接池druid连接Oracle 11g R2报错:not support oracle driver 1.0

1、背景及环境 这几天在捣鼓Struts2+Spring3+Hibernate4+Maven+EasyUI的整合,JDK1.7,数据库采用Oracle 11g R2,驱动采用ojdbc14,数据库连接池采用阿里巴巴的druid(完整的包名为com.alibaba.druid.pool.Drui...
  • longtingjing
  • longtingjing
  • 2014-12-08 15:26
  • 7998

alibaba/druid 常见问题

1,363 Fork895 renfufei edited this page on 16 Sep 2014 · 51 revisions  ...
  • codepython
  • codepython
  • 2015-01-03 00:17
  • 14888

配置配置DruidDataSource

1JDBC直连数据配置项 使用cmd进入对应的druid-1.0.4.jar包所在路径;再根据密码执行上述命令后获取密文 java -cp druid-1.0.4.jar com.alibaba.druid.filter.config.ConfigTools...
  • qq_16485855
  • qq_16485855
  • 2016-02-15 15:32
  • 9941

Druid 配置详解

好记忆不如烂笔头,作为人类灵魂的工程师(自诩),脑子还是不够用的,所以有的东西,还是要记下来的。 最近在看了看阿里巴巴的 druid 数据连接,觉得还是很牛逼的,毕竟人家阿里家业在哪里摆的啦,不废话了,见到列举下druid 的配置信息: 1 配置 和dbcp类似,druid的常...
  • supingemail
  • supingemail
  • 2016-03-05 18:03
  • 5996

Druid连接池简介和配置

Druid集连接池,监控于一体整好复合当前项目的需要,项目是ssh结构,之前是用C3p0的,现在换一个连接池也是很简单的,首先spring配置DataSource,配置如下: [html] view plain copy bean id="dataSource&qu...
  • burpee
  • burpee
  • 2016-05-26 14:51
  • 4132

数据库阿里连接池 druid配置详解

java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。 首先从 http://...
  • hj7jay
  • hj7jay
  • 2016-06-16 00:34
  • 75901
    个人资料
    • 访问:296408次
    • 积分:4219
    • 等级:
    • 排名:第8603名
    • 原创:148篇
    • 转载:8篇
    • 译文:0篇
    • 评论:56条
    博客专栏