1. 程式人生 > >Spingboot入門小Demo,從部署和搭建至成功執行

Spingboot入門小Demo,從部署和搭建至成功執行

沒有spring,springmvc等的基礎,獲得了一個前後端都完整的SSM系統,學習的過程很困難,什麼都不會,花費了很長時間,近期又受老師的指示,開始學習Springboot,從開始部署就踩了很多坑,按照很多網上的教程都沒有成功,今天偶然搭建執行成功,來此記錄,給眾多和我一樣菜的菜鳥以指示。

準備工作:

IDEA以及基本的maven,tomcat外掛,Oracle資料庫(其他資料庫需要更改pom.xml中的Jar包和applicaton.properties中的oracle配置段落,簡單。)

開始搭建:

1、在IDEA中建立Springboot專案:new→project→Spring Initializr,後續省略,自行百度。

2、建立完基礎工程之後,建立好目錄,如下:(Application是被我重新命名後的專案啟動類,在com.example.dao下一級目錄下)

3、程式碼(這個demo的java程式碼是我copy網上的一個demo)

pom.xml:

其中ojdbc jar包因為許可權的問題,需要自行下載然後匯入到IDEA中,參考:

<?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.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>studydemo01</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.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.3.2</version>
		</dependency>

		<!-- oracle -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.4</version>
		</dependency>

		<!-- druid資料庫連線池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.11</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>

	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

com.example.demo.conntroller.UserController:

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * Created by 王婷 on 2018/11/2.
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/insert")
    public String InsertUser() {
        User user = new User();
        user.setId(2);
        user.setAge(18);
        user.setName("zhou");
        userService.insertUser(user);
        return "成功";
    }
}

com.example.demo.dao.UserMapper:

package com.example.demo.dao;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Created by 王婷 on 2018/10/31.
 */
@Repository
public interface UserMapper {
    void insertUser(User user);
    User selectUser(int id);
    void deleteUser(int id);
    void updateUser(User user);
    List<User> findAll();
}

com.example.demo.entity.User:

package com.example.demo.entity;

import org.springframework.boot.autoconfigure.domain.EntityScan;

/**
 * Created by 王婷 on 2018/10/31.
 */
public class User {
    private Integer id;
    private String name;
    private Integer age;

    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;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

com.example.demo.service.UserService:

package com.example.demo.service;

import com.example.demo.entity.User;

import java.util.List;

/**
 * Created by 王婷 on 2018/10/31.
 */
public interface UserService {
    void insertUser(User user);

    User selectUser(int id);

    void deleteUser(int id);

    List<User> findAll();
}

com.example.demo.service.Impl.UserServiceImpl:

ackage com.example.demo.service.Impl;

import com.example.demo.dao.UserMapper;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created by 王婷 on 2018/10/31.
 */
@Service("UserService")
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;

    @Override
    public void insertUser(User user){
        userMapper.insertUser(user);
    }

    @Override
    public User selectUser(int id){
        return userMapper.selectUser(id);
    }

    @Override
    public void deleteUser(int id){
        userMapper.deleteUser(id);
    }

    @Override
    public List<User> findAll(){
        return userMapper.findAll();
    }
}

mapper:

<?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.demo.dao.UserMapper">
    <select id="selectUser" parameterType="int" resultType="com.example.demo.entity.User">
        SELECT id,name,age FROM "USERS" WHERE id=#{id}
    </select>

    <insert id="insertUser" parameterType="com.example.demo.entity.User">
        INSERT INTO "USERS"(id,name,age) VALUES(#{id},#{name},#{age})
    </insert>

    <delete id="deleteUser" parameterType="int">
        DELETE FROM "USERS" WHERE id=#{id}
    </delete>

    <update id="updateUser" parameterType="com.example.demo.entity.User">
        UPDATE "USERS" SET name=#{name},age=#{age} WHERE id=#{id}
    </update>
    
    <select id="findAll" resultType="com.example.demo.entity.User">
        SELECT id,name,age FROM "USERS"
    </select>
</mapper>

application.properties(配置類):

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL
spring.datasource.username=scott
spring.datasource.password=tiger
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

mybatis.type-aliases-package=com.example.demo
mybatis.mapper-locations=classpath:mapper/*.xml

spring.mvc.view.prefix=/WEB-INF/jsp
spring.mvc.view.suffix=.jsp

4、資料庫準備:

(1)安裝Oracle,參考:

(2)建立users表格,依據entity中的User類中的資料建立欄位:id,name,age

發現執行成功,開啟資料庫,發現Controller中的程式碼執行成功,資料成功插入到資料庫中

=.=  =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=   =.=