如何基于IDEA搭建一个简易的springboot+mybatis+Oracle框架

如何基于IDEA搭建一个简易的springboot+mybatis+Oracle框架

一、准备工作
1.安装好jdk1.8并配置好环境变量;
2.准备好数据库,建好可供测试的表;
3.安装好一个IDEA;
在这里插入图片描述
4.安装好maven(官网下载zip包解压即可)
附官网地址:http://maven.apache.org/download.cgi
在这里插入图片描述

5.准备好一个匹配数据库的oracle驱动,我在此处将它放在了D盘software\oracleDrivers文件夹下
这里我用的是ojdbc6,根据个人使用数据库不同,可以准备不同版本的驱动
在这里插入图片描述

6.在本地仓库配置好驱动及其版本
具体操作如下:打开cmd,输入以下命令并执行:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\software\oracleDrivers\ojdbc6.jar
这里我给我本地的ojdbc6.jar配置的是11.2.0.1.0版本

注:命令粗体部分都是需要因个人情况而定的
在这里插入图片描述

二、开始搭建
1.打开IDEA,新建一个工程:
选择Spring Initializr
选择自己的JDK
用默认的Initializr Service URL
然后点Next
在这里插入图片描述
2.给项目起个个性的名字吧
另外要校验其他字段是否正确,比如,Java版本是不是8,等等
校验没有问题,点击Next
在这里插入图片描述
3.勾选上web,然后点击Next
在这里插入图片描述
4.项目创建结束
在这里插入图片描述
我们先看一下项目创建初始的项目结构
在这里插入图片描述
.idea文件夹和.mvn文件夹都是用于存放项目配置的文件夹,与项目本身无关,无需额外关注.
src/main/java是放代码的
src/main/resource是放资源文件的
src/test/java是放测试代码的

5.让我们来丰富一下项目结构:
在这里插入图片描述

6.在pom.xml文件中添加所需的依赖
在这里插入图片描述
pom.xml全代码如下:

<?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.mengyuya</groupId>
    <artifactId>happy</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>happy</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </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>
        <!--添加mybatis支持-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.2.0</version>
        </dependency>
        <!--oracle-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

7.完善配置文件application.properties(在配置文件中配置端口,数据库连接和mybatis信息)
代码如下:

server.port=8080
spring.datasource.url=jdbc:oracle:thin:@XXX.XX.XXX.XXX:XXXX:XXXXX
spring.datasource.username=XXXXX
spring.datasource.password=XXXXX

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

mybatis.type-aliases-package=com.mengyuya.happy.domain

配置含义请参考springboot官方文档:
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/
或直接参考我的有道云笔记:
http://note.youdao.com/noteshare?id=1bda362ab35cfed94b1942f1b0a2ab10&sub=F4FAB5CAC02B4AC6B2926BC9A193AE35

注:这里我踩了一个数据库连接的坑,详情可以关注我的另一篇博客:
https://blog.csdn.net/qq_38050852/article/details/83151095

8.在domain中定义一个Bean
在这里插入图片描述
代码如下:

package com.mengyuya.happy.domain;

public class PersonInfo {
    private Integer id;
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

9.在mapper中定义一个接口
在这里插入图片描述
代码如下:

package com.mengyuya.happy.mapper;

import com.mengyuya.happy.domain.PersonInfo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface PersonMapper {

    void insertPerson(PersonInfo person);

    PersonInfo queryPersonById(int id);

    void deletePersonById(int id);

    void updatePerson(PersonInfo person);

    List<PersonInfo> queryPersonList();
}

10.在src/main/resouces中定义一个和mapper路径相同且同名的mapper文件夹,并编写同名的mapper.xml配置文件(如果不同名、不同路径则需要额外配置,同路径同名不需额外配置会默认编译到同一文件夹下并对应)
在这里插入图片描述
代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mengyuya.happy.mapper.PersonMapper">

    <select id="queryPersonById" parameterType="int" resultType="com.mengyuya.happy.domain.PersonInfo">
      SELECT ID,NAME FROM TEST_PERSON WHERE ID = #{id}
    </select>

