1. 程式人生 > >Spring Boot+Mybatis+MySql 完整整合教程

Spring Boot+Mybatis+MySql 完整整合教程

最近開始學習Spring Boot 找了些教程,描述不清楚走了很多彎路  所以把我的流程記錄一下

開發工具:myeclipse2014

框架:Spring Boot 、Mybatis 、Maven

資料庫:Mysql5.1

1.首先建立一個Maven專案

這是建立完成後的目錄結構

2.需要把專案改為web專案 右鍵專案然後Properties 找到 Project Facets 點選 Convert to faceted form...

3.除了本身已經勾上的Java 再勾上 Dynamic Web Module 如果報下面的錯誤 是因為Java 版本的問題,解決辦法是右鍵選擇Java 選擇 Change Version...  選擇1.6或以上版本 然後點選OK 這時候專案已經是Web 專案了

4.改下專案結構 在src下新建資料夾 webapp  然後把WebRoot 目錄下的檔案全都複製到webapp  再把WebRoot目錄刪掉 如下圖

5.下面開始配置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>cn.gendan</groupId>
  <artifactId>Copy</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  

	<packaging>war</packaging>

  
  
    <build>
	    <plugins>
	        <plugin>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-maven-plugin</artifactId>
	        </plugin>
	    </plugins>
	</build>
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
    </parent>
    <dependencies>
        <!-- Spring Boot -->
        <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>

        <!--啟動時啟動內建tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <!--對Jsp支援 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

        <!-- 支援jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            </dependency>
        
        <!-- json -->
		<dependency>
		  <groupId>com.alibaba</groupId>
		  <artifactId>fastjson</artifactId>
		  <version>1.2.3</version>
		</dependency>
        
         <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- MySql驅動 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            </dependency>

    </dependencies>
       
</project>

6.完整目錄結構如下


下面開始貼程式碼了

User.java

package cn.copy.model;

public class User {
	
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
	

}

UserDao.java

package cn.copy.dao;


import org.apache.ibatis.annotations.Mapper;

import cn.copy.model.User;


@Mapper
public interface UserDao {
	
	public User getNameById(User user);
	

}

UserService.java

package cn.copy.service;

import cn.copy.model.User;

public interface UserService {
	
	public User getNameById(User user);

}

UserServiceImpl.java

package cn.copy.service.Impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.copy.dao.UserDao;
import cn.copy.model.User;
import cn.copy.service.UserService;

@Service
public class UserServiceImpl implements UserService{
	
	@Autowired
	private UserDao userDao;

	@Override
	public User getNameById(User user) {
		return userDao.getNameById(user);
	}
	
	

}

UserController.java

package cn.copy.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSONObject;

import cn.copy.model.User;
import cn.copy.service.UserService;

@RestController
public class UserController {
	
	@Autowired
	private UserService userService;
	
	
	 @RequestMapping("/hello")  
     public String index() {  
          return"Hello World";  
     } 
	 
	 
	 @RequestMapping("/get")  
	 @ResponseBody
     public String get(User user) {  
		 User u=userService.getNameById(user);
		 
         return JSONObject.toJSONString(u);     
     }
	 
	 
	 

}

以上是spring MVC結構

下面是Spring Boot 啟動類 Application.java

package cn.copy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
@SpringBootApplication
public class Application{


    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    
    
}
用於部署後找到啟動類
package cn.copy;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer  extends SpringBootServletInitializer{
	
	
	   @Override
		protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
			return application.sources(Application.class);
		}

}

7.配置解析路徑和資料庫

建立檔案application.properties

#設定Tomcat埠,預設8080
server.port=8080
#設定專案ContextPath
server.context-path=/
#設定Tomcat編碼
server.tomcat.uri-encoding=UTF-8
#設定檢視解析器路徑
spring.mvc.view.prefix=/WEB-INF/views/
#設定檢視解析器字尾
spring.mvc.view.suffix=.jsp

#資料庫配置
spring.datasource.url=jdbc:mysql://localhost:3306/tuzisong?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=F6m3G3j6
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#配置.xml檔案路徑
mybatis.mapper-locations=classpath:mapper/*.xml
#配置模型路徑
mybatis.type-aliases-package=cn.copy.model

8.在resources目錄下新建 mapper資料夾 並建立檔案UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="cn.copy.dao.UserDao">


	<select id="getNameById" parameterType="cn.copy.model.User" resultType="cn.copy.model.User">
		SELECT * FROM user WHERE ID = #{id}
	</select>
	
</mapper>

大功告成,別忘了在資料庫裡建立user 表 或者自行修改sql語句以及資料庫名字與賬號密碼。

下面是執行後的結果 注意:不需要專案名稱


附:打包方法

開啟cmd cd到專案主目錄 輸入 mvn package 打包成war包  如果想要打包成jar需要在pom.xml裡改一下

等待打包完成執行如下命令可以執行專案  但是cmd關掉專案也就關閉了  可以在最後加上 & 就可以持續運行了  關閉直接 kill掉


完整原始碼下載地址  https://download.csdn.net/download/qq_33768099/10322400