• springboot 整合springDataJPA


    springboot 整合springDataJPA

    〇、搭建springboot环境

    一、添加依赖

    • mysql

        <!-- mysql驱动 -->
        <dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        </dependency>
      
    • springdatajpa

        <!-- springdata jpa依赖 -->
        <dependency>
        	<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
      

    配置文件(src/main/resources/application.properties)

    ########################################################
    ###datasource
    ########################################################
    spring.datasource.url = jdbc:mysql://localhost:3306/springboot
    spring.datasource.username = root
    spring.datasource.password = root
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.max-active=20
    spring.datasource.max-idle=8
    spring.datasource.min-idle=8
    spring.datasource.initial-size=10
    ########################################################
    ### Java Persistence Api
    ########################################################
    # Specify the DBMS
    spring.jpa.database = MYSQL
    # Show or not log for each sql query
    spring.jpa.show-sql = true
    # Hibernate ddl auto (create, create-drop, update)
    spring.jpa.hibernate.ddl-auto = update
    # Naming strategy
    #[org.hibernate.cfg.ImprovedNamingStrategy  		    #org.hibernate.cfg.DefaultNamingStrategy]
    spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
    # stripped before adding them to the entity manager)
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    

    持久层

    import org.springframework.data.repository.CrudRepository;
    import com.xujie.pojo.Target;
    
    public interface TargetRepository extends CrudRepository<Target,Integer>{
    	 
    }
    

    Entity

    使用jpa的时候,一般先开发entity.因为如果配置文件配置了spring.jpa.hibernate.ddl-auto = update的话,jpa可以直接根据entity创建表;

    示例:

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity(name="target")  
    public class Target {
    	@Id 
    	@GeneratedValue  
    	private int tid;
    	@Column(name="tname",length=20)  
    	private String tname;
    	
    	public int getTid() {
    		return tid;
    	}
    	public void setTid(int tid) {
    		this.tid = tid;
    	}
    	public String getTname() {
    		return tname;
    	}
    	public void setTname(String tname) {
    		this.tname = tname;
    	}
    	@Override
    	public String toString() {
    		return "Target [tid=" + tid + ", tname=" + tname + "]";
    	}
    }
    

    service

    import javax.annotation.Resource;
    import org.springframework.stereotype.Service;
    import com.xujie.pojo.Target;
    import com.xujie.repository.TargetRepository;
    import com.xujie.service.TargetService;
    
    @Service
    public class TargetServiceimpl implements TargetService {
    
    	// @Resource是根据名称注入 @Autowired是根据类型注入
    	@Resource
    	private TargetRepository targetRepository;
    	
    	//添加
    	@Override
    	public void save(Target target) {
    		this.targetRepository.save(target);
    	}
    
    	//删除
    	@Override
    	public void delete(Integer id) {
    		this.targetRepository.delete(id);
    	}
    
    	//查询
    	@Override
    	public List<Target> findAll(){
    		return (List<Target>) this.targetRepository.findAll();
    	}
    }
    

    controller

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import com.xujie.pojo.Target;
    import com.xujie.service.TargetService;
    
    @RestController
    public class TargetController {
    	
    	@Autowired
    	private TargetService targetService;
    	
    	//添加
    	@GetMapping("/save")
    	public void save() {
    		Target target = new Target();
    		target.setTname("减肥");
    		this.targetService.save(target);
    	}
    
    	//删除
    	@GetMapping("/delete/{id}")
    	public void delete(@PathVariable Integer id) {
    		this.targetService.delete(id);
    	}
    
    	//查询所有
    	@GetMapping("/findAll")
    	public List<Target> findAll() {
    		return this.targetService.findAll();
    
    	}
    }
  • 相关阅读:
    【.Net】鼠标点击控制鼠标活动范围 ClipCursor
    【设计模式】工厂模式 Factory Pattern
    sublime text3 关闭更新提醒
    Mac下Sublime Text3激活码
    测试开发(1) -- 整数反转
    测试开发工程师面试资料(未完)
    Mojave使用pyenv安装python-zlib错误
    清理 Xcode 10
    mitmproxy
    卸载CocoaPods
  • 原文地址:https://www.cnblogs.com/xujie09/p/8466520.html
Copyright © 2020-2023  润新知