今天开始第一次尝试这运用springboot去写一个完整的web项目,准备工作自然是少不了的,所以开始尝试这搭建第一个springboot+MySQL+hibernate的项目。
第一次尝试所以比较简单(进行一次用户的查询)
第一步:建立数据库,并且插入几条数据:
创建数据库
插入几条数据:
insert into user values(1,"admin",1,"管理员");
insert into user values(2,"zhangsan",2,"普通用户");
insert into user values(3,"lisi",2,"普通用户");
insert into user values(4,"wangwu",2,"普通用户");
查询结果:
第二步:创建一个spring boot的maven项目(选择web,mysql,jpa三个选项进行新建)
新建完成后的项目格式:
第三步:创建三个包(第一个entity包,包中新建user类;
第二个dao包,包中新建userdao的接口继承了JpaRepository接口;
第三个activity包,包中新建UserController类)
其中的实现代码如下
User.java
package com.xyh.Pay.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* 用户类,存储用户信息
* @author xyh
*
*/
@Entity
public class User {
@Id
@GeneratedValue
private long id;
private String username;
private long roleid;
private String role;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public long getRoleid() {
return roleid;
}
public void setRoleid(long roleid) {
this.roleid = roleid;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
UserDao.java
package com.xyh.Pay.dao;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import com.xyh.Pay.entity.User;
public interface UserDao extends JpaRepository<User, Long>{
/**
* 通过用户名查询用户(存在不解,by后面的名称为什么要和User.java中的字段相同)
* @param username 用户名
* @return
*/
List<User> findByusername(String username);
}
UserController.java
package com.xyh.Pay.activity;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xyh.Pay.dao.UserDao;
import com.xyh.Pay.entity.User;
@RestController
public class UserController {
/**
* 定义userdao
*/
@Autowired
private UserDao userdao;
/**
* 访问url为(http://127.0.0.1:8080/findbyname?username=“用户名称”)
* @param username
* @return
*/
@RequestMapping("/findbyname")
public List<User> finduser(String username){
List<User> users=userdao.findByusername(username);
return users;
}
}
第四步:在application.properties中添加配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/paydemo?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jackson.serialization.indent-output=true
项目完成后的项目结构截图:
运行项目即可访问获取结果如下:
在搭建时遇到的问题:
因为我的mysql的版本比较低,所以需要对数据库连接的jar进行降级,截图如下: