maven+srping+springmvc+mybatis的环境搭建的每一步和代码

 

                                SSM框架搭建

一、            引入需要的jar包(maven形式)

由于需要oracle官方授权,所以maven上无法下载ojdbc,需要自己下载,然后通过命令加载到本地maven库中。

我这里就不用maven下载了,直接下载了一个ojdbc6.jarlib文件夹里面引入

 

pom.xml

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>myspace</groupId>

  <artifactId>myspace</artifactId>

  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>

  <name>myspace Maven Webapp</name>

  <url>http://maven.apache.org</url>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

    <!-- spring mvc的包 -->

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-webmvc</artifactId>

        <version>4.1.5.RELEASE</version>

    </dependency>  

    <dependency>

        <groupId>org.springframework.security</groupId>

        <artifactId>spring-security-config</artifactId>

        <version>4.0.3.RELEASE</version>

    </dependency>

    <!-- aop事务 -->

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-aop</artifactId>

        <version>4.1.5.RELEASE</version>

    </dependency>  

    <dependency> 

        <groupId>org.aspectj</groupId> 

        <artifactId>aspectjweaver</artifactId> 

        <version>1.6.12</version> 

    </dependency>

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-jdbc</artifactId>

    <version>4.1.5.RELEASE</version>

</dependency>  

    <!-- mybatisjava -->

    <dependency>

        <groupId>com.baomidou</groupId>

        <artifactId>mybatis-plus</artifactId>

        <version>1.2.4</version>

    </dependency>

    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

        <version>1.1.0</version>

    </dependency>

    <!-- 连接池 -->

    <dependency>

        <groupId>commons-dbcp</groupId>

        <artifactId>commons-dbcp</artifactId>

        <version>1.2.2</version>

    </dependency>

    <!-- log4j -->

    <dependency>

        <groupId>log4j</groupId>

        <artifactId>log4j</artifactId>

        <version>1.2.16</version>

    </dependency>

  </dependencies>

  <build>

    <finalName>myspace</finalName>

  </build>

</project>

 

 

二、            配置web.xml

1.springmvc的servlet过滤器

2.spring的监听

3.log4j的监听

 

web.xml

<!DOCTYPEweb-appPUBLIC

 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 "http://java.sun.com/dtd/web-app_2_3.dtd">

 

<web-app>

  <display-name>Archetype Created Web Application</display-name>

 

  <!-- 配置log4j配置文件路径 --> 

    <context-param> 

        <param-name>log4jConfigLocation</param-name> 

        <param-value>classpath:log4j.properties</param-value> 

    </context-param> 

    <!-- 60s 检测日志配置文件变化 --> 

    <context-param> 

        <param-name>log4jRefreshInterval</param-name> 

        <param-value>60000</param-value> 

    </context-param> 

 

    <!-- 配置Log4j监听器 --> 

    <listener> 

        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 

    </listener> 

 

  <!-- Spring MVC配置 -->

    <!-- ====================================== -->

    <servlet>

        <servlet-name>spring</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml-->

        <init-param>

            <param-name>contextConfigLocation</param-name>

             <param-value>classpath*:spring-servlet.xml</param-value>

        </init-param>

       

        <load-on-startup>1</load-on-startup>

    </servlet>

   

    <servlet-mapping>

        <servlet-name>spring</servlet-name>

        <url-pattern>*.do</url-pattern>

    </servlet-mapping>

   

    <!-- Spring配置 -->

    <!-- ====================================== -->

    <listener>

       <listener-class>

         org.springframework.web.context.ContextLoaderListener

       </listener-class>

    </listener>

     

   

    <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath*:applicationContext.xml</param-value>

    </context-param>

   

</web-app>

 

 

log4j.properties

         log4j的配置文件

#定义LOG输出级别 

log4j.rootLogger=INFO,Console,File 

#定义日志输出目的地为控制台 

log4j.appender.Console=org.apache.log4j.ConsoleAppender 

log4j.appender.Console.Target=System.out 

#可以灵活地指定日志输出格式,下面一行是指定具体的格式 

log4j.appender.Console.layout = org.apache.log4j.PatternLayout 