    <insert id="insertPerson" parameterType="com.mengyuya.happy.domain.PersonInfo">
      INSERT INTO TEST_PERSON(ID,NAME) VALUES (#{id},#{name})
    </insert>

    <delete id="deletePersonById" parameterType="int">
      DELETE FROM TEST_PERSON WHERE ID = #{id}
    </delete>

    <update id="updatePerson" parameterType="com.mengyuya.happy.domain.PersonInfo">
      UPDATE TEST_PERSON SET NAME=#{name} WHERE ID = #{id}
    </update>

    <select id="queryPersonList" resultType="com.mengyuya.happy.domain.PersonInfo">
      SELECT ID,NAME FROM TEST_PERSON
    </select>
</mapper>

11.编写service接口及实现类
在这里插入图片描述
在这里插入图片描述

代码如下:

package com.mengyuya.happy.service;

import com.mengyuya.happy.domain.PersonInfo;

import java.util.List;

public interface PersonManageService {

    void insertPerson(PersonInfo person);

    PersonInfo queryPersonById(int id);

    void deletePersonById(int id);

    void updatePerson(PersonInfo person);

    List<PersonInfo> queryPersonList();
}

======================================================================

package com.mengyuya.happy.service;

import com.mengyuya.happy.domain.PersonInfo;
import com.mengyuya.happy.mapper.PersonMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PersonManageServiceImpl implements PersonManageService {
    @Autowired
    private PersonMapper personMapper;

    @Override
    public void insertPerson(PersonInfo personInfo) {
        personMapper.insertPerson(personInfo);
    }

    @Override
    public PersonInfo queryPersonById(int id) {
        PersonInfo personInfo = personMapper.queryPersonById(id);
        return personInfo;
    }

    @Override
    public void deletePersonById(int id) {
        personMapper.deletePersonById(id);
    }

    @Override
    public void updatePerson(PersonInfo personInfo) {
        personMapper.updatePerson(personInfo);
    }

    @Override
    public List<PersonInfo> queryPersonList() {
        List<PersonInfo> list = personMapper.queryPersonList();
        return list;
    }
}

12.编写控制层代码
由于没有前端,所以此处用@RestController注解,方便调试,正式项目请将其改成@Controller注解
在这里插入图片描述
代码如下:

package com.mengyuya.happy.controller;

import com.mengyuya.happy.domain.PersonInfo;
import com.mengyuya.happy.service.PersonManageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping(value = "/person")
public class PersonManageController {


    @Autowired
    private PersonManageService personManageService;

    @RequestMapping(value = "/insert")
    public String insert(int id) {
        PersonInfo person = new PersonInfo();
        person.setId(id);
        person.setName("测试" + id);
        personManageService.insertPerson(person);
        return "insert success。。。";
    }

    @RequestMapping(value = "/queryOne")
    public String queryOne(int id) {
        PersonInfo person = personManageService.queryPersonById(id);
        return "person.getId() = " + person.getId() + ",person.getName() = " + person.getName();

    }

    @RequestMapping(value = "/update")
    public String update(int id) {
        PersonInfo person = new PersonInfo();
        person.setId(id);
        person.setName("测试" + id + "改");
        personManageService.updatePerson(person);
        return "update success。。。";
    }

    @RequestMapping(value = "/queryAll")
    public String queryAll() {
        List<PersonInfo> list = personManageService.queryPersonList();
        String str = "";
        for (PersonInfo personInfo : list) {
            str = str + ("personInfo.getId() = " + personInfo.getId() + ",personInfo.getName() = " + personInfo.getName());
        }
        return str;
    }

    @RequestMapping(value = "/delete")
    public String delete(int id) {
        personManageService.deletePersonById(id);
        return "delete success。。。";
    }
}

13.启动项目
在这里插入图片描述
启动成功

14.进行调试
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

后端代码编写完成!

٩(๑❛ᴗ❛๑)۶

猜你喜欢

转载自blog.csdn.net/qq_38050852/article/details/83186799