1.2 分析
1 创建数据库 user表
2 持久层框架 spring data jpa
3 json jsp 静态html freemarker
1.3页面展示
HTML展示数据 vue.js angular.js
动态页面显示 :每次请求都生成一次页面
jsp 本质上就是servlet 工程web 工程-
springbooot 项目工程中不推荐使用jsp
模板技术 freemarker
tymeleaf
velocity
使用步骤:
a : 添加依赖
b: 创建模板文件 保存位置resources/templates 目录下 文件后缀名.ftl
c 编写controller 把结果传递给模板
1.4 yaml 文件格式
key --value
1.4.1 语法 key: value
key1:
key2:
key3: value
1.4.2 取属性值
1.:创建对应的数据表
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) DEFAULT NULL,
`password` VARCHAR(50) DEFAULT NULL,
`name` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');
<!--添加spring mvc 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
<!--添加springdatajpa的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--模板依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
注意:版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
//注意继承父类的版本
<version>2.0.2.RELEASE</version>
</parent>
<groupId>com.offcn</groupId>
<artifactId>springbootdemo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
3:配置数据源
#DB Configation
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
//注意出现连接不上数据库那么在数据库名后面添加 ?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
url: jdbc:mysql://127.0.0.1:3306/数据库名
username: root
password: 813100
jpa:
database: MySQL
show-sql: true
generate-ddl: true
<html>
<head>
<title> spring boot</title>
</head>
<body>
<table border="3px">
<thead>
<tr>
<th>id</th>
<th>账号</th>
<th>密码</th>
<th>名字</th>
</tr>
</thead>
<#list userList as user > <!--userList为controller中添加到域对象中的数据-->
<tbody>
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td>${user.name}</td>
</tr>
</tbody>
</#list>
</table>
</body>
</html>
创建实体类
注意:要在实体类上添加@Entity和@Table注解
package com.wf.entity;
import javax.persistence.*;
//指数据库表对应的实体类
@Entity
//创建一个表,表名为user
//要连接的数据库
@Table(name="user")
public class User {
//主键自增长
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String username;
private String password;
private String name;
//这个里面只能用get和set方法不要用注解会有冲突
创建Controller接口
package com.wf.controller;
import com.wf.dao.UserDao;
import com.wf.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping("/page")
public class PageUserController {
@Autowired
private UserDao userDao;
//查询数据库数据
@RequestMapping("/user/list")
public String getUserList(ModelMap map){
List<User> userList = userDao.findAll();
map.addAttribute("userList",userList);
return "user"; //类似于springmvc中的内部视图解析器,前后缀都不用写
}
}
UserDao层:
需要继承JpaRepository接口
package com.wf.dao;
import com.wf.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
//<User,Integer>第一个参数是指实体类,第二个参数是指实体类的id
public interface UserDao extends JpaRepository<User,Integer> {
}