如何基于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> 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.进行调试
后端代码编写完成!
٩(๑❛ᴗ❛๑)۶
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(二)
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(二)
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(一)
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(五)
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(一)
- IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合
- 基于springboot的框架搭建(2)统一配置mybatis的增删改方法
- 用idea搭建spring boot+mybatis及反向生成框架
- 基于spring boot搭建一个spark streaming的实时事件处理框架
- 如何基于Spring Boot搭建一个完整的项目
- SpringBootService,一个基于spring boot搭建的SOA服务框架
- 使用idea 搭建一个 SpringBoot + Mybatis + logback 的maven 项目
- 使用idea搭建一个简单的SSM框架:(3)配置spring+mybatis
- 搭建一个简易的springBoot+SpringDataJpa+Oracle项目
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(四)
- 如何搭建基于J2EE的Spring+SpringMVC+MyBatis框架的开发环境
- IDEA搭建springboot+mybatis 的web框架附日志管理
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(三)
- 初学者如何快速搭建一个springboot框架
- 使用IDEA搭建springboot整合mybatis和springmvc框架