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