spring boot基于框架的实现
简单应用 - 用户数据显示
开发步骤
第一步:文件-----》新建---à项目
第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容.
第三步,选择maven后,下一步
第4步 :出现对话框中填写项目名称
第5步:填写后完成
第6步:把pom.xml打开
第7步:填写模块的软件版本
附:查版本
到远程仓库,进入仓库查询mysql8.0的版本
最终依赖包文件如下
把包输入后,使用maven的重新加载项目
除了上述的修改,还有一个lombok插件(java bean)
安装后“确定”即可
使用java开发注重项目架构(文件夹)
- Mvc开发模式
- Java开发必须有一个顶层的软件包(com)
- Model数据
- 数据库操作 dao-àmybatis实现java类到数据库表之间的关系-pojo
业务: (转帐)包含多数据库操作 service
控制:逻辑实现 controller
结构是通过在java中右键,新建---“软件包”实现
Java解决问题的思路
- 先有表,探讨表的结构
- 有java bean
- Pojo层数据库操作
- Service层逻辑(一般service和pojo代码相似)
- Controller封装逻辑
- 前端界面
结构理顺,用户登录和注册
第一步:有用户表
进入到mysql数据库
创数据库,打开数据库,创建表,插入数据。
第二步:有java bean
注意类名尽量与表名一致。
第三步:有dao层方法(pojo层的方法)
注意:springboot把pojo都变成接口,创建时选择interface
Interface不能写具体代码,代码被mybatis实现
在MyUser的java bean加入@Data的lombok注解
接口作用是不能被实现
代码如下
代码mybatis实现.,定义成interface
第四步:有service层,调用mapper层的类的方法,这一层有事务.
注意:@Service注解,@Autowired注入UserMapper
第五步:有controller层,在这层中,调用service
Controller层新建UserController类 的代码
第六步:前端页面 :
springboot前端要求必须有一个文件夹。文件夹在resources文件夹下,文件夹名字必须是templates
在templates文件夹下创建前端HTML文件
文件名与Controller中返回的字符串名称一致。
这里没一致,改一下
HTML代码后面完善
根据java流程架构图
Spring boot框架
配置文件
三部分内容
数据库连接
Mybatis 配置sql语句的位置
前端模板
名称只能是application.yml
Yml文件是键和值组成,形成数据库参数和值的对应关系
文件内容
数据库的驱动
Mysql5.X 驱动 com.mysql.jdbc.Driver
Mysql8.0驱动 com.mysql.cj.jdbc.Driver
Mysql5.X 地址
jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false
mysql8.0地址
jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
数据库密码是123456,写password: ‘123456’
myBatis的mapper文件xml
建立的文件名与pojo接口文件名一致
Xml文件注意的地方:
根据查询结果,修改pojo接口文件
对应Service结果的改变,UserService代码
前端的网页文件改如下:
UserController文件改如下
运行程序
写一个主程序,主程序只能在顶层的包里写,这里是com包
提示后回车
SpringBoot的主程序
报错
把右边maven项打开
把依赖项展开,是否有冲突项
去一个
把pom.xml文件改一下
排除后更新
更新后,只有一个
运行成功显示
显示数据在浏览器器中输入
基本结构成功。
第一种: 从架构理解
第二种从开发上理解
目标:把表数据变成网页显示
两条线:
后端线:表------àController控制层实现
- 先有表,探讨表的结构
- 有java bean,,类结构与表一致
(3)Pojo层数据库操作,这是接口文件,实现由mybatis配合xml增删改查实现。
- Service层逻辑(一般service和pojo代码相似),这是java类
- Controller封装逻辑,返回前端页面和数据
前端线
- 页面使用thymeleaf模板
- 接收前端数据${前端变量名 } ,th:each做循环
- 显示的是java bean当中的每一个属性值
详细代码
package com.bean; import lombok.Data; @Data public class MyUser { private int id; private String username; private String password; }
package com.controller; import com.bean.MyUser; import com.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userservice; @RequestMapping("/list") public String ListUser(Model model) { List<MyUser> users = userservice.selectUser(); System.out.println("users"); model.addAttribute("myusers", users); return "myuser"; } }
package com.pojo; import com.bean.MyUser; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface UserMapper { public List<MyUser> selectUser(); public void addUser(MyUser user); }
package com.service; import com.bean.MyUser; import com.pojo.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserMapper usermapper; public List<MyUser> selectUser(){ return usermapper.selectUser(); } }
package com; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Mymain { public static void main(String[] args) { SpringApplication.run(Mymain.class); } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.pojo.UserMapper"> <select id="selectUser" resultType="com.bean.MyUser"> select * from myuser </select> <insert id="addUser" parameterType="com.bean.MyUser"> insert into myuser values (#{id},#{username},#{password}) </insert> </mapper>
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>显示用户</title> </head> <body> <table> <tr> <td>id</td> <td>用户名</td> <td>用户密码</td> </tr> <tr th:each="item:${myusers}"> <td th:text="${item.id}"></td> <td th:text="${item.username}"></td> <td th:text="${item.password}"></td> </tr> </table> </body> </html>
spring: thymeleaf: prefix: classpath:/templates/ suffix: .html datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/myguassdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC username: root password: '123456' mybatis: mapper-locations: classpath:mybatis/*.xml