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 {@Autowiredprivate 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 {@Autowiredprivate 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: .htmldatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/myguassdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTCusername: rootpassword: '123456'mybatis:mapper-locations: classpath:mybatis/*.xml