SpringBoot之连接数据库

上篇文章:Idea下SpringBoot的简单使用

上篇文章中介绍了如何在idea下搭建一个SpringBoot项目,现在我来介绍下在SpringBoot项目中连接数据库。

用2个字总结-简单,就是非常简单的配置,我们就可以操作数据库。

方法一:

新建立项目的时候,不仅选择web下的web,再多选择mysql,jdbc,mybatis的内容。如下图所示。

 

方法二:

1. 添加依赖

在pom.xml文件中添加以下依赖,只需要配置前2个依赖就行了,com.alibaba.fastjson是对数据进行json格式化的。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <scope>runtime</scope>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.32</version>
</dependency>

2. 添加配置

在appliction.properties中添加以下配置信息。

#mysql
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
#可以选择的配置
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

3.代码实现

下面用一个demo对mysql数据库做示范。在工程中建立如下结构

下面添加代码

User.java

package com.example.test.model;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String account;
    private String password;
    private String nickname;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    @Override
    public String toString() {
        return "User:{" +
                "id=" + id +
                ", account='" + account + '\'' +
                ", password='" + password + '\'' +
                ", nickname='" + nickname + '\'' +
                '}';
    }
}

UserMapper.java

package com.example.test.mapper;


import com.example.test.model.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface UserMapper {

    @Select("SELECT * FROM user WHERE account =#{account}")
    User selectUserByAcc(String account);

    @Select("SELECT * FROM user WHERE id =#{id}")
    User selectUserById(int id);

    @Select("SELECT * FROM user")
    List<User> selectAllUser();

    @Insert("insert into user(id,account,password,nickname) values(null,#{account},#{password},#{nickname})")
    Integer registerUser(User user);

    @Update("update user set password=#{password} where id=#{id}")
    Boolean updatePassword(User user);

    @Delete("delete from user where id = #{id}")
    void deleteUserById(int id);
}

UserService.java

package com.example.test.service;


import com.example.test.model.User;

import java.util.List;

public interface UserService {
    public User selectUserByAcc(String account);


    public User selectUserById(int id);

    public List<User> selectAllUser();

    Integer registerUser(User user);

    Boolean updatePassword(User user);

    void deleteUserById(int id);
}

UserServiceImpl.java

package com.example.test.service;


import com.example.test.mapper.UserMapper;
import com.example.test.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public User selectUserByAcc(String account) {
        return userMapper.selectUserByAcc(account);
    }

    @Override
    public User selectUserById(int id) {
        return userMapper.selectUserById(id);
    }

    @Override
    public List<User> selectAllUser() {
        return userMapper.selectAllUser();
    }

    @Override
    public Integer registerUser(User user) {
        return userMapper.registerUser(user);
    }

    @Override
    public Boolean updatePassword(User user) {
        return userMapper.updatePassword(user);
    }

    @Override
    public void deleteUserById(int id) {
        userMapper.deleteUserById(id);
    }
}

UserController.java

package com.example.test.controller;


import com.alibaba.fastjson.JSONObject;
import com.example.test.model.User;
import com.example.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService iUserService;

    Map<Object, Object> map = new HashMap();

    @RequestMapping(value = "/hello")
    public String hello() {
        return "hello";
    }


    @RequestMapping("/login")
    public String selectUserById(@RequestParam("account") String account, @RequestParam("password") String password) {
        System.out.print(account);
        map.clear();

        User user = iUserService.selectUserByAcc(account);
        map.clear();
        map.put("user", user);
        if (user.getPassword().equals(password)) {
            map.put("message", "success");
        } else {
            map.put("message", "failed");
        }
        String jsonString = JSONObject.toJSONString(map);

        return jsonString;
    }

    @RequestMapping("/getAllUser")
    public String selectAllUser() {
        map.clear();
        map.put("message", "success");
        map.put("user", iUserService.selectAllUser());
        String jsonString = JSONObject.toJSONString(map);
        return jsonString;
    }

    @RequestMapping(method = RequestMethod.POST, value = "user_register")
    public String registerUser(HttpServletRequest request, User user) {
        map.clear();
        if (iUserService.registerUser(user) > 0) {
            map.put("message", "success");
        } else {
            map.put("message", "failed");
        }
        map.put("user", user);
        String jsonString = JSONObject.toJSONString(map);
        return jsonString;

    }

    @RequestMapping(method = RequestMethod.POST, value = "user_updatePassword")
    public String updatePassword(User user) {
        map.clear();
        if (iUserService.updatePassword(user)) {
            map.put("message", "success");
        } else {
            map.put("message", "failed");
        }
        map.put("user", user);
        String jsonString = JSONObject.toJSONString(map);
        return jsonString;
    }

    @RequestMapping(value = "/deleteById")
    public String deleteUserById(@RequestParam("id") int id) {
        map.clear();
        User user = iUserService.selectUserById(id);
        if (user != null) {
            try {
                iUserService.deleteUserById(id);
                map.put("message", "success");

            } catch (Exception e) {
                map.put("message", "failed");
            }
        } else {
            map.put("message", "failed");
        }
        String jsonString = JSONObject.toJSONString(map);
        return jsonString;
    }

}

代码写完后,进入主程序,相当于Java的main函数。添加2段语句

@SpringBootApplication
@EnableAutoConfiguration
@MapperScan("com.example.test.mapper")
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

启动程序。先测试下hello是否能够正常显示,不能显示可以检查是否出现了错误。比如maven是否将依赖下载并导出下来。

我这能够正常访问hello,没有问题。那么接下来我获取一下数据库的信息。

如上图所示。可以看到我们成功地获取到了数据库的数据,下面我们再来测试一下登录。

登录成功。那如果我们需要测试Post的接口呢?比如注册账号,更新密码,传入的是一个user对象。就不能直接在url上传递数据了。我们需要借助工具,比如postManCDSpace等工具。我使用的是postman。下面使用postman来测试一下我们的注册功能。

测试成功。

在上面需要提到一点的是:本文没有使用mapper.xml文件,而是直接在代码中写的sql。如果像写配置文件的话。需要在Application.properties中添加如下图所示的配置,这样就跟以前的写法一样。

以上就是本文的所有内容,如有其他需求,请百度。

猜你喜欢

转载自blog.csdn.net/xiaoliu598906167/article/details/81298828