Springboot+Mybatis+oracle的整合

1.创建maven工程(ecplise配置集成maven插件)

    手动创建maven时,默认环境是jdk1.5的,要与自己的配置开发环境一致,要更改依赖环境

    也可用start.spring.io网站提供的工具自动创建,可同时添加依赖包,选用版本等等,

    创建好以后下载到本地导入即可,环境就是1.8的,与本地不一致时,要手动更改并update

2.添加配置pom.xml文件的依赖包

  <parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>1.5.6.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

  </parent>

  <dependencies>

  <!--  

    在pom文件中增加spring-boot-starter-web的maven依赖时,

    不做任何web相关的配置便能提供web服务,这还得归于spring boot 

    自动配置的功能(因为加了EnableAutoConfiguration的注解),

    帮我们创建了一堆默认的配置:servlet配置, filter配置,

    listener配置,修改filter的映射

  -->

    <dependency>  

      <groupId>org.springframework.boot</groupId>  

      <artifactId>spring-boot-starter-web</artifactId>  

    </dependency>  

  <!-- 

    spring boot整合mybatis 

    使用了该Starter之后,只需要定义一个DataSource即可,

    它会自动创建使用该DataSource的SqlSessionFactoryBean

    以及SqlSessionTemplate。会自动扫描你的Mappers,连接到

    SqlSessionTemplate,并注册到Spring上下文中

  -->

  <dependency>

        <groupId>org.mybatis.spring.boot</groupId>

        <artifactId>mybatis-spring-boot-starter</artifactId>

        <version>1.3.0</version>

    </dependency>

    

    <!-- 使用oracle数据库驱动 --> 

     <dependency>

        <groupId>com.oracle</groupId>

        <artifactId>ojdbc6</artifactId>

        <version>10.2.0.4.0</version>

     </dependency> 

     <!-- alibaba的druid数据库连接池 -->

     <dependency>

         <groupId>com.alibaba</groupId>

         <artifactId>druid</artifactId>

         <version>1.0.11</version>

     </dependency>

     <!--       

              进行数据解析Fastjson会自动处理对象中的泛型,

              将其解析成原来定义好的对象,

      -->

     <dependency>  

         <groupId>com.alibaba</groupId>  

         <artifactId>fastjson</artifactId>  

        <version>1.1.41</version>  

     </dependency>  

     <!-- 进行测试 -->   

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

  

  <!-- 

        添加mavenc插件 

        在添加了该插件之后,当运行“mvn package”进行打包时,会打包成一个可以

        直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。这在很大程度

        上简化了应用的部署,只需要安装了 JRE 就可以运行

  -->

  <build>  

        <plugins>  

           <plugin>  

                <groupId>org.springframework.boot</groupId>  

                <artifactId>spring-boot-maven-plugin</artifactId>  

            </plugin>  

       </plugins>  

    </build>  

</dependencies>

3.添加配置文件application.yml/application.properties

spring:

    datasource:

#       name: test   #可以省略

       url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL

       username: ZY167

       password: ZY167

       #使用druid数据源

#       type: com.alibaba.druid.pool.DruidDataSource  #数据源类型不添加也可以

       driver-class-name: oracle.jdbc.driver.OracleDriver

 

#    profiles:

4.特别注意:自己创建的包要与springboot入口文件同级,否则会一直报错;

   

 5.写入口文件:

@SpringBootApplication        

//启用Spring应用程序上下文的自动配置,尝试猜测和配置您可能需要的bean。

//自动配置类通常基于类路径和定义的bean应用。例如,如果你有tomcat嵌入式。

//jar在您的类路径中,你可能会想要一个TomcatEmbeddedServletContainerFactory

//(除非你定义自己的EmbeddedServletContainerFactory bean)。

//@EnableAutoConfiguration

public class TestApplication {

   public static void main(String[] args) {

    SpringApplication.run(TestApplication.class, args);

   }

}

6.写mybatisConfig.java配置文件

@Configuration

//sqlSessionFactoryRef-------指定在spring上下文中有多个SqlSessionFactory使用的情况。

//通常,只有当您拥有多个数据源时才需要这样做。**要与SqlSessionFactory的@Bean的name一致

