一、电脑商城项目:

项目功能:登录,注册,热销商品,用户管理(密码,个人信息,头像,收货地址)、购物车(展示、增加、删除)、订单模块。

二、开发顺序:

注册、登录、用户管理、购物车、商品、订单模块

三、某一个模块的开发:

持久层开发:依据前端页面的设置规划相关的SQL语句,以及进行配置

业务层开发:核心功能控制、业务操作以及异常的处理

控制层开发:接受请求、处理响应

前端开发:JS、jQuery、AJAX连接后台

四、项目搭建步骤:

1.IDEA新建项目,导入jar包

2.配置信息

3.创建数据库

4.测试连接:

启动Springboot主类,是否有对应的Spring图形输出

在单元测试类中测试数据库的连接是否可以正常的加载

5.访问项目的静态资源是否可以正常加载,所有的静态资源放到static目录下

五、注册功能-持久层

1.建表如图所示

2.创建用户的实体类

①.通过表的结构可以提取出表的公共字段,放在一个实体类的基类中,起名叫BaseEntity基类中。

②.创建用户的实体类

六、注册-持久层

通过Mybatis来操作数据库。在做Mybatis开发的流程

6.1规划需要执行的SQL语句

1.用户的注册功能,相当于在做数据的插入操作。

INSERT INTO t_user (username,password) VALUES (值列表)

6.2设计接口和抽象方法

6.2.1定义Mapper接口。在项目的目录结构下创建一个mapper包,在这个包下再根据不同的功能模块来创建mapper接口。创建一个Usermapper的接口。要在接口中定义这两个SQL语句的抽象方法。

package com.example.store.mapper;
import com.example.store.entity.User;
/** 处理用户数据操作的持久层接口 */ public interface UserMapper {
/**
* 插入用户数据
* @param user 用户数据
* @return 受影响的行数(增删改都受影响的行数作为返回值,可以根据返回值来判断是否执行成功
*/
Integer insert(User user);
/**
* 根据用户名查询用户数据
* @param username 用户名
* @return 如果找到对应的用户则返回该用户的数据,如果没找到则返回null
*/
User findByUsername(String username);
}

6.2.2在启动类配置mapper接口文件的位置

6.3编写映射

6.3.1定义xml映射文件,与对应的接口进行关联。所有的映射文件都要放置在resources目录下,在这个目录下创建一个mapper文件夹,然后在这个文件夹下存放mapper的映射文件。

6.3.2创建接口对应的映射文件,遵循和接口的名称保持一致即可。创建一个UserMapper.xml文件。

<?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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>

6.3.3配置接口中的方法对应上SQL语句。需要借助标签来完成——insert\update\delete\select,对应的是SQL语句的增删改查操作。

  <!--自定义映射规则:resultMap标签来完成映射规则的定义-->
