使用IDEA搭建Sprngboot+Mybatis+Oracle,怎么创建项目就不说了
项目源码:
链接:https://pan.baidu.com/s/1PBYfDJH4_dvNjozwA9Wx3A
提取码:w56b
一、项目的总体结构
二、数据库
1、先登录管理员账号,建立新用户:
create user xgq
identified byxgq
default tablespace xgq
identified by 后边是用户的密码
default tablespace 后边是表空间名称
oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。
2、为建立的新用户赋予权限
grant dba to xgq
Oracle 中已存在三个重要的角色:connect 角色,resource角色,dba角色。
CONNECT 角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE 角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
DBA角色:拥有全部特权,是系统最高权限,只有 DBA才可以创建数
据库结构,并且系统权限也需要DBA授出,且 DBA用户可以操作全体用户的任意基表,包括删除
3、创建 person表
create table PERSON
(
pid NUMBER(20),
pname VARCHAR2(10),
sex VARCHAR2(10),
email VARCHAR2(50),
passowd VARCHAR2(20)
)
4、``INSERT (增加)数据
insert into person values(1,'李四',''1,''125@qq.com,'1234');``
三、application.yml配置文件及pom.xml文件
application.yml配置文件如下:
mybatis:
type-aliases-package: com.example.entity
server:
port: 8082
spring:
datasource:
url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
username: xgq
password: a123456
driver-class-name: oracle.jdbc.OracleDriver
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>spring_mybait_orcale</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_mybait_orcale</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>orai18n</artifactId>
<version>12.1.0.2.0</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
四、personMapper.xml配置文件
在resources 目录下创建com.example.dao文件,在再创建的文件下创建personMapper.xml配置文件。personMapper.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.example.dao.PersonMapper">
<select id="insertPerson" parameterType="com.example.entity.Person">
insert into person(PID,PNAME,SEX,EMAIL,PASSOWD) VALUES (#{pid},#{pname},#{sex},#{email},#{passowd})
</select>
<delete id="delePersonById" parameterType="int">
delete from person where PID=#{pid}
</delete>
<select id="findByPid" parameterType="int" resultType="com.example.entity.Person">
select * from person where PID=#{pid}
</select>
<update id="updateByPid" parameterType="com.example.entity.Person">
update person set PNAME = #{pname} ,SEX = #{sex},EMAIL=#{email},PASSOWD=#{passowd} where PID = #{pid}
</update>
</mapper>
五、项目代码
PersonController.java的代码如下:
package com.example.controller;
import com.example.entity.Person;
import com.example.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/person")
public class PersonController {
@Autowired
private PersonService personService;
@RequestMapping(value = "/insert")
public String insert(int pid){
Person person = new Person();
person.setPid(pid);
person.setPname("测试"+pid);
person.setEmail("125@qq.com");
person.setSex("男");
person.setPassowd("123");
personService.insertPerson(person);
return "insert success...";
}
@RequestMapping(value = "/delete")
public String delete(int pid) {
personService.deletePersonById(pid);
return "delete success。。。";
}
@RequestMapping(value = "find")
public String findByPid(int pid){
Person person = personService.findByPid(pid);
return "findByPid success..."+person.getPname();
}
@RequestMapping("update")
public String updateByPid(Person person){
person.setPname("测试");
person.setEmail("125@qq.com");
person.setSex("男");
person.setPassowd("123456");
personService.updateByPid(person);
return "update success...";
}
}
PersonMapper.java代码如下:
package com.example.dao;
import com.example.entity.Person;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PersonMapper {
void insertPerson(Person person);
void delePersonById(int pid);
Person findByPid(int pid);
void updateByPid(Person person);
}
Person.java代码如下:
package com.example.entity;
public class Person {
Integer pid;
String pname;
String sex;
String email;
String passowd;
@Override
public String toString() {
return "Person{" +
"pid=" + pid +
", pname='" + pname + '\'' +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
", passowd='" + passowd + '\'' +
'}';
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassowd() {
return passowd;
}
public void setPassowd(String passowd) {
this.passowd = passowd;
}
}
PersonService.java代码如下:
package com.example.service;
import com.example.entity.Person;
import java.util.List;
public interface PersonService {
void insertPerson(Person person);
void deletePersonById(int pid);
Person findByPid(int pid);
void updateByPid(Person person);
}
PersonServiceImpl.java代码如下:
package com.example.service.impl;
import com.example.dao.PersonMapper;
import com.example.entity.Person;
import com.example.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonMapper personMapper;
@Override
public void insertPerson(Person person) {
this.personMapper.insertPerson(person);
}
@Override
public void deletePersonById(int pid) {
personMapper.delePersonById(pid);
}
@Override
public Person findByPid(int pid) {
return personMapper.findByPid(pid);
}
@Override
public void updateByPid(Person person) {
personMapper.updateByPid(person);
}
}
SpringMybaitOrcaleApplication.java代码如下:
package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = "com.example.dao")
public class SpringMybaitOrcaleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringMybaitOrcaleApplication.class, args);
}
}
六、测试
首先我数据库有2条数据
1、现在我们来测试增加一个数据
现在再来看数据库,数据库已经加进来了
2、我们来根据pId删除新增的数据库
数据库中数据如下:
3、我们根据PId来查找数据:
4、我们根据PId来修改数据:
数据库中的数据: