maven +SpringBoot+restful+mySql

我们创建一个maven +SpringBoot+restful+mySql的项目,这个是目录结构!我么要注意,一定要将 main 方法的与  controller  文件夹放在同一级目录下


第一步  配置 pom.xml源码 如下

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sy.testboot</groupId>
<artifactId>Boot</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Boot Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
</dependencies>
</project> 

第二步 配置application.properties


# Database
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Hibernate
hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql: true
hibernate.hbm2ddl.auto: update
entitymanager.packagesToScan: netgloo

第四步  写主方法 TestBoot.java


package sy.testboot;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;






@Controller
@ComponentScan  
@Configuration  
@EnableAutoConfiguration
public class TestBoot {


@RequestMapping(value = "/hello", method = RequestMethod.GET)
@ResponseBody
public String hello() {
      return "hello world";
}

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


}



接下来 UserController.java



package sy.testboot.controllers;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;


import sy.testboot.models.User;
import sy.testboot.models.UserDao;




//表明某类是一个控制器    控制请求
@RestController
@SpringBootApplication
@RequestMapping(value = "/create")
public class UserController {


// 1、请求的映射规则 value是规则的值 2、该注解用于读取Request请求的body部分数据


@RequestMapping(value = "/{email}/{name}",method = RequestMethod.GET)
public String create(@PathVariable(value="email") String email,@PathVariable(value="name") String name) {
try {
User user = new User();
user.setEmail(email);
user.setName(name);
userDao.create(user);
} catch (Exception ex) {
return "添加用户失败: " + ex.toString();
}
 return "添加成功";
}


@RequestMapping(value = "/delete/{id}")
@ResponseBody
public String delete(@PathVariable(value="id") long id) {
try {
User user = new User();
user.setId(1L);
userDao.delete(user);
} catch (Exception ex) {
return "删除用户失败: " + ex.toString();
}
return "删除成功";
}


@RequestMapping(value = "/check/{email}",method = RequestMethod.GET)
public String getByEmail(@PathVariable(value="email") String email) {
System.out.println("check");
String userId;
try {
System.out.println(email);
User user = userDao.getByEmail(email);
userId = String.valueOf(user.getId());
} catch (Exception ex) {
return "查询失败: " + ex.toString();
}
return "用户ID: " + userId;
}


@RequestMapping(value = "/update")
@ResponseBody
public String updateName(long id, String email, String name) {
try {
User user = userDao.getById(id);
user.setEmail(email);
user.setName(name);
userDao.update(user);
} catch (Exception ex) {
return "修改失败: " + ex.toString();
}
return "修改成功";
}


// 自动注入
@Autowired
private UserDao userDao;


}

user.java



package sy.testboot.models;


import java.io.Serializable;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;


//1、实体注解     2、对应数据库的哪张表
@Entity
@Table(name = "user")
public class User implements Serializable {


// @Id 注解可将实体Bean中某个属性定义为主键
// @GeneratedValue 表示该表主键生成策略 strategy策略 GenerationType策略类型 IDENTITY自增
// AUTO自动选择 SEQUENCE通过序列 TABLE通过表产生主键
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;


// 注解表示该字段是非空的
@NotNull
private String email;


@NotNull
private String name;


public User() {
}


public User(long id) {
this.id = id;
}




public long getId() {
return id;
}


public void setId(long id) {
this.id = id;
}


public String getEmail() {
return email;
}


public void setEmail(String email) {
this.email = email;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


}

UserDao.java


package sy.testboot.models;


import java.util.List;


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;


import org.springframework.stereotype.Repository;


//1、存储层Bean的注解    2、声明这个类的所有方法需要事务管理
@Repository
@Transactional
public class UserDao {


/**
* 实体管理器,执行持久化操作 添加
*/
public void create(User user) {
String sql ="insert into User  values((SELECT REPLACE(UUID(),'-','')),'"+user.getEmail()+"','"+user.getName()+"')";
javax.persistence.Query query = entityManager.createNativeQuery(sql);
query.executeUpdate();

}



/**
* 实体管理器,执行持久化操作 删除
*/
public void delete(User user) {
if (entityManager.contains(user))
entityManager.remove(user);
else
entityManager.remove(entityManager.merge(user));
return;
}


/**
* 实体管理器,执行持久化操作 查询所有数据
*/
@SuppressWarnings("unchecked")
public List<User> getAll() {
return entityManager.createQuery("from User").getResultList();
}


/**
* 实体管理器,执行持久化操作 根据email查询User对象
*/
public User getByEmail(String email) {
return (User) entityManager
.createQuery("from User where email = :email")
.setParameter("email", email).getSingleResult();
}


/**
* 实体管理器,执行持久化操作 根据ID查询User对象
*/
public User getById(long id) {
return entityManager.find(User.class, id);
}


/**
* 实体管理器,执行持久化操作 修改
*/
public void update(User user) {
entityManager.merge(user);
return;
}


// 注入实体管理器
@PersistenceContext
private EntityManager entityManager;
//实体管理


}

DatabaseConfig.java


package sy.configs;


import java.io.IOException;
import java.util.Properties;


import javax.sql.DataSource;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;


@Configuration
@EnableTransactionManagement
public class DatabaseConfig {


/**
* DataSource definition for database connection. Settings are read from the
* application.properties file (using the env object).
*/
@Bean
public DataSource dataSource() {
// 数据连接池对象
DriverManagerDataSource dataSource = new DriverManagerDataSource();
// 获取数据源连接池中的数据(resources中的数据连接文件)
dataSource.setDriverClassName(env.getProperty("db.driver"));
dataSource.setUrl(env.getProperty("db.url"));
dataSource.setUsername(env.getProperty("db.username"));
dataSource.setPassword(env.getProperty("db.password"));
// 返回一个数据源
return dataSource;
}


/**
* Declare the JPA entity manager factory.
*/
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory()
throws IOException {
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();


entityManagerFactory.setDataSource(dataSource);


// Classpath scanning of @Component, @Service, etc annotated class
entityManagerFactory.setPackagesToScan("sy.models");


// Vendor adapter
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManagerFactory.setJpaVendorAdapter(vendorAdapter);


// Hibernate properties
Properties additionalProperties = new Properties();
additionalProperties.put("hibernate.dialect",
env.getProperty("hibernate.dialect"));
additionalProperties.put("hibernate.show_sql",
env.getProperty("hibernate.show_sql"));
additionalProperties.put("hibernate.hbm2ddl.auto",
env.getProperty("hibernate.hbm2ddl.auto"));
entityManagerFactory.setJpaProperties(additionalProperties);


return entityManagerFactory;
}


/**
* Declare the transaction manager.
*/
@Bean
public JpaTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory
.getObject());
return transactionManager;
}


/**
* PersistenceExceptionTranslationPostProcessor is a bean post processor
* which adds an advisor to any bean annotated with Repository so that any
* platform-specific exceptions are caught and then rethrown as one Spring's
* unchecked data access exceptions (i.e. a subclass of
* DataAccessException).
*/
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}


// Private fields


// 用于获取数据源环境的对象(resources数据连接的配置文件)
@Autowired
private Environment env;


@Autowired
private DataSource dataSource;


@Autowired
private LocalContainerEntityManagerFactoryBean entityManagerFactory;


}


