使用组件 hibernate、mysql、springboot、lombok
步骤:
1、创建项目 example
Springboot官网 -> Quick start -> 输入groupId、artifactId -> 选择需要的组件JPA、Mysql、Jdbc
<groupId>com.example</groupId>
<artifactId>ribi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ribi</name>
2、项目结构整体
src
main
java
config //配置
controller //控制层类
example //实体类
mapper //持久层
service //服务层
resource //资源文件
3、编写步骤
只有一个实体类 user
(1)创建表 //字段名一般遵循 aaa_bbb_ccc 的规则
CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) DEFAULT NULL,
`pass_word` varchar(255) DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
(2)创建实体类对象 //属性名一般遵循 aaaBbbCcc 的规则
如果不标注的情况下,在代码中属性名为 userName 对应表中的 user_name
src/main/java/example/user.java
package com.example.ribi.example;
import lombok.*;
import javax.persistence.*;
@NoArgsConstructor //无参构造方法
@AllArgsConstructor //全参构造方法
@ToString //增加toString方法
@Data //标注其为Data 对应增加每个属性的getter/setter方法和builder方法
@Entity //标注其为实体类
public class User {
@Id //标注为Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
private String userName;
private String passWord;
}
(3) 创建repository层的User对象 提供对数据库表的操作
src/main/java/service/userRepository.java
package com.example.ribi.mapper;
import com.example.ribi.example.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
//JpaRepository<实体类,主键> 可以提供基础的方法 例如findAll() save() ...
//CrudRepository<实体类,主键> 可以提供自定义的方法 需要遵循峰谷式的规则、支持find、delete、update、order、distinct等关键字段
public interface UserRepository extends JpaRepository<User,Long>,CrudRepository<User,Long> {
//crud
public List<User> findByUserName(String userName);
}
(4) 创建service层的User对象
src/main/java/service/userServiceImpl
package com.example.ribi.service;
import com.example.ribi.example.User;
import com.example.ribi.mapper.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
public class UserServiceImpl {
@Autowired //自动注入
UserRepository userRepository;
public List<User> findAll(){
return userRepository.findAll();
}
public User findByUserId(Long userId){
return userRepository.findById(userId).get();
}
public List<User> findByName(String userName){
return userRepository.findByUserName(userName);
}
public boolean delectUser(Long userId){
try {
userRepository.deleteById(userId);
return true;
}catch (Exception e){
System.out.println(e);
}
return false;
}
public boolean addUser(User user){
try{
userRepository.save(user);
return true;
}catch (Exception e){
System.out.println(e);
}
return false;
}
}
(5)在 RibiApplication.java中测试
src/main/java/RibiApplication.java
package com.example.ribi;
import com.example.ribi.example.User;
import com.example.ribi.mapper.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SpringBootApplication
public class RibiApplication implements ApplicationRunner {
@Autowired
UserRepository repository;
public static void main(String[] args) {
SpringApplication.run(RibiApplication.class, args);
}
@Override
public void run(ApplicationArguments args) throws Exception{
List<User> u = repository.findByUserName(":name");
for(User i :u){
System.out.println(i.toString());
}
}
}
-- 部分摘自 极客时间 玩转Spring全家桶