SpringBoot集成Jpa,渲染html页面
项目架构:Springboot+Mysql+JPA+Thymeleaf,自动生成表结构,此项目只讲干货,无过多描述性文字,如需下载完整的Demo,文章底部有下载链接。
项目分为以下几步:添加所属依赖,创建数据库,创建dao层,在controller中返回页面。
第一步:创建一个springboot项目,可以使用idea进行新建也可以在start.spring.io中生成下载。
第二步添加依赖,主要依赖有:mysql连接数据库的依赖,jdbc,thymeleaf依赖,web依赖,JPa的依赖。如下:
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
mysql
mysql-connector-java
runtime
第三步:在application.properties中进行配置数据库链接信息
#数据库相关配置
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=xxx
第四步:创建User实体,省略GET.SET
@Entity@Table(name = “t_user”) //指定生成的数据库表名称public classUser{/***设置主键,默认自增*/@Id@GeneratedValue(strategy = GenerationType.AUTO)
privateIntegerid;privateStringuserName;
privateStringsex;
privateLocalDateTimebirthDay;
第五步:创建JPA的DAO层,就是Repository这个接口。此接口继承JpaRepository,里面已经包含了很多现成的方法,无需实现,拿来就能用。同时还可以写自己的方法,写的方法可以不写实现,JPA会根据方法名自动解析,帮你实现。当然,也可以自己写sql语句进行实现,可以写普通的SQL和HQL,都可以
/***此接口默认已经完成基本的增删改查功能,还可以自己拓展*/@Repositorypublic interfaceUserPositoryextendsJpaRepository {/***根据方法名自动解析,无需实现*@paramuserName*@return*/UserfindUserByUserName(StringuserName);/***指定使用的SQL,类似Myabatis的@Select*原生sql查询写法*@paramusername*@return*/@Query(value = ” SELECT * from t_user where username=:username”, nativeQuery = true)
UserfindUserByUsername(@Param(“username”) Stringusername);
/***指定使用的SQL,次处是HQL* Hql语法 查询写法*@paramsex*@return*/@Query(value = “from User u where u.sex=:sex”)
UserfindUserBySex(@Param(“sex”) Stringsex);
}
第六步:写一个controller.里面有返回页面的,也有返回数据的,默认情况下返回数据如果是对象或者list之类的,会自动转成JSON返回。
@Controller
public class UserController {
private Logger logger = LoggerFactory.getLogger(UserController.class);
/**
* 返回页面
* @return
*/
@RequestMapping(value = "/")
public String index() {
logger.info("进入index页面");
return "index";
}
/**
* 返回数据
* @return
*/
@ResponseBody
@RequestMapping("/data")
public String data() {
return "hello World";
}
DEMO下载地址:Demos