1. 程式人生 > >做一個spring boot小專案

做一個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