//basePackages----------用于扫描MyBatis接口的基本包。注意,只有具有至少一个方法的接口将被注册;具体的类将被忽略。

@MapperScan(basePackages="testData.dao",sqlSessionFactoryRef = "sessionFactory")   //要添加包扫描主解,否则无法正确启动,可配置到访问入口

public class MybatisConfig {

    @Autowired

    //Environment

    //接口,表示当前应用程序正在运行的环境。应用程序环境的两个关键方面:

    //概要文件和属性。与属性访问相关的方法通过PropertyResolver超接口公开。

    private Environment env;

    

    /**

     * @Title: defaultDataSource 

     * @Description: 创建数据源

     * @return DataSource

     */

    @Primary

    //@Primary

    //表示当多个候选对象具备自动连接单值依赖项的条件时,应该优先考虑bean。

    //如果候选对象中只有一个“主”bean,那么它将是自动连接的值。

    @Bean(name="dataSource")

    public DataSource dataSource() {

        //使用DruidDataSource数据源

        DruidDataSource dataSources = new DruidDataSource();

        //获取驱动

        dataSources.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));

        //获取访问路径

        dataSources.setUrl(env.getProperty("spring.datasource.url"));

        //获取用户名

        dataSources.setUsername(env.getProperty("spring.datasource.username"));

        //获取用户密码

        dataSources.setPassword(env.getProperty("spring.datasource.password"));

        return dataSources;

    }

    

    /**

     * @Title: sessionFactory

     * @Description: 获取session工厂

     * @param: @param dataSource 数据源

     * @param: @return   

     * @return: SqlSessionFactory   

     * @throws

     */

    @Primary

    @Bean(name="sessionFactory")

    public SqlSessionFactory sessionFactory(@Qualifier("dataSource")DataSource dataSource){

        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();

        sessionFactoryBean.setDataSource(dataSource);

        

      //添加XML目录

        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

        try {

            //resolver.getResources------将给定的位置模式解析为资源对象。

            //设置将在运行时合并到SqlSessionFactory配置中的MyBatis映射文件的位置。

            //sessionFactoryBean.setMapperLocations

            //这是在MyBatis配置文件中指定“< sqlmapper >”条目的替代方法。这个基于

            //Spring资源抽象的属性还允许在这里指定资源模式:例如:“classpath *:sqlmap / * -mapper.xml”。

            sessionFactoryBean.setMapperLocations(resolver.getResources("classpath:testData.dao.*.xml"));

            //返回一个实例对象的(可能共享或独立)由这个工厂管理。

            return sessionFactoryBean.getObject();

        } catch (Exception e) {

            System.out.println("mybatis初始化sqlSessionFactoryBean失败");

            e.printStackTrace();

        }

        return null;

    }

    

    /**

     * ---------该方法可省略-------------

     * @Title: sqlSessionTemplate

     * @Description: TODO(创建实例工厂)

     * @param: @param sqlSessionFactory

     * @param: @return   

     * @return: SqlSessionTemplate   

     * @throws

     */

    @Primary 

    @Bean("defaultSqlSessionTemplate")

    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {

        //构造一个Spring管理的SqlSession,并将SqlSessionFactory作为参数提供。

        return new SqlSessionTemplate(sqlSessionFactory);

    }

}

7.写mybatis的数据库操作语句的mapper文件和service层文件,此处代码省略;

8.写controller文件:

@RestController

public class TestController {

    @Autowired

    private AllService allService;

    @Autowired

    private RiskTypeService riskTypeService;

    

    @RequestMapping(value="/test",method = RequestMethod.GET)

    public String getTest() {

        List<RiskViewCfg> list =  allService.getAll();

        System.out.println("list集合的长度为:-----|||----------"+list.size());

        for (int i = 0; i < list.size(); i++) {

            RiskViewCfg riskViewCfg = new RiskViewCfg();

            System.out.println(riskViewCfg.getView_name()+"========"+riskViewCfg.getCreate_sql());

        }

        return "hello----------word";

    }

9.启动springboot的入口文件,访问默认的8080端口,会有返回值,则表示成功!

猜你喜欢

转载自lewis-wang.iteye.com/blog/2405842
今日推荐