SpringBot+SpringDataJpa+Oracle聚合项目踩坑

一、整合来源

本来想着今天对接公司项目接口然而其他的接口来没有写完,于是想着能不能吧以前的SSM框架的项目整合成现在比较前沿的简易的开发技术,于是就想到把项目整合成springbot+springdatajpa+mybatis+oracle的项目,想着项目整合刚开始就先把springbot+springdatajpa先整合,想想上次整合springbot框架写项目的时候还是去年想想已经几个月了,但是自己之前整过单个的,现在整起来应该不难,但谁到真是一言难尽啊。。。

二、开始操作

我用的编译器是IDEA

2.1、首先创建一个父项目

2.2、选择maven项目不用勾选点next即可

2.3、填写相应的GroupId和ArtifactId点next

2.4、选好对应的存放路径点击finish

这样父项目就创建爱好了,等待一会删除掉src文件夹

三、创建子项目

3.1、选中mttapp->new->Module

3.2、后面就跟上面的父项目创建类似


3.3、这里要注意路径现在是在mttapp下面

四、创建好子项目

4.1、按照如上的方法依次的创建好子项目,创建好后的子项目如下

五、添加需要的依赖

5.1、圈住的是创建好父项目自项目自动生成的

5.2、父项目依赖这里我加的依赖比较多如果不需要的可以自行删除

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lyj</groupId>
    <artifactId>mttapp</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mttapp_common</module>
        <module>mttapp_service</module>
        <module>mttapp_base</module>
    </modules>

    <packaging>pom</packaging>

    <name>mttapp</name>
    <description>医调APP</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.35</version>
        </dependency>

        <!--使用 @ConfigurationProperties 注解需要导入它的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!--swaggerUI-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
        </dependency>

        <!--thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!--aop-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--spring-data-jpa-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- Spring Boot JDBC -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- oracle -->
        <dependency>
            <groupId>com.oracle.jdbc.driver</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12c</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

5.3、mttapp_common依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mttapp</artifactId>
        <groupId>com.lyj</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mttapp_common</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.lyj</groupId>
            <artifactId>mttapp</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

5.4、mttapp_service依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mttapp</artifactId>
        <groupId>com.lyj</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mttapp_service</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.lyj</groupId>
            <artifactId>mttapp_common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

5.5、mttapp_base依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mttapp</artifactId>
        <groupId>com.lyj</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mttapp_base</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.lyj</groupId>
            <artifactId>mttapp_service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

    </dependencies>

</project>

六、开发

6.1、项目已经构建完成接下来就是开发了首先在mttapp_common下创建result.java

package com.lyj.util;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by lyj on 2019/3/11.
 * 返回数据
 */
public class Result extends HashMap<String,Object>{

    private static final long serialVersionUID = 9109254706785913366L;

    public Result(){
        put("code",0);
    }

    public static Result error(int code,String msg){
        Result result = new Result();
        result.put("code",code);
        result.put("msg",msg);
        return result;
    }

    public static Result error(String code,String msg){
        Result result = new Result();
        result.put("code",code);
        result.put("msg",msg);
        return result;
    }

    public static Result error(){
        return error(500,"发生异常请联系管理员");
    }

    public Result error(String msg){
        return error(500,msg);
    }

    public Result put(String key, Object value) {
        super.put(key, value);
        return this;
    }

    public static Result ok(String msg) {
        Result result = new Result();
        result.put("msg", msg);
        return result;
    }

    public static Result ok(String code,String msg){
        Result result = new Result();
        result.put("code",code);
        result.put("msg",msg);
        return result;
    }

    public static Result ok(){
        return  new Result();
    }

    public static Result ok(Map<String,Object>map){
        Result result = new Result();
        result.putAll(map);
        return result;
    }

}

6.2、接下来在mttapp_service下依次创建下面的包和类

6.3、依次下来的代码

package com.lyj.dao;

import com.lyj.entity.YdInsUserRq;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

/**
 * Created by lyj on 2019/3/11.
 */
