SpringBoot网上商城项目(一)

SpringBoot网上商城项目

一、项目环境搭建

1.项目分析

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

2.开发顺序:注册,登录,用户管理,购物车,商品,订单模块

3.某一个模块的开发顺序:

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

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

控制层开发:接收请求,处理响应

前端开发:JS,Query,AJAX这些技术来连接后台

2.项目基本环境
  1. JDK:1.8版本及以上
  2. maven:需要配置到idea,3.6.1版本及以上
  3. 数据库:MariaDB,MySQL,要求是5.1版本及以上
  4. 开发的平台:idea开发
  5. 项目名称:store,表示商城
  6. 结构:com.cy.store
  7. 资源文件:resources文件夹下(static,templates)
  8. 单元测试:test.com.cy.store

二、用户注册功能

1.创建数据表

1.t_user

CREATE TABLE t_user (
	uid INT AUTO_INCREMENT COMMENT '用户id',
	username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
	`password` CHAR(32) NOT NULL COMMENT '密码',
	salt CHAR(36) COMMENT '盐值',
	phone VARCHAR(20) COMMENT '电话号码',
	email VARCHAR(30) COMMENT '电子邮箱',
	gender INT COMMENT '性别:0-女,1-男',
	avatar VARCHAR(50) COMMENT '头像',
	is_delete INT COMMENT '是否删除:0-未删除,1-已删除',
	created_user VARCHAR(20) COMMENT '日志-创建人',
	created_time DATETIME COMMENT '日志-创建时间',
	modified_user VARCHAR(20) COMMENT '日志-最后修改执行人',
	modified_time DATETIME COMMENT '日志-最后修改时间',
	PRIMARY KEY (uid)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
2.创建用户实体类

1.通过表结构提取表公共字段,存放在实体类的基类中,取名BaseEntity。

@Data
@AllArgsConstructor
@NoArgsConstructor
//实体类基类,只要是实体类,要满足几个约束,实现接口Serializable,序列化
public class BaseEntity implements Serializable {
   
    //把下滑线改成大写
//    private String created_user;
    private String createdUser;
    private Date createdTime;
    private String modifiedUser;
    private Date modifiedTime;
}

2.创建用户的实体类User,需要继承BaseEntity

@NoArgsConstructor
@AllArgsConstructor
@Data
//用户实体类  SpringBoot 约定大于配置
public class User extends BaseEntity implements Serializable {
   
    private Integer uid;
    private String username;
    private String password;
    private String salt;
    private String phone;
    private  String email;
    private Integer gender;
    private String avatar;
    private Integer isDelete;
}
3.持久层开发
1.规划需要执行的SQL语句

用户注册功能,相当于数据的插入操作

insert into t_user(username,password,....) values (值列表)

在用户的注册时首先要查询当前用户名是否存在,如果存在则不能在注册

select * from t_user where username=?
2.设计接口和方法

1.在项目的目录结构创建一个mapper,创建一个UserMapper接口,在接口中定义SQL语句抽象方法

@Mapper
public interface UserMapper {
   
    /*
    * 插入用户的数据
    * user : 用户的数据
    * @return 受影响的行数(增删改都受影响的行数作为返回值)
    * */
    Integer insert(User user);

    /*
    * 根据用户名来查询用户的数据
    * username : 用户名
    * return : 如果找到对应的用户则返回用户的数据,没有找到则返回null
    * */
    User findByUsername(String username);

}

2.在pom.xml中添加

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

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

@MapperScan("com.cy.store.mapper")  
3.编写映射

1.在mapper包下创建接口对应的映射文件,遵循和接口的名称一致,创建一个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="com.scy.store.mapper.UserMapper">

    
</mapper>

2.在application开启驼峰命名法,就不需要自己定义映射规则

mybatis.configuration.map-underscore-to-camel-case=true

2.配置接口中的方法对应SQl语句

<?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">
<!--namespace属性:用于指定当前的映射文件和那个接口进行映射,需要指定接口的文件路径-->
<mapper namespace="com.cy.store.mapper.UserMapper">

<!--     id属性:表示映射的接口中方法的名称,直接用标签的内容来编写sql语句,这里的insert 对应UserMapper中的insert方法
           useGeneratedKeys="true" :打开自增 keyProperty="uid“ 让uid进行自增  -->
    <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 id="findByUsername" resultType="com.cy.store.entity.User">
	    select * from t_user where username = #{username}
	</select>

</mapper>
3.单元测试

在test下store创建一个mapper包,在mapper包下创建一个UserMapperTests类

@SpringBootTest
public class UserMapperTests {
   

    @Autowired
    private UserMapper userMapper;
    /*
    单元测试方法:
    * 1.必须被@Test注解修饰
    * 2.返回值类型必须是void
    * 3.方法的参数列表不指定任何类型
    * 4.方法的访问修饰符必须是public*/
    @Test
    public void insert(){
   
        User user=new User();
        user.setUsername("tom");
        user.setPassword("123");
        Integer rows = userMapper.insert(user);
        System.out.
基于Spring Boot网上商城项目是一个基于Java语言和Spring Boot框架开发的网上购物系统,它提供了用户注册、登录、浏览商品、加入购物车、下单购买等功能。 用户可以在该网上商城项目中注册并登录自己的账户,然后浏览商城中的商品,将自己喜欢的商品加入购物车。在购物车中,用户可以对商品进行管理,如修改数量、删除商品等操作。当用户确认购买的商品后,可以选择配送地址和支付方式进行订单结算并完成购买。 该网上商城项目基于Spring Boot框架开发,具有良好的扩展性和可维护性,同时也采用了常见的安全认证和数据加密机制来保障用户信息的安全。在项目中,还使用了数据库来存储商品信息、用户信息、订单信息等数据,以便实现相关功能。 如果你对基于Spring Boot网上商城项目感兴趣,你可以通过以下途径下载该项目: 1. 在GitHub等代码托管平台搜索相关关键词,可能会找到开源的网上商城项目源代码; 2. 在技术论坛或社区中询问是否有人愿意分享或提供相关项目源代码; 3. 参加线下或线上的技术交流会议,可能会有人分享或展示类似项目的源代码。 在下载了项目源代码后,你可以根据自己的需求进行定制和修改,以便适配自己的商城系统。希望你能够成功下载并使用基于Spring Boot网上商城项目,为你的购物系统增添更多功能和价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值