log4j.appender.Console.layout.ConversionPattern=[%c]-%m%n 

 

#文件大小到达指定尺寸的时候产生一个新的文件 

log4j.appender.File = org.apache.log4j.RollingFileAppender 

#指定输出目录 

log4j.appender.File.File = logs/ssm.log 

#定义文件最大大小 

log4j.appender.File.MaxFileSize = 10MB 

# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志 

log4j.appender.File.Threshold = ALL 

log4j.appender.File.layout = org.apache.log4j.PatternLayout 

log4j.appender.File.layout.ConversionPattern =[%p][%d{yyyy-MM-ddHH\:mm\:ss}][%c]%m%n 

 

 

 

三、            springmvc的配置文件

1.配置要扫描的包(不要扫描service层,否则spring的aop不能实现)

2.配置视图解析器

3.开启注解

 

spring-servlet.xml

<?xmlversion="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:mvc="http://www.springframework.org/schema/mvc"

    xmlns:context="http://www.springframework.org/schema/context"

   

     xmlns:util="http://www.springframework.org/schema/util"

      xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

      http://www.springframework.org/schema/context

      http://www.springframework.org/schema/context/spring-context-3.0.xsd

      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

      http://www.springframework.org/schema/util

      ">

     

       <!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能需要更改 -->

       <context:component-scanbase-package="com.sunkang.space.*">

             <context:include-filtertype="annotation"expression="org.springframework.stereotype.Controller"/>

             <context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Service"/>

       </context:component-scan>

      

        <!-- 开启注解 --> 

       <beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

        <!-- 视图解析 --> 

       <beanid="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver">

         <propertyname="prefix">

         <value>/WEB-INF/jsp/</value>

         </property>

         <propertyname="suffix">

         <value>.jsp</value>

         </property>

        </bean>

          

 </beans>

 

四、            配置spring的配置文件

1.      配置要扫描的包

2.      开启注解

3.      配置连接池(连接池需要jdbc.properties文件)

4.      配置spring与mybits的整合

5.      配置aop事务

 

applicationContext.xml

<?xmlversion="1.0"encoding="UTF-8"?> 

<beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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"xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xmlns:jdbc="http://www.springframework.org/schema/jdbc" 

    xmlns:cache="http://www.springframework.org/schema/cache" 

    xsi:schemaLocation=

    http://www.springframework.org/schema/context 

    http://www.springframework.org/schema/context/spring-context.xsd 

    http://www.springframework.org/schema/beans 

    http://www.springframework.org/schema/beans/spring-beans.xsd 

    http://www.springframework.org/schema/tx 

    http://www.springframework.org/schema/tx/spring-tx.xsd 

    http://www.springframework.org/schema/jdbc 

    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd 

    http://www.springframework.org/schema/cache 

    http://www.springframework.org/schema/cache/spring-cache-3.1.xsd 

    http://www.springframework.org/schema/aop 

    http://www.springframework.org/schema/aop/spring-aop.xsd 

    http://www.springframework.org/schema/util 

    http://www.springframework.org/schema/util/spring-util.xsd"> 

 

    <!-- 自动扫描web ,将带有注解的类纳入spring容器管理 --> 

    <context:component-scanbase-package="com.sunkang.space.*">

    <context:exclude-filtertype="annotation"expression="org.springframework.stereotype.Controller"/>

    </context:component-scan> 

   

   <context:property-placeholderlocation="classpath:jdbc.properties"/> 

    

     <!-- 使用apacheDBCP连接池  --> 

    <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource" 

        destroy-method="close"> 

        <!-- Connection Info --> 

        <propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/> 

        <propertyname="url"value="${jdbc.url}"/> 

        <propertyname="username"value="${jdbc.username}"/> 

        <propertyname="password"value="${jdbc.password}"/> 

 

        <!-- Connection Pooling DBCP --> 

        <propertyname="initialSize"value="5"/> 

        <propertyname="maxActive"value="100"/> 

        <propertyname="maxIdle"value="30"/> 

        <propertyname="maxWait"value="1000"/> 

        <propertyname="poolPreparedStatements"value="true"/> 

        <propertyname="defaultAutoCommit"value="false"/> 

    </bean>

   

    <!-- springMyBatis完美整合,不需要mybatis的配置映射文件 --> 

    <beanid="SqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"> 

        <propertyname="dataSource"ref="dataSource"/> 

        <!-- 自动扫描mapping.xml文件 --> 

        <propertyname="mapperLocations"value="classpath:com/sunkang/space/mapper/*.xml"></property> 

       

        <propertyname="configLocation"value="classpath:mybatis-configuration.xml"></property> 

    </bean> 

 

    <!-- DAO(mapper)接口所在包名,Spring会自动查找其下的类 --> 

    <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"> 

        <propertyname="basePackage"value="com.sunkang.*"/> 

        <propertyname="sqlSessionFactoryBeanName"value="SqlSessionFactory"></property> 

    </bean> 

   

 

    <!-- (事务管理)transaction manager, use JtaTransactionManager for globaltx --> 

    <beanid="transactionManager" 

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 

        <propertyname="dataSource"ref="dataSource"/>

    </bean>  

   

    <!-- 配置事务特性 -->

    <tx:adviceid="txAdvice"

            transaction-manager="transactionManager">

        <tx:attributes>

            <tx:methodname="find*"

                    propagation="NOT_SUPPORTED"

                    isolation="READ_COMMITTED"

                    read-only="true"

            />

            <tx:methodname="*"

                    propagation="REQUIRED"

                    isolation="READ_COMMITTED"

            />

        </tx:attributes>

    </tx:advice>

      <aop:config>

         <!--把事务控制在Service-->

         <aop:pointcutid="pc"expression="execution(* com.sunkang.space.service..*.*(..))"/>

         <aop:advisoradvice-ref="txAdvice"pointcut-ref="pc"/>

      </aop:config>

   

    <!-- mapper bean -->

    <!-- <bean id="userMapper" class="org.mybatis.spring.MapperFactoryBean">

        <property name="mapperInterface" value="com.sunkang.space.mapper.UserMapper" />

        <property name="sqlSessionFactory"ref="sqlSessionFactory" />

    </bean> -->

   

    <!-- 这里的dataSource要与sqlSessionFactorydataSource一致,否则事务无效 --> 

    <!-- <bean id="transactionManager" 

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 

        <property name="dataSource" ref="dataSource" /> 

    </bean> 

 

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 

        <property name="dataSource" ref="dataSource" /> 

        <property name="configLocation" value="classpath:mybatis-configuration.xml"></property> 

    </bean>   -->

 

    <!-- 注意!这里不要偷懒!。要把userMapper赋给别的.class文件里的一个属性后再使用,否则事务无效。 

    也就是说当直接创建userMapper的一个class,然后使用IUserDao.insertUser方法的话也可以实现,但是事务将无效。 --> 

    <!-- 这里的mapperInterface需要接口类型 --> 

   <!--  <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> 

        <property name="userMapper" value="com.sunkang.space.mapper.UserMapper" /> 

    </bean>   -->

</beans>

 

jdbc.properties

数据库连接的属性

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver 

jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl

jdbc.username=system

jdbc.password=kang

 

mybatis-configuration.xml

Myatis的缓存延迟加载等配置,可以不配置,如果不配置的话,spring的配置文件里面就不要引入

<?xmlversion="1.0"encoding="UTF-8"?> 

<!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN" 

"http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<configuration> 

    <!-- 配置mybatis的缓存,延迟加载等等一系列属性 --> 

    <settings> 

        <!-- 全局映射器启用缓存 --> 

        <settingname="cacheEnabled"value="true"/> 

        <!-- 查询时,关闭关联对象即时加载以提高性能 --> 

        <settingname="lazyLoadingEnabled"value="true"/> 

        <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL),不会加载关联表的所有字段,以提高性能 --> 

        <settingname="aggressiveLazyLoading"value="false"/> 

        <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> 

        <settingname="multipleResultSetsEnabled"value="true"/> 

        <!-- 允许使用列标签代替列名 --> 

        <settingname="useColumnLabel"value="true"/> 

        <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> 

        <settingname="useGeneratedKeys"value="true"/> 

        <!-- 给予被嵌套的resultMap以字段-属性的映射支持 --> 

        <settingname="autoMappingBehavior"value="FULL"/> 

        <!-- 对于批量更新操作缓存SQL以提高性能 --> 

        <settingname="defaultExecutorType"value="BATCH"/> 

        <!-- 数据库超过25000秒仍未响应则超时 --> 

        <settingname="defaultStatementTimeout"value="25000"/> 

    </settings> 

    <!-- 全局别名设置,在映射文件中只需写别名,而不必写出整个类路径 --> 

    <!-- <typeAliases> 

        <typeAlias alias="TestBean" 

            type="com.wotao.taotao.persist.test.dataobject.TestBean" /> 

    </typeAliases> --> 

    <!-- 非注解的sql映射文件配置,如果使用mybatis注解,该mapper无需配置,但是如果mybatis注解中包含@resultMap注解,则mapper必须配置,给resultMap注解使用 --> 

   <!--  <mappers> 

        <mapper  resource="com/sunkang/space/mapper/UserMapper.xml" />

    </mappers>   -->

</configuration> 

 

五、            Controller层

 

TestController

package com.sunkang.space.controller;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

 

import com.sunkang.space.service.TestService;

 

@Controller

public class TestController {

    @Autowired

    public TestServicetestService;

   

    @RequestMapping(value="/test.do"

    public ModelAndView test(){

        testService.test();

        return new ModelAndView("test");

    }

 

}

 

 

 

六、            Service层

 

TestService

package com.sunkang.space.service;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

 

import com.sunkang.space.daoImpl.TestDaoImpl;

import com.sunkang.space.entity.User;

@Service

public class TestService{

    @Autowired

    public TestDaoImpltestDao;

 

    public void  test(){

        //测试service事务

        testDao.addUser();

       

        User user=new User();

        user.setId("2E3A11FD4162458BBBCD59F4543DFB27");

        user.setName("sunkksnksnfks");

        user.setIsDelete(4);

        testDao.updateUser(user);

       

       

       

    }

   

}

 

 

七、            Dao层

 

TestDaoImpl

package com.sunkang.space.daoImpl;

 

import java.util.List;

import java.util.Map;

package com.sunkang.space.daoImpl;

 

import java.util.List;

import java.util.Map;

 

import javax.management.RuntimeErrorException;

 

import org.apache.ibatis.session.SqlSession;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Repository;

 

import com.sunkang.space.entity.User;

import com.sunkang.space.mapper.UserMapper;

import com.sunkang.space.util.MyBatisUtil;

 

@Repository

public class TestDaoImpl {

         @Autowired

         public UserMapper userMapper;

        

         public void addUser(){

//               SqlSession session=MyBatisUtil.getSqlSession();

//               Map<String,Object> map=session.selectOne("com.sunkang.space.mapper.UserMapper.findNameById", "1");

                   List<User> users=userMapper.findUserAll();

                   for(User user:users){

                            System.out.println(user.getId()+","+user.getImage()+","+user.getUpdateDate()+","+user.getAge()+","+user.getIsDelete());

                   }

                  

                   User user=new User();

                   user.setName("康康");

                   user.setIsDelete(1);

                   userMapper.addUser(user);

         }

        

        

         public void updateUser(User user){

                  

                   userMapper.updateUser(user);

                  //测试aop事务

                   //String str=null;

                  // str.toString();

         }       

}

 

八、            mapper层

 

UserMapper

package com.sunkang.space.mapper;

 

import java.util.List;

 

import com.sunkang.space.entity.User;

 

public interface UserMapper {

    /**

     * 查找所有用户

     * @return

     */

    public List<User> findUserAll();

   

    /**

     * 增加用户

     * @param user

     * @return

     */

    public void addUser(User user);

 

    /**

     * 更新用户

     * @param user

     */

    public void updateUser(User user);

}

 

         Mapper配置文件

 

UserMapper.xml

<?xmlversion="1.0"encoding="UTF-8"?> 

<!DOCTYPEmapperPUBLIC"-//ibatis.apache.org//DTD Mapper 3.0//EN"     

 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

 

 <mappernamespace="com.sunkang.space.mapper.UserMapper">

 

    <resultMapid="user-my-result"type="com.sunkang.space.entity.User">

