一、IDEA创建spring-boot应用
新建spring项目
步骤一:
步骤二:
步骤三:选中web
步骤四:项目建完之后,目录结构如下:
新建项目完成之后,demo包下会有一个DemoApplication类,我们通过这个类来启动项目
启动成功界面:
二、参数配置
端口及参数配置:
在resources资源目录下会自动生成一个application.properties配置文件,tomcat默认启动端口是8080,很有可能会出现端口占用的情况,这时候需要在配置文件中配置端口号。
一般在做项目的时候会把配置文件改成application.yml,这样方便配置连接数据库,这是优化之后的目录结构及配置文件,其中User、UserRepository、UserController三个类是测试数据库连接时候使用
在配置application.yml配置文件时,需要注意以下几点,不然或报异常:
- 上下行缩进:不能使用tab缩进,只能用两个空格
- 冒号和后面的内容必须要有空格
- 注释不是用//,而是使用#号
配置数据库连接
对应参数配置和以前配置文件差不多,配置驱动、URL、用户名、密码
三、测试类
实体类User
@Entity
@Table(name="user")
public class User {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id; // 用户编号
private String name; // 用户姓名
private String password; // 用户密码
private int age; // 用户年龄
private String sex; // 用户性别
public User() {
}
public User(int id, String name, String password, int age, String sex) {
this.id = id;
this.name = name;
this.password = password;
this.age = age;
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
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;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
dao层,这里使用UserRepository继承CruRepository类实现
@Repository
public interface UserRepository extends CrudRepository<User, Integer> {
/**
* 根据id查找用户信息
* @param id 接收用户id
* @return user 返回一个用户实体
* */
public User findUserById(int id);
/**
* 添加用户信息
* @param u 接收用户输入信息
* */
public User save(User u);
/**
* 根据姓名查找用户信息
* @param name 接收一个用户姓名
* @return user 返回查询到的结果
* */
@Query("select t from User t where t.name=:name")
public User findUserByName(@Param("name") String name);
}
控制层UserController实现
@RestController
@RequestMapping("/user")
@Qualifier("userRepository")
public class UserController {
private final UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@RequestMapping(value = "/getUserById", method = RequestMethod.GET)
public User getUserById(int id) {
System.out.println("查询用户信息");
User user = userRepository.findUserById(id);
System.out.println("userRepository:" + userRepository);
return user;
}
/**
* 添加用户信息
* */
@RequestMapping(value = "/addUser")
public void addUser(User user) {
user.setName("张三");
user.setPassword("123456");
user.setAge(23);
user.setSex("男");
userRepository.save(user);
}
}
四、运行效果
添加用户信息
第一次运行会自动创建user表,但是是一张空表,先执行添加操作,浏览器输入:localhost:8081/user/addUser
,之后查看数据库表是否有添加成功
有张三的记录,代表操作成功了
根据ID查询用户信息
浏览器输入localhost:8081/user/getUserById?id=1
到此一个简单的spring-boot整合hibernate连接数据库的demo就完成了。