下边有整个项目完整源码:百度云盘 http://pan.baidu.com/s/1gfL2223


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 3 和 Spring Boot 是一对强大的技术组合,可用于搭建现代化的后台管理系统。下面是一个基本的指南,介绍如何从零开始搭建一个 Vue 3 + Spring Boot 后台管理系统。 首先,我们需要准备开发环境。在电脑上安装好 Node.js 和 Java JDK,并配置好环境变量。然后,安装 Vue CLI 和 Spring Boot CLI,这些工具将帮助我们创建和管理项目。 第二步是创建一个新的 Spring Boot 项目。使用 Spring Boot CLI,我们可以快速创建一个空的 Spring Boot 项目,并进行基本的配置。可以使用命令行,输入如下命令来创建项目: ``` $ spring init --name=my-project --groupId=com.example --artifactId=my-project --dependencies=web my-project ``` 这将创建一个名为 my-project 的 Spring Boot 项目。 接下来,我们可以创建一个 Vue 3 项目。使用 Vue CLI,我们可以选择一个预定义的模板,例如 Vue Router 和 Vuex,以及一些常用的插件。可以使用命令行,输入如下命令来创建项目: ``` $ vue create my-project ``` 这将创建一个名为 my-project 的 Vue 3 项目。 现在,我们已经有了一个空的 Spring Boot 项目和一个空的 Vue 3 项目。接下来,我们需要将这两者连接起来。 在 Vue 3 项目中,可以使用 axios 或者 fetch 来发送请求到后端。在 Spring Boot 项目中,可以使用 Spring Data JPA 来管理数据库,Spring Boot Security 来进行身份验证和授权。 我们可以编写 RESTful API 接口,用于在前端和后端之间传输数据。同时,也需要编写前端组件和页面,以及后端的 Controller 和 Service 层代码,来实现各种功能。 最后,我们可以使用打包和部署工具,将项目打包为可部署的文件,并将其部署到服务器上。例如,可以使用 Maven 将 Spring Boot 项目打包为 Java 可执行文件(JAR 文件),并使用 Nginx 或 Apache 将 Vue 3 项目部署为静态文件。 总之,使用 Vue 3 和 Spring Boot 可以快速搭建一个功能丰富的后台管理系统。只需按照上述步骤创建项目、编写代码、连接前后端,最后打包部署即可。当然,在实际开发过程中还需要考虑安全性、性能优化和代码质量等方面的问题,这些都需要进一步的学习和实践。 ### 回答2: Vue3是一个流行的JavaScript框架,用于构建用户界面。Spring Boot是一个基于Java的框架,用于构建快速且易于配置的应用程序。下面是在Vue3和Spring Boot中从零搭建后台管理系统的步骤: 1. 搭建Spring Boot后端: - 在IDE中创建一个新的Spring Boot项目。 - 添加所需的依赖项,如Spring Security、Spring Data JPA和MySQL数据库驱动程序。 - 创建实体类和存储库接口,用于管理系统数据的持久化。 - 创建控制器类,用于处理来自前端的请求,并调用适当的服务方法。 - 配置数据库连接和安全性设置。 - 运行应用程序,确保后端正常工作。 2. 搭建Vue3前端: - 在命令行中使用Vue CLI创建一个新的Vue3项目。 - 在Vue3项目中安装所需的依赖项,如Vue Router和Axios。 - 创建路由配置文件,定义前端路由和对应的组件。 - 创建后台API服务文件,使用Axios发送HTTP请求到后端。 - 创建所需的组件,如登录、注册、用户管理和权限管理。 - 配置应用程序的主要入口点,并将路由和组件添加到Vue实例中。 - 运行应用程序,确保前端正常工作。 3. 连接前端和后端: - 在Vue3中使用Axios调用后端API。 - 在Spring Boot中创建适当的控制器和服务方法,以接收和处理来自前端的请求。 - 在Vue3中处理返回的数据,并根据需要进行展示和处理。 4. 完善功能和界面设计: - 根据系统需求和设计规范,完善后台管理系统的功能和界面。 - 添加用户认证和授权功能,确保只有授权用户才能访问特定页面和功能。 - 使用Vue3的组件化和响应式特性,实现良好的用户体验。 - 进行测试和调试,确保系统稳定性和安全性。 以上是使用Vue3和Spring Boot搭建后台管理系统的一般步骤,具体的实施过程可能因项目需求和个人偏好而有所不同。在开始搭建项目之前,建议先了解Vue3和Spring Boot的基本知识,并参考官方文档和教程,以帮助顺利完成项目。 ### 回答3: 搭建一个基于Vue3和Spring Boot的后台管理系统,需要经过以下步骤: 1. 确保你已经安装了Node.js和Java开发环境。可以从官网上下载并按照指引进行安装。 2. 创建Vue3项目。使用命令行工具或者Vue CLI来创建一个新的Vue3项目。运行命令`vue create project-name`,然后根据指引选择需要的配置项,比如包管理工具、路由、状态管理等。等待项目创建完成。 3. 构建前端界面。在Vue3项目中,根据需求使用Vue组件来搭建前端界面。可以使用Vue3提供的Composition API来编写组件逻辑,通过Vue Router来管理路由,使用Vuex来管理状态。 4. 编写API接口。使用Spring Boot来构建后端服务。创建一个Spring Boot项目,添加所需的依赖,如Spring Web、Spring Data JPA等。编写API接口的Controller类,定义各个接口的URL映射和请求处理方法。 5. 连接数据库。使用Spring Data JPA或其他适当的技术在后台系统中连接数据库。配置数据库连接信息,创建实体类和仓库接口,实现对数据库的增删改查操作。 6. 实现前后端交互。在Vue3项目中,使用axios或其他合适的HTTP库发送HTTP请求到后端接口,获取数据并进行展示。前端页面通过调用API接口来实现数据的增删改查操作。 7. 运行和部署。在开发过程中可以使用命令行运行Vue3前端项目和Spring Boot后端项目,通过不同的端口来访问前后端。在开发完成后,可以使用打包工具如Webpack将前端项目打包成静态文件,然后将打包结果部署到服务器,运行Spring Boot项目。 通过以上步骤,你就可以搭建一个基于Vue3和Spring Boot的后台管理系统。这个系统可以实现前后端分离,通过API接口进行数据交互,具备良好的可扩展性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值