創(chuàng)建項目
打開IDEA隘梨,選擇創(chuàng)建一個新的項目尤辱,并勾選以下幾項
項目命名為SBootMysqldemo,點擊完成锐锣。
打開本地MySQL
請確定本地安裝了MySQL蛮寂,并且能夠連接,我是用docker啟動了一個MySQL容器驮吱,端口指向為3306
使用Navicat連接茧妒,并連接成功
不使用docker和Navicat也可以,只要安裝了MySQL左冬,并且能連接就行,然后創(chuàng)建一個我們要用的數(shù)據(jù)庫命名為testMysql
如果下方提示沒有下載driver拇砰,點擊下載
最后填入mysql密碼梅忌,測試連接
上面這個步驟不是非必要的。
別急著跑毕匀,因為跑起來你會發(fā)現(xiàn)出問題铸鹰,因為我們需要去application.properties配置數(shù)據(jù)庫連接信息。打開application.properties
添加
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testMysql?setUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
一定要注意皂岔,不要在這些信息最后尾部留下什么空格之類的,否則你老半天找不到錯在哪展姐。這時候可以run起來了躁垛,看看有什么情況。http://localhost:8080,然后出現(xiàn)錯誤提示的頁面Whitelabel Error Page圾笨,就對了教馆。
開始操作數(shù)據(jù)庫
新建一個包mysqlclass。在里面創(chuàng)建一個class叫UserController擂达,再創(chuàng)建一個interface叫UserMapper土铺。
UserController是向外提供接口映射的。UserMapper是操作數(shù)據(jù)庫用的板鬓。打開UserController悲敷,添加接口。
@RestController
public class UserController {
@RequestMapping("/getuserlist")
public String getUserList()
{
return "獲取成功俭令!";
}
}
重啟后德,http://localhost:8080/getuserlist訪問,沒問題抄腔,下一步瓢湃。
創(chuàng)建一個User(class),添加屬性理张,并實現(xiàn)setter和getter。
package com.cyhai.demo.mysqlclass.model;
public class User {
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String username;
public String userpassword;
public int age;
public String sex;
}
打開UserMapper绵患,添加一個查詢注解雾叭,返回所有User類型的數(shù)據(jù)。
package com.cyhai.demo.mysqlclass;
import com.cyhai.demo.mysqlclass.model.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface UserMapper {
@Select("select * from usertable order by user_id desc")
List<User> getUserList();
}
之后落蝙,打開Navicat,添加一個表拷况,名為usertable,并添加User屬性對應的字段掘殴,與自增長的user_id
往表里手動添加兩列數(shù)據(jù)赚瘦。
然后返回項目。我們創(chuàng)建一個Server(不要問我為什么不叫Service奏寨,我不想說起意,因為手抖了),讓數(shù)據(jù)庫的數(shù)據(jù)給到接口病瞳。創(chuàng)建一個interface名為UserServer揽咕。再創(chuàng)建一個serverimpl包,在里面創(chuàng)建一個class名為UserServerimpl套菜。
打開UserServer并定義一個獲取User列表的方法
@Service
public interface UserServer {
List<User> getUserList();
}
打開UserServerimpl亲善,執(zhí)行UserServer的方法。
@Repository
public class UserServerimpl implements UserServer {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getUserList() {
try {
List<User> users = userMapper.getUserList();
return users;
}
catch (Exception e)
{
throw e;
// return null;
}
}
}
再打開UserController逗柴,把getUserList之前的代碼修改為
@Autowired
private UserServerimpl userServer;
@RequestMapping("/getuserlist")
public List<User> getUserList()
{
return userServer.getUserList();
}
然后蛹头,重啟項目,你會發(fā)現(xiàn)出錯了別急著跑起來戏溺,這時候會出現(xiàn)@Autowired的注入問題
轉移到項目入口
@MapperScan("com.cyhai.demo")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
這次可以重啟跑了渣蜗。然后鍵入http://localhost:8080/getuserlist,返回結果
[ { "username": "蔡虛昆", "userpassword": "000000", "age": 21, "sex": "女" }, { "username": "狗剩", "userpassword": "123456", "age": 18, "sex": "男" } ]
查詢操作OK了旷祸。接下來嘗試插入數(shù)據(jù)耕拷。
打開UserMapper,新增一條插入數(shù)據(jù)語句托享。返回的是一個整型骚烧,因為如果插入數(shù)據(jù)OK的話,是可以返回插入數(shù)據(jù)的條數(shù)闰围。當然你也可以不返回赃绊。
@Insert("insert into usertable(username,userpassword,age,sex) values(#{username},#{userpassword},#{age},#{sex})")
int AddUser(User user);
打開UserServer,添加一個插入數(shù)據(jù)的方法辫诅。
String AddUser(User user);
打開UserServerimpl凭戴,實現(xiàn)插入方法
@Override
public String AddUser(User user) {
try {
int i = userMapper.AddUser(user);
return "添加成功" + i + "條數(shù)據(jù)";
}
catch (Exception e)
{
throw e;
}
}
打開UserController,添加一個插入數(shù)據(jù)的post接口
@PostMapping("/adduser")
public String addUser(User user)
{
return userServer.AddUser(user);
}
重啟炕矮,鍵入http://localhost:8080/adduser,輸入?yún)?shù)(不要說參數(shù)么夫?什么東西者冤,就是一個User)。
查看數(shù)據(jù)庫
到此档痪,數(shù)據(jù)庫操作已經做到了涉枫,后面會說,使用docker部署這個項目