SpringBoot+postgrepsql+bootstrap进行简单用户管理系统的开发【系列文章】(一)

SpringBoot+postgrepsql+bootstrap进行简单用户管理系统的开发【系列文章】(一)

欢迎wchat交流:lzh371325
之前写SSH或者SSM项目需要大量样式化XML模板代码,SpringBoot,封装了大量的模板化配置,只需要少量的配置就能实现以前大量代码才能实现的功能,简化了开发过程,但在使用前需要详细了解spring的核心思想,比如AOP、IOC等等。
本项目使用SpringBoot+postgrepsql+bootstrap实现简单的增删查改的例子。bootstrap主要用来实现前端与用户的交互,是一款优秀的前端框架。开发工具使用idea,数据库可视化软件使用navicate。
整合项目结构为:
项目结构
整合项目的效果图如下:

主页
修改用户
增加用户
下面开始搭建工程:

一、引入springboot依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--postgrepsql依赖-->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
        </dependencies>
    </dependencyManagement>

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

二、开发实体类
controller:

*package cn.com.hikvision.demo01.domain;
import lombok.Data;
import javax.persistence.*;
@Data//生成gettersettter方法
@Entity(name = "Users")//名字
@Table(name = "usertest")//对应数据库表中名字
public class Users {
    @Id//数据库中主键标识
    @GeneratedValue//自增标识
    private int id;
    @Column(name = "name")//name属性为表的字段别名
    private String name;
    @Column(name = "gender")
    private String gender;
    @Column(name = "address")
    private String address;
    @Column(name = "email")
    private String email;
}*
spring:
  devtools:
    restart:
      additional-paths: resources/**,static/**,templates/**
  datasource:
    url: jdbc:postgresql://localhost/TestDemo
    username: postgres
    password: 12345678
    driverClassName: org.postgresql.Driver
    platform: postgres
  jpa:
    show_sql: true
    database-platform: org.hibernate.dialect.PostgreSQL9Dialect
    # database-platform: cn.luutqf.springboot.dialect.JsonbPostgresDialect
    hibernate:
      ddl-auto: update  # none: 关闭hibernate的自动创建表结构的机制
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        hbm2ddl.auto: update
        jdbc.lob.non_contextual_creation: true
        format_sql: true
        temp:
          # 兼容SpringBoot2.X, 关闭 Hibernate尝试验证PostgreSQL的CLOB特性
          use_jdbc_metadata_defaults: false
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML5
    encoding: UTF-8
    cache: false
    servlet:
      content-type: text/html

二、编写配置文件

三、开发Dao层

package cn.com.hikvision.demo01.Dao;

import cn.com.hikvision.demo01.domain.Users;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author: lizhihui
 * @description: 操作User数据的Dao接口
 * @date: 2019/7/10
 **/
@Repository //dao层标识,springboot直接根据接口生成相应的bean
public interface UserDao extends JpaRepository<Users, Integer> {
    //根据id查询用户
    @Query(value = "SELECT * FROM usertest WHERE id=?",
            nativeQuery = true)
    Users findUserById(int id);

    //根据name查询用户
    @Query(value = "SELECT * FROM usertest WHERE name=?",
            nativeQuery = true)
    public List<Users> getUserByName(String name);

    //修改用户
    @Query(value = "update usertest   set gender=:#{#user.gender}," +
            "address=:#{#user" +
            ".address},email=:#{#user.email} where id=:#{#user.id}"
            , nativeQuery = true)
    @Modifying
    @Transactional
    int updateUserById(Users user);

    //删除用户
    @Modifying
    @Transactional
    @Query(value = "delete from usertest where id=?", nativeQuery =
            true)
    int deleteUserById(int id);

    //增加用户
    @Query(value = "insert into usertest(name,gender,address,email)" +
            " values(:#{#user.name},:#{#user.gender},:#{#user" +
            ".address}," +
            ":#{#user" +
            ".email})",
            nativeQuery =
                    true)
    int addUser(Users user);

    //分页查询
    @Query(value = "select id,name,gender,address,email from " +
            "usertest limit  ?1  offset  ?2", nativeQuery = true)
    List<Users> getPage(int pageSize, int pageNumber);

    //获取记录总数
    @Query(value = "SELECT \"count\"(*) from usertest",
            nativeQuery = true)
    int getAccount();
}

今天就到这里,下一节进行service和web层的开发。欢迎一起交流springboot技术。。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值