概述

该Demo旨在部署一个简单spring boot工程,包含数据编辑和查看功能

POM配置

<?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.roncoo.education</groupId>
<artifactId>spring-boot-demo-15-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>spring-boot-demo-15-1</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.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-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>2.1.4</version>
</dependency> <!-- 数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> <dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.1</version>
</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>

  

属性配置

server.port=8080

spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/postgis_24_sample?currentSchema=lilei_1
spring.datasource.username=postgres
spring.datasource.password=lilei
spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.hibernate.ddl-auto= update spring.jpa.show-sql=true

  

工程结构图

核心代码

dao层

package com.lilei.spring_boot_db.boot.dao;

import java.util.List;

import com.lilei.spring_boot_db.boot.bean.User;

public interface UserDao {

	public User getUser(int id);

	public int updateUser(User u);

	public int insertUser(User u);

	public int deleteUser(int id);

	public List<User> queryUser(int pageSize,int pageNo);

}

dao实现层

package com.lilei.spring_boot_db.boot.dao.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository; import com.lilei.spring_boot_db.boot.bean.User;
import com.lilei.spring_boot_db.boot.dao.UserDao;
@Repository
public class UserDaoImpl implements UserDao { @Autowired
protected JdbcTemplate jdbc; public User getUser(int id) { String sql = "select name,create_date from user where id=?"; List<Map<String,Object>> list = jdbc.queryForList(sql, id); if (list.size()>0){
String name = list.get(0).get("name").toString();
Date createDate = (Date) list.get(0).get("create_date");
User u = new User(id,name);
u.setCreateTime(createDate);
return u;
} return null;
} public int updateUser(User u) { String sql = "update lilei_1.user set name=?,create_date=? where id=?"; int result = jdbc.update(sql, u.getName(),u.getCreateTime(),u.getId()); return result;
} public int insertUser(User u) {
String sql = "insert into lilei_1.user(id,name,create_date) values (?,?,?)"; int result = jdbc.update(sql, u.getId(),u.getName(),u.getCreateTime()); return result;
} public int deleteUser(int id) { String sql = "delete from lilei_1.user where id=?"; int result = jdbc.update(sql, id); return result; } public List<User> queryUser(int pageSize, int pageNo) { String sql = "select id,name,create_date from lilei_1.user limit ? offset ?"; List<Map<String,Object>> list = jdbc.queryForList(sql, pageSize,((pageNo-1) * pageSize)); List<User> us = new ArrayList<User>(); for(Map<String,Object> m:list){
int id = Integer.parseInt(m.get("id").toString());
String name = m.get("name").toString();
Date createDate = (Date) m.get("create_date");
User u = new User(id,name);
u.setCreateTime(createDate);
us.add(u);
} return us;
} }

  

  

控制器

package com.lilei.spring_boot_db.boot.controller;

import java.util.Date;
import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.lilei.spring_boot_db.boot.bean.User;
import com.lilei.spring_boot_db.boot.dao.UserDao; @RestController
@RequestMapping("/user")
public class UserService { @Autowired
protected UserDao userDao; @RequestMapping("insert")
public String insertUser(String name, int id) { User u = new User(id, name); userDao.insertUser(u); return "success";
} @RequestMapping("delete")
public String deleteUser(int id) {
userDao.deleteUser(id);
return "success";
} @RequestMapping("update")
public String updateUser(String name,int id) {
User u = new User(id,name);
u.setCreateTime(new Date());
userDao.updateUser(u);
return "success";
} @RequestMapping("query")
public List<User> query(int page_size, int page_no) {
return userDao.queryUser(page_size, page_no);
}
}  

spring boot一个简单用户管理DEMO的更多相关文章

  1. EasyUI+MVC+EF简单用户管理Demo(问题及解决)

    写在前面 iframe-src EntityFramework版本 connectionStrings View.Action.页面跳转 EasyUI中DataGrid绑定 新增.修改和删除数据 效果 ...

  2. Spring Boot超详细用户管理项目(零)——开发前准备

    开始前的软件准备:(编写中:未完成) 使用软件介绍: Java版本:Java SE 11(LTS) 开发工具:IDEA(2020.3版本) Linux系统: 数据库: Java 版本:Java SE ...

  3. Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)

    Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...

  4. vue入门:用户管理demo

    该demo纯前端实现 使用到vue技术点: 1.在该demo中使用到的vue指令:{{}}. v-if. v-model. @click v-for 2.在该demo中使用到的事件修饰符: .prev ...

  5. 基于vue.js的简单用户管理

    功能描述:添加.修改.搜索过滤 效果图: <!DOCTYPE html> <html lang="en"> <head> <title&g ...

  6. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  7. Spring boot 注解简单备忘

    Spring boot 注解简单备忘 1.定义注解 package com.space.aspect.anno;import java.lang.annotation.*; /** * 定义系统日志注 ...

  8. Spring Boot Mybatis简单使用

    Spring Boot Mybatis简单使用 步骤说明 build.gradle:依赖添加 application.properties:配置添加 代码编写 测试 build.gradle:依赖添加 ...

  9. Spring Boot超简单的测试类demo

    1 概述 Spring Boot结合Junit的简单测试类demo,流程是先引入依赖,接着编写测试类测试运行即可. 2 依赖 <dependency> <groupId>org ...

随机推荐

  1. 约会安排HDU - 4553

    寒假来了,又到了小明和女神们约会的季节.  小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复"呵呵",所以,小明的最爱就是和女神们约会.与此同时,也有很多基 ...

  2. 【原创】流程引擎的网关(遵循BPMN2.0)设计总结

    概述 BPMN 2.0是什么呢?业务流程模型注解(Business Process Modeling Notation - BPMN)是 业务流程模型的一种标准图形注解.这个标准 是由对象管理组(Ob ...

  3. ServiceStack.Text / Newtonsoft.Json 两种json序列化性能比较

    JSON序列化现在应用非常多,尤其在前后端分离的情况下,平常大多数C#下都使用Newtonsoft.Json来操作,量少的情况下,还可以忽略,但量大的情况下就要考虑使用ServiceStack.Tex ...

  4. KM算法新识

    看了很多写的好的文章,但是针对代码注释来讲,这篇文章最合适.                                 如果人生会有很长,愿你的荣耀永不散场--wenr大牛. #include ...

  5. C#-WinForm 串口通信

    //C# 的串口通信,是采用serialPort控件,下面是对serialPort控件(也是串口通信必备信息)的配置如下代码: serialPort1.PortName = commcomboBox1 ...

  6. WPF 验证没有通过无法保存数据(非常好)+ 虚似数据库

    Validation control with a single validation rule is easy, but what if we need to validate a control ...

  7. Spring MVC Ajax 嵌套表单数据的提交

    概述 在一些场景里,某个大表单里常常嵌套着一个或若干个小逻辑块,比如以下表单里"设计预审"中包括了一个子模块表单"拟定款项". 在这种情况下该怎么去设计实体类以 ...

  8. git 修改commit日期为之前的日期

    我在之前修改了一个文件,但是没有commit,现在我想要commit,日期为那天的日期 git commit --date="月 日 时间 年 +0800" -am "提 ...

  9. [问题记录]父元素position:relative的深坑

    个人博客迁移至:https://blog.plcent.com/欢迎大家访问 今天在写全屏切换的时候,发现一个问题就是切换时只能滚动第一屏,其他屏死都不动, 全屏滚动的原理: 是每次滚动父元素向上滚动 ...

  10. uva242,Stamps and Envelope Size

    这题紫薯上翻译错了 应该是:如果有多个并列,输出邮票种类最少的那个,如果还有并列,输出最大面值最小的那个 坑了我一个下午 dp[p][q]==1表示可以用不超过q张组成面额p 结合记忆化,p从1开始枚 ...