上篇文章中介绍了如何在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&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上传递数据了。我们需要借助工具,比如postMan、CDSpace等工具。我使用的是postman。下面使用postman来测试一下我们的注册功能。
测试成功。
在上面需要提到一点的是:本文没有使用mapper.xml文件,而是直接在代码中写的sql。如果像写配置文件的话。需要在Application.properties中添加如下图所示的配置,这样就跟以前的写法一样。
以上就是本文的所有内容,如有其他需求,请百度。