您的位置:首页 > 数据库 > Oracle

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

2018-10-19 19:09 477 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_38050852/article/details/83186799

如何基于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>

3ff7
<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.进行调试


后端代码编写完成!

٩(๑❛ᴗ❛๑)۶

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