        <idcolumn="id"property="id"jdbcType="VARCHAR"/>

        <resultcolumn="name"property="name"jdbcType="VARCHAR"/>

        <resultcolumn="age"property="age"jdbcType="INTEGER"/>

        <resultcolumn="sex"property="sex"jdbcType="INTEGER"/>

        <resultcolumn="iphone"property="iphone"jdbcType="VARCHAR"/>

        <resultcolumn="image"property="image"javaType="[B"jdbcType="BLOB"/>

       <resultcolumn="route"property="route"jdbcType="INTEGER"/>

        <resultcolumn="is_delete"property="isDelete"jdbcType="INTEGER"/>

        <resultcolumn="create_date"property="createDate" jdbcType="TIMESTAMP"/>

        <resultcolumn="update_date"property="updateDate"jdbcType="TIMESTAMP"/>

    </resultMap>

   

    <!-- <parameterMap id="user-my-pareame" type="com.sunkang.space.entity.User">

        <id resultMap="id" property="id" jdbcType="VARCHAR" />

        <parameter resultMap="name" property="name" jdbcType="VARCHAR" />

        <parameter resultMap="age" property="age" jdbcType="INTEGER" />

        <parameter resultMap="sex" property="sex" jdbcType="INTEGER" />

        <parameter resultMap="iphone" property="iphone" jdbcType="VARCHAR" />

        <parameter resultMap="image" property="image" javaType="[B" jdbcType="BLOB" />

       <parameter resultMap="route" property="route" jdbcType="INTEGER" />

        <parameter resultMap="is_delete" property="isDelete" jdbcType="INTEGER" />

        <parameter resultMap="create_date" property="createDate"  jdbcType="TIMESTAMP" />

        <parameter resultMap="update_date" property="updateDate" jdbcType="TIMESTAMP" />

    </parameterMap> -->

     <!-- 根据id查找用户 -->

     <selectid="findNameById"parameterType="String"resultType="map">

        select id,name from user_my

        where

                id=#{id}

     </select>

 

 

   <!-- 查所有用户 -->

    <selectid="findUserAll"resultMap="user-my-result">

        select * from user_my

    </select>

   

    <!-- 新增用户-->

    <insertid="addUser"parameterType="com.sunkang.space.entity.User">

        <!-- uuid 主键策略 -->

        <selectKeykeyProperty="id"resultType="String"order="BEFORE"> 

            select sys_guid() from dual 

        </selectKey>

        insert into user_my

        (id,name,is_delete)

         values(#{id},#{name},#{isDelete})

    </insert>

   

   

    <!-- 删除用户 -->

    <deleteid="deleteById"parameterType="int">

        delete from user_my where id=#{id}

    </delete>

   

    <!-- 根据id修改用户 -->

    <updateid="updateUser"parameterType="com.sunkang.space.entity.User">

        update user_my

        <set>    

            <iftest="isDelete!=null and isDelete!='' ">    

                is_delete=3,     

            </if>    

            <iftest="name!=null and name!='' ">    

                name=#{name},     

            </if>    

        </set>

        where id=#{id}

        <!-- <where>

            <if test="id !=null and id!= ''">

                 id=#{id}

            </if>

        </where> -->

    </update>

 </mapper>

 

九、            jsp层

 

test.jsp

<%@ page language="java"import="java.util.*"pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <basehref="<%=basePath%>">

   

    <title>My JSP 'test.jsp' starting page</title>

   

    <metahttp-equiv="pragma"content="no-cache">

    <metahttp-equiv="cache-control"content="no-cache">

    <metahttp-equiv="expires"content="0">   

    <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

    <metahttp-equiv="description"content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css"href="styles.css">

    -->

 

  </head>

 

  <body>

    This is my JSP page. <br>

  </body>

</html>

 

 

十、            maven管理ojdbc的jar

手动下载,然后在pom文件里面引入

 

<!-- oracle的驱动包 -->

    <dependency>

        <groupId>com.oracle</groupId>

        <artifactId>ojdbc14</artifactId>

        <version>10.2.0.3.0</version>

    </dependency>

 

--欢迎大家访问我的 个人博客(www.sunkang.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值