一、准备工作
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是放测试代码的
6.在pom.xml文件中添加所需的依赖
pom.xml全代码如下:
4.0.0
com.mengyuya
happy
0.0.1-SNAPSHOT
jar
happy
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.2.0
com.oracle
ojdbc6
11.2.0.1.0
org.springframework.boot
spring-boot-maven-plugin
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
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;
}
}
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 queryPersonList();
}
10.在src/main/resouces中定义一个和mapper路径相同且同名的mapper文件夹,并编写同名的mapper.xml配置文件(如果不同名、不同路径则需要额外配置,同路径同名不需额外配置会默认编译到同一文件夹下并对应)
代码如下:
INSERT INTO TEST_PERSON(ID,NAME) VALUES (#{id},#{name})
DELETE FROM TEST_PERSON WHERE ID = #{id}
UPDATE TEST_PERSON SET NAME=#{name} WHERE ID = #{id}
代码如下:
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 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 queryPersonList() {
List 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 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。。。";
}
}
后端代码编写完成!