Spring Boot 和Maven搭建JavaWeb項目,實現用戶註冊,並將結果保存到Mysql

SpringMVC是現在主流框架,包括我現在也是用的SpringBoot+SpringMvc+MySql+Mybatis+Redis+....。今天給大家帶來整合SpringBoot+SpringMvc+mysql實現用戶的登錄和註冊,並在mysql中保存和修改。

1. 打開http://start.spring.io/,填寫需要用的項目功能。會自動生成基本的目錄結構及porm.xml文件和dependencies,並自動配置需要的jar包。搭建spring boot常用的工具爲Maven。


2. 下載Maven項目包。導入到eclipse。選擇file--import---Existing Maven Project,然後自動生成如下項目結構


3. 自動生成的porm.xml文件如下。如果第一次構建,右擊項目---Maven---update project會自動下載Jar包到Maven 的local Repository.(在D:\apache-maven-3.5.3\conf\settings.xml中設置<localRepository>E:\apache-mavenRepository</localRepository>。並在eclipse的window---Maven ---user setting 選擇這個設置文件並更新。)。

<?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.plin</groupId>
	<artifactId>bookebuy</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

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

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.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>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

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


</project>

4. Spring Boot 的優點在於spring-boot-starter-parent集成了各做框架,只需要在Maven中把定義爲parent標籤。並且可以統一管理版本,避免版本間的衝突。

5.項目結構


5. application.properties  配置mysql連接信息

server.port=8080

spring.datasource.url=jdbc:mysql://localhost:3306/bookebuy
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.datasource.max-active = 20
spring.datasource.max-idle=10
spring.datasource.min.idle=10
spring.datasource.initial-size=10

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

7. Spring MVC 三層代碼

7.1 Controller層,Web訪問服務器,會首先在這裏請求,並映射到各個RequestMapping,然後處理各個邏輯。

//採用RestController,在返回時,如果registSucceful。jsp,直接返回這個頁面,如果沒有,直接返回該字符串

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.plin.bookebuy.domain.User;
import com.plin.bookebuy.service.IUserService;
//採用RestController,在返回時,如果registSucceful.jsp,直接返回這個頁面,如果沒有,直接返回該字符串
@RestController
public class UserController {
	
	@Autowired
	private IUserService userService;
	
	@RequestMapping("/user/regist")
	public String regist(String username,String password,String email){
		User user = new User();
		user.setEmail(email);
		user.setPassword(password);
		user.setUsername(username);
		userService.addUser(user);
		System.out.println("consle---/user/regist");
		return "registSucceful";
	}
	
}

7.2 Service層

Controller層會調用Service層的方法。項目大部分的邏輯處理和事物處理都在Service層。比如判斷用戶或商品是否存在,然後調用Dao層進行處理或拋出全局異常到Controller及客戶端。

package com.plin.bookebuy.service;

import com.plin.bookebuy.domain.User;

public interface IUserService {
	void addUser(User user);
}
package com.plin.bookebuy.service;

import java.net.URI;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Service;

import com.plin.bookebuy.dao.UserDao;
import com.plin.bookebuy.domain.User;

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

	@Override
	public void addUser(User user) {
		userDao.addUser(user);
	}
}


7.3 Dao層,連接數據庫層,在這裏執行連接數據庫的操作

package com.plin.bookebuy.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import com.plin.bookebuy.domain.User;

@Repository
public class UserDao {

	@Autowired
	private JdbcTemplate jdbcTemplate;

	public void addUser(User user) {
		String sql = "INSERT INTO users VALUES(null,?,?,?,'user','0',null,null)";
		jdbcTemplate
				.update(sql,user.getUsername(),user.getPassword(),user.getEmail());		
	}
}


8.  程序入口,直接右鍵,run as java application, 即可啓動這個Web項目。然後在服務端就可以訪問。

package com.plin.bookebuy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BookebuyApplication {

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

9.運行測試

在遊覽器中輸入用戶名和密碼進行測試


數據庫查看






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章