<!--id属性:标签给这个映射负责分配一个唯一的id值,对应的就是resultMap=“id属性的值”属性的取值
type属性:取值是一个类,表示的是数据库中查询结果与JAVA中哪个实体类进行结果集的映射
-->
<resultMap id="UserEntityMap" type="com.example.store.entity.User">
<!--将表的资源和类的属性不一致的字段进行匹配指定,名字一致的字段可以省略不写-->
<!--
配合完成名称不一致的映射:
column属性:表示表中的资源名称
property属性:表示类中的属性名称
-->
<!--在定义映射规则时,主键是不可以省略的-->
<id column="uid" property="uid"/>
<result column="is_delete" property="isDelete"/>
<result column="created_user" property="createdUser"/>
<result column="created_time" property="createdTime"/>
<result column="modified_user" property="modifiedUser"/>
<result column="modified_time" property="modifiedTime"/>
</resultMap>
<!--id属性:表示映射的接口方法中的名称,直接在标签的内容部分来编写SQL语句-->
<!--
useGeneratedKeys属性:表示开启某个字段的值自增(主键设置为自增)
keyProperty属性:标签将表中的哪个字段作为主键进行递增
-->
<insert id="insert" useGeneratedKeys="true" keyProperty="uid">
INSERT INTO t_user (
username, password, salt, phone, email, gender, avatar, is_delete,
created_user, created_time, modified_user, modified_time)
VALUES
(#{username}, #{password}, #{salt}, #{phone}, #{email}, #{gender}, #{avatar},
#{isDelete}, #{createdUser}, #{createdTime}, #{modifiedUser}, #{modifiedTime})
</insert> <!-- select语句在执行的时候,查询的结果是一个对象,多个对象-->
<!--
resultType:表示查询的结果集类型,只需要指定对应映射类的类型,并且包含完整包接口:resultType="com.example.store.entity.User
resultMap: 标签当表的资源和类的对象属性的字段名称不一致时,来自定义查询结果集的映射规则
-->
<select id="findByUsername" resultMap="UserEntityMap">
SELECT
*
FROM
t_user
WHERE
username = #{username}
</select>

配置连接。
在 第一次使用 的时候,除了要配置连接,还要配置相应的驱动,否则连接的时候会报错!!!
图中的①②③④⑤分别表示为:
①、连接的名称
②、连接的数据库地址和端口号(连接本地的数据库就默认为localhost,端口号为3306)
③、MySQL数据库的用户名和密码
④、需要连接的数据库名称
⑤、配置完成之后,点击测试连接,查看是否连接成功。

如图连接成功后,就将IDEA和数据库连接成功了。

6.3.4将mapper文件的位置注册到properties对应的配置文件中。

mybatis.mapper-locations=classpath:mapper/*.xml

6.3.5单元测试:

每个独立的层编写完成后需要编写单元测试方法,来测试当前的功能。在test包结构下创建一个mapper包,在这个包下再创建持久层的测试。

Springboot项目记录1配置环境的更多相关文章

  1. SpringBoot01 InteliJ IDEA安装、Maven配置、创建SpringBoot项目、属性配置、多环境配置

    1 InteliJ IDEA 安装 下载地址:点击前往 注意:需要下载专业版本的,注册码在网上随便搜一个就行啦 2 MAVEN工具的安装 2.1 获取安装包 下载地址:点击前往 2.2 安装过程 到官 ...

  2. SpringBoot项目取消数据库配置

    1. 错误springboot项目启动时,如果没有配置数据库配置,启动时会抛出如下异常. Description: Cannot determine embedded database driver ...

  3. SpringBoot:使用Jenkins自动部署SpringBoot项目(一)环境准备

    1.安装JDK 1.在java官网下载linux下的安装包,上传到云服务器 /user/java 目录下 2.解压:tar xzvf jdk-8u161-linux-x64.tar.gz 3.为了好看 ...

  4. 从源码研究如何不重启Springboot项目实现redis配置动态切换

    上一篇Websocket的续篇暂时还没有动手写,这篇算是插播吧.今天讲讲不重启项目动态切换redis服务. 背景 多个项目或微服务场景下,各个项目都需要配置redis数据源.但是,每当运维搞事时(修改 ...

  5. springboot项目根据不同的环境启动不同的配置,如开发环境dev,测试环境sit,生产环境application

    在项目开发中,会有多个环境,如在开发环境开发完,然后在测试环境测试,最后到生产环境,每个环境的配置是不一样的,如数据库配置:还好spring提供了一个管理配置的方式:

  6. idea配置springboot项目记录

    配置文件application.properties server.port=80 server.servlet.context-path=/bookManage spring.mvc.static- ...

  7. Vue+SpringBoot项目实战(一) 搭建环境

    GitHub 地址: https://github.com/dongfanger/sprint-backend https://github.com/dongfanger/sprint-fronten ...

  8. Jenkins + Docker + dockerfile-maven-plugin + Harbor CI/CD spring-boot项目的最轻量级配置

    说明 本文只为方便日后查阅,记录一些关键性的步骤和踩坑的情况. dockerfile-maven-plugin构建镜像配置 <plugin> <groupId>com.spot ...

  9. (入门SpringBoot)SpringBoot项目创建基本配置(二)

    SpringBoot的环境搭建和基本开发:1.环境开发就不说了,一个程序员的基本功:2.基本开发-使用自定义的配置:2.1.配置文件.properties和yml文件.2.2.SpringBoot配置 ...

  10. maven打包springboot项目的插件配置概览

    jar包的术语背景: normal jar: 普通的jar,用于项目依赖引入,不能通过java -jar xx.jar执行,一般不包含其它依赖的jar包. fat jar: 也叫做uber jar,是 ...

随机推荐

  1. wpf 自定义Messagebox时,对话框显示不居中问题

    在自定义Messagebox(有属性Window.SizeToContent="WidthAndHeight")时,对话框显示不居中,经过尝试,应设置如下: msgBox.Wind ...

  2. 一、MySQL 函数

    1.MySQL 字符串函数 函数 描述 实例 结果展示 说明 REPLACE(s,s1,s2) 将字符串s2代替字符串s中的字符串s1 SELECT REPLACE(ccc.contract_no,& ...

  3. 把本地项目上传到github

    一在本地项目文件内,git初始化,并add, commit cd /test/xxxdemo git init add . commit -m "inits" 二在github创建 ...

  4. 记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况

    SELECT @date := DATE_ADD(@date, INTERVAL + 1 DAY) days FROM ( SELECT @date := DATE_ADD("2019-06 ...

  5. linux 查看product_uuid,即主板id,机器识别码,需要root权限

    1. 用命令 sudo dmidecode  | grep UUID 或者 sudo lshw  | grep uuid 2. 直接查看文件描述 sudo cat /sys/class/dmi/id/ ...

  6. R7-3 十六进制字符串转换成十进制非负整数

    R7-3 十六进制字符串转换成十进制非负整数 分数 15 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六 ...

  7. freeradius + mysql安装配置

    该文档参考http://t.zoukankan.com/FlyingPuPu-p-7772410.html安装,仅做了微调. 一.准备工作 安装编译FreeRadius所需要的依赖 #安装wget.g ...

  8. 理解函数调用_使用严格模式边使用arguments别名

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. drf从入门到飞升仙界 07

    认证组件 ## 认证组件逻辑 # 1.登录认证的限制: - 访问接口,有的需要登陆后才能访问,有的接口,不登录就能访问 # 2.准备: -User表 : 存储用户名,密码 -UserToken表:存储 ...

  10. 服务器部署 halo博客项目

    2020-8-9 13:45:14 有个进阶方法!  如果静态资源加载缓慢如图片,头像  则用CDN加速  (确实很秀!) https://cdn.jsdelivr.net/gh/你的用户名/你的仓库 ...