做一个spring boot小项目

口号:省钱小帮手
1、开启一个spring boot项目,用于做后端服务器
2、用微信小程序作为前端,小程序实现扫描入库和输入入库两种模式
3、实现获取淘宝、京东(特别是京东到家)指定商品的东西的价格的功能,有相关的接口
扩展功能:
所有有价格波动和趋势的都可以集成进来,对比分析各家价格趋势,给用户提供最好的购物咨询服务。

1、安装好数据库mysql之后,由于msyql8之后修改了之前的加密系统,所以得进行修改,修改步骤如下:

(1)将加密方式改为旧的,在配置文件C:\ProgramData\MySQL\MySQL Server 8.0的my.ini中添加如下
[mysqld]
default_authentication_plugin=mysql_native_password
(2)使用了新的加密方式,改为旧的加密方式,而root用户也要进行相应的更改才可以,
因为root用户还是新的加方式,所以使用alter语句改为重置密码来覆盖新的加密方式的密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

注意:引号里面的passwrod应该替换成你自己的Password,然后使用datagrid或者navicat就可以进行连接了,我这里使用datagrid。
使用datagrid连接数据库的时候需要下载相关的驱动,先测试是否能够连通,如果可以说明成功。也可以使用idea进行数据库连接。

在项目中加入Mysql的依赖:

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
</dependency>

mysql的版本应该根据自己环境中的mysql版本来决定,我的mysql是8.0版本,所以驱动也用8版本的,同时

配置:

#数据库相关
spring.datasource.name=shengqian
spring.datasource.username=root
spring.datasource.password=kexuejia123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shengqian?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false

#mybatis相关
#mybatis配置
mybatis.config-location=classpath:mybatis/mybatic-config.xml
mybatis.mapper-locations=classpath*:mybatis/mapper/*.xml

在数据库中创建好几个表,然后实现相对应的实体和操作实体的mapper
然后在mybatis-config.xml中写入

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <!-- 系统类型 -->
        <typeAlias alias="Integer" type="java.lang.Integer"/>
        <typeAlias alias="Long" type="java.lang.Long"/>
        <typeAlias alias="String" type="java.lang.String"/>
        <typeAlias alias="HashMap" type="java.util.HashMap"/>
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap"/>
        <typeAlias alias="ArrayList" type="java.util.ArrayList"/>
        <typeAlias alias="LinkedList" type="java.util.LinkedList"/>
        <!-- 自定义类型 -->
        <package name="com.shengqian.demo.Entity"/>
        <package name="com.shengqian.demo.dto" />
     </typeAliases>
</configuration>

然后写mapper对应的xml配置文件
mybatis xml文件编写技巧

1、refid可以引入别的代码,减少重复代码的书写
2、可以构造sqlNode动态生成sql语句
3、可以使用拦截器,先生成一个默认的sql,然后使用拦截器拦截并重新生成sqlNode

定义第一个接口,用户注册 访问入口:/register


public class Path {
    public static final String RRGISTER = "/register";
}

这个Path也可以改为enum类型,用来管理请求路径

然后写controller

@Controller
public class UserController {

    @Autowired
    private UserInfoService userInfoService;

    @RequestMapping(value = Path.RRGISTER, method = RequestMethod.POST)
    @ResponseBody
    public Integer register(@RequestParam("username") final String name,
                           @RequestParam("password") final String pwd,
                           @RequestParam("phone") final String phone){
   	……
        return 0;
    }
}

@Controller 表明这是一个控制器,这样spring 会自动给该类生成一个bean
定义UserInfoService接口


public interface UserInfoService {
    UserInfoDto getUser(String phone);
    Integer addUser(UserInfoDto dto);
}

实现UserInfoService接口

@Service
    public class UserInfoServiceImpl implements UserInfoService {

    private UserInfoMapper userInfoMapper;

    public UserInfoServiceImpl(UserInfoMapper userInfoMapper){
        this.userInfoMapper = userInfoMapper;
    }


    @Override
    public UserInfoDto getUser(String phone) {
        ……
        return null;
    }

    @Override
    public Integer addUser(UserInfoDto dto) {
        ……
        return 0;
    }
}

然后定义UserInfoMapper

@Mapper
@Component(value = "userinfomapper")
public interface UserInfoMapper {

    UserInfoDto getUserByPhone(String phone);

    void addUser(@Param("username") String userName, @Param("phone")String phone, @Param("passwordhash") String passwordhash, @Param("salt") String salt);

}

最后定义UserInfoMapper对应的.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.shengqian.demo.mapper.UserInfoMapper">
    <resultMap id="userResultMap" type="UserInfoDto">
        <id column="uid" property="uid"/>
        <result column="user_name" property="username"/>
        <result column="user_phone" property="phone"/>
        <result column="user_pwd" property="passwordhash"/>
        <result column="salt" property="salt" />
    </resultMap>

    <!-- 查询用户信息 -->
    <select id="getUserByPhone" parameterType="String" resultMap="userResultMap">
        SELECT
            A.uid,
            A.user_name,
            A.user_phone,
            A.user_pwd,
            A.salt
        FROM user AS A
        WHERE A.user_phone = #{phone}
    </select>

    <select id="addUser" parameterType="UserInfoDto" resultType="Integer">
        INSERT INTO user(
        user_name,user_phone,user_pwd,salt
        ) VALUES (
        #{username},#{phone},#{passwordhash},#{salt}
        )
    </select>
</mapper>

该接口使用到了UserInfoDto数据传输对象。就是一个简单的pojo。运行打开程序,就可以使用啦。
接下来开始定制新的接口。具体spring boot + mybatis 接口开发流程在我的上一篇博客中有详细的描述,请移步观看。https://blog.csdn.net/xielinrui123/article/details/84990222

猜你喜欢

转载自blog.csdn.net/xielinrui123/article/details/84548203
今日推荐