第一次配这个,网上找数据库不是oracle ,实验了2天。
那啥,第一次接触,里面的东西几乎不懂。
文章目录
maven依赖
<?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>wkp.org</groupId>
<artifactId>myspringdemo</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- Spingboot相关jar包版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<!-- 相关jar包 -->
<dependencies>
<!-- Springboot核心jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- web开发包:包含Tomcat和Springmvc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Junit测试jar包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- spring-boot热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8-->
<!-- 连接数据库必须 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<!-- <!– jpa(已包含hibernate) –>-->
<!-- 加了jpa,可以用对象直接操纵数据库,不用写SQL语句 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/cn.easyproject/orai18n -->
<!-- 加了他,可以解决乱码问题。不加报错 -->
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>orai18n</artifactId>
<version>12.1.0.2.0</version>
</dependency>
</dependencies>
</project>
类
建立包和类如下
baseBean类
package wkp.myspringdemo.bean;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public class BaseBean {
/**
* 自增长ID,作为主键
*/
@Id
@GeneratedValue
private Long id;
}
user1类
这个类和数据库的表对应。
先在数据库里面建立对应的表,不然报错
create table user1(
age number,
info varchar2(40),
name varchar2(20),
id number primary key
);
注意,get和set方法要写,不然报错或者是你的数据库里面什么都没有
package wkp.myspringdemo.bean;
import javax.persistence.*;
@Entity
@Table(name = "user1")
public class User1 extends BaseBean{
private String name;
private int age;
private String info;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getInfo() {
return info;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setInfo(String info) {
this.info = info;
}
}
userController类
这个类好像和页面有关系
package wkp.myspringdemo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.ui.Model;
import wkp.myspringdemo.bean.User1;
import wkp.myspringdemo.service.UserService;
@Controller
public class UserController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World 000!!!";
}
@RequestMapping("/index")
public String index(Model model) {
model.addAttribute("name", "jack");
model.addAttribute("age", 20);
model.addAttribute("info", "我是一个爱学习的好青年");
return "index";
}
@Autowired
private UserService userService;
@RequestMapping("/save")
@ResponseBody
public String save(User1 user) {
userService.save(user);
return "save success !";
}
}
CommonDao
package wkp.myspringdemo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import wkp.myspringdemo.bean.BaseBean;
@Repository
public interface CommonDao<T extends BaseBean> extends JpaRepository<T, Long> {
}
UserDao
package wkp.myspringdemo.dao;
import org.springframework.stereotype.Repository;
import wkp.myspringdemo.bean.User1;
@Repository
public interface UserDao extends CommonDao<User1> {
}
userService
package wkp.myspringdemo.service;
import wkp.myspringdemo.bean.User1;
public interface UserService {
/**
* 保存用户对象
* @param user
*/
void save(User1 user);
}
userServiceImpl
package wkp.myspringdemo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import wkp.myspringdemo.bean.User1;
import wkp.myspringdemo.dao.UserDao;
import wkp.myspringdemo.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void save(User1 user) {
userDao.save(user);
}
}
App
package wkp.myspringdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 项目启动类
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
index.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<form action="/save" method="post">
姓名:<input type="text" th:value="${name}" name="name"><br/>
年龄:<input type="text" th:value="${age}" name="age"><br/>
简介:<input type="text" th:value="${info}" name="info"><br/>
<button>保存</button>
</form>
</body>
</html>
application.properties
开始看的教程是写的application.yml。但是疯狂报错。不得已改为了.properties
# 配置浏览器
server.port=80
server.session-timeout=30
server.tomcat.max-threads= 0
server.tomcat.uri-encoding=UTF-8
#thymeleaf
spring.thymeleaf.prefix= classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding= UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
#oracle 连接
#oracle.jdbc.Driver.OracleDriver这个没有成功
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=你的账户
spring.datasource.password=你的密码
spring.jpa.database=oracle
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
#spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
#spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
演示
参考自:https://zyqok.blog.csdn.net/article/details/86711708?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param