欢迎wchat交流:lzh371325
之前写SSH或者SSM项目需要大量样式化XML模板代码,SpringBoot,封装了大量的模板化配置,只需要少量的配置就能实现以前大量代码才能实现的功能,简化了开发过程,但在使用前需要详细了解spring的核心思想,比如AOP、IOC等等。
本项目使用SpringBoot+postgrepsql+bootstrap实现简单的增删查改的例子。bootstrap主要用来实现前端与用户的交互,是一款优秀的前端框架。开发工具使用idea,数据库可视化软件使用navicate。
整合项目结构为:
整合项目的效果图如下:
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-thymeleaf
org.postgresql
postgresql
runtime
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
二、开发实体类
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
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 {
//根据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 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 getPage(int pageSize, int pageNumber);
//获取记录总数
@Query(value = "SELECT \"count\"(*) from usertest",
nativeQuery = true)
int getAccount();
}
今天就到这里,下一节进行service和web层的开发。欢迎一起交流springboot技术。。。。。。。。