@Repository
public interface YdInsUserDao extends JpaRepository<YdInsUserRq,String>,JpaSpecificationExecutor<YdInsUserRq> {
}
package com.lyj.entity;

import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

/**
 * Created by lyj on 2019/3/11.
 */
@Data
@Entity
@Table(name = "yd_ins_user")
public class YdInsUserRq implements Serializable{

    private static final long serialVersionUID = 5437896266299288020L;

    @Id
    private Long id; // 主键

    private String userId; // 编号

    private String userName; // 姓名

    private String userPhone; // 手机

    private String userMail; // 邮箱

    private String userBankName; // 户名

    private String userDepositBank; // 开户行

    private String userBankAccount; // 银行账户

    private Long userStatus; // 用户状态(0可用,1禁用,9删除)

    private String insBrhId; // 机构表关联字段

    private String updateDate; // 最后一次操作时间

    private String operator; // 操作员

    private String userPass; // 用户密码
}
package com.lyj.service;

import com.lyj.dao.YdInsUserDao;
import com.lyj.entity.YdInsUserRq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.CrossOrigin;

import java.util.List;

/**
 * Created by lyj on 2019/3/11.
 */
@Service
public class YdInsUserService {

    @Autowired
    private YdInsUserDao ydInsUserDao;

    /**
     * 查询出所有用户信息
     * @return
     */
    public List<YdInsUserRq> findAll(){
        return ydInsUserDao.findAll();
    }

}

七、一切准备就绪接下来重点来了

7.1、依次创建如下的包和类名

7.2、BaseApplication代码

package com.lyj;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

/**
 * Created by lyj on 2019/3/11.
 */
 //扫面聚合项目下所对应有包下类
@SpringBootApplication(scanBasePackages = {"com.lyj.**"})
public class BaseApplication {
    public static void main(String[] args) {
        SpringApplication.run(BaseApplication.class);
    }
}

其中下面这段代码非常的重要关系到你的项目能不能正常的跑起来并访问

//扫面聚合项目下所对应有包下类
@SpringBootApplication(scanBasePackages = {"com.lyj.**"})

7.3、application.yml代码

server:
  port: 8002
spring:
  application:
    name: tensquare-base
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test? characterEncoding=utf‐8
    username: root
    password: 123456
  jpa:
    database: mysql
    show-sql: true
    hibernate:
      ddl-auto: update

连接自己的对应的数据库这里先用mysql做实例
7.4、controller层代码

package com.lyj.controller;

import com.lyj.service.YdInsUserService;
import com.lyj.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by lyj on 2019/3/11.
 */
@RestController
@CrossOrigin
@RequestMapping(value = "user")
public class UserController {

    @Autowired
    private YdInsUserService ydInsUserService;

    @RequestMapping(value = "/usersList")
    public Result findAll(){
        return Result.ok().put("userList",ydInsUserService.findAll());
    }
}

八、运行

8.1、接下来我们就可以运行了点击下图绿色三角形出现下图即运行成功

8.2、其中springdatajpa会自动的创建在对应数据库创建好表

8.3、浏览器输入访问成功这里我没有输入数据出现下图即项目成功运行连接了

http://localhost:8002/user/usersList

关注公众号了解更多学习笔记和领取学习资源

原文地址:https://www.cnblogs.com/iclyj/p/10514942.html

时间: 2024-10-11 22:34:36

SpringBot+SpringDataJpa+Oracle聚合项目踩坑的相关文章

Vue项目踩坑记~

最近在写一个Vue的项目~踩了很多坑,下面总结一下出现的问题 1.空白页面,不提示报错,但是什么都没有 main.js const app = new Vue({ router }).$mount('#app') 错误原因:在创建vue实例对象时,没有添加render方法. 解决: const app = new Vue({ router, render: h => h(App) }).$mount('#app') 2."TypeError: Cannot read property 'g

launcher项目踩坑小结(1)

launcher是一个安卓端的活动页面.它在pc端的形式则是由资源,桌面和发布三大板块组成.其中资源部分则是由素材图片,APK资源,网页资源和图片资源四个页面组成. 在完成素材部分页面的过程中,主要梳理和总结了的技术点如下: 1?? 往数组中的前序添加.往数组中最后一项追加元素.删除数组中的一项.往数组中指定的某一项前添加元素 a. 前序添加就是往数组的第一项之前添加一个元素, 方法是unshift eg. let arr = [a, b, c, d, e]   let f = 1   arr

vue-cli 项目踩坑 npm install 时出错

1.报错如下: 2.此时你执行npm run dev  / npm run build 会报错如下 npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! [email protected] dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the

Vue(项目踩坑)_These dependencies were not found: * !!vue-style-loader!css-loader?{&quot;sourceMap&quot;:true}!../../../node_modules/vue-loader/lib/style-compiler/index?{&quot;vue&quot;

报错如下: 解决: 感谢 @ honey缘木鱼 大神的分享:https://blog.csdn.net/dt1991524/article/details/83413211 https://blog.csdn.net/qq_40930491/article/details/86547907 原文地址:https://www.cnblogs.com/xxm980617/p/11802603.html

记录某项目中的踩坑与解决(持续更新)

前言 最近参加了某个比赛, 我所选的赛题就是个类似知乎这样的安卓app,由于着手近一个月了,踩了不少坑,之前没怎么记录,估计事后也会忘记干净. 因此特开一帖,在此记录下相关的坑. 记录 写完某个Recyclerview的item布局和相关适配器后, 然后展示的时候, 发现显示出来的Item数量小于List中绑定的数据量: 首先是检查了一遍适配器中的逻辑,发现没啥问题.然后在onCreateViewHolder中打log,发现只创建了两次就没了(而实际应该创建6次). 最后百度才发现是外面的Scr

Spring @Transactional踩坑记

@Transactional踩坑记 总述 ? Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务控制. 然而看起来越是简单的东西,背后的实现可能存在很多默认规则和限制.而对于使用者如果只知道使用该注解,而不去考虑背后的限制,就可能事与愿违,到时候线上出了问题可能根本都找不出啥原因. 踩坑记 1. 多数据源 事务不生效 背景介绍 ? 由于数据量比较大,项目的初始设计是分库分表的.于是在配置文件中

阿里云磁盘扩容踩坑总结

公司半年前上线一个新的项目,采购了一批阿里云主机,磁盘组成是40G系统盘+100G的数据盘,数据库采用MariaDB Galera Cluster集群部署,由于业务数据量快速增长,导致磁盘存储空间剩余量很少,急需要扩容,先总结整个项目规划中埋下的坑: 1.没有DBA对数据库的容量规划,而前期的运维人员采购时选用100G的SSD云盘: 2.数据库默认使用共享表空间,缺点是删除数据后不释放空间,当数据快速增长后,我们采取了先删除临时表数据的方式来尽量避免暴力扩容,争取在春节期间稳定,删除部分数据后,

Android开发在路上:少去踩坑,多走捷径【转】

作者:gzjay,腾讯MIG无线产品部 高级工程师 最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享. 1.目前, Android APP开发完成后,通常需要在哪些机型上进行测试? 2.目前, 开发Android APP时,需要考虑的分辨率有哪些? 这两个问题可以合起来回答的. http://developer.android.com/about/dashboards/index.html 源自Google Play的数据,每月都会进行upd

Java踩坑之路

陆陆续续学Java也快一年多了,从开始的一窍不通到现在的初窥门径,我努力过,迷茫过,痛过,乐过,反思过,沉淀过.趁着新年,我希望能把这些东西记下来,就当是我一路走来的脚印. 一.初识网站应用 记得第一次接触Java,是写一个小网站,当时用servlet+tomcat做服务端,数据库是mysql.那时我对于网站应用的概念一片空白,之前接触的都是C++和MFC写桌面程序.我花了一周时间看完了<java servlet programming>这本书,然后我就开始写代码了.但是,真的当我写代码的时候