Spring boot整合JPA

2022年8月10日09:15:28

1.pom.xml添加jpa和数据库依赖包

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>

2.application.properties配置数据库连接池

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.username=jdjk
spring.datasource.password=jdjk
spring.datasource.initialSize=20  
spring.datasource.minIdle=20  
spring.datasource.maxActive=100    
spring.datasource.maxWait=60000
spring.jpa.database-platform=org.hibernate.dialect.OracleDialect

3.创建表映射实体类

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="t_sys_jkconfig")
public class T_SYS_JKCONFIG{

	private String xh;
	private String server_ip;
	private String server_name;
	private String server_action;
	
	@Id
	public String getXh() {
		return xh;
	}
	public void setXh(String xh) {
		this.xh = xh;
	}
	public String getServer_ip() {
		return server_ip;
	}
	public void setServer_ip(String server_ip) {
		this.server_ip = server_ip;
	}
	public String getServer_name() {
		return server_name;
	}
	public void setServer_name(String server_name) {
		this.server_name = server_name;
	}
	public String getServer_action() {
		return server_action;
	}
	public void setServer_action(String server_action) {
		this.server_action = server_action;
	}
}

4.创建接口继承JpaRepository

import java.util.List;
import java.util.Map;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import cn.com.highset.goexpo.bqd.bean.T_SYS_JKCONFIG;

@Repository
@Transactional
public interface IBaseDao extends JpaRepository<T_SYS_JKCONFIG, String> { 
	
	T_SYS_JKCONFIG findByXh(String xh);
	
	//返回对象
	@Query(value = "select * from t_sys_jkconfig where server_ip = :ip", nativeQuery = true)
	List<T_SYS_JKCONFIG> getByIp(@Param("ip") String ip);
	
	//返回map
	@Query(value = "select server_ip from t_sys_jkconfig where server_ip = :ip", nativeQuery = true)
	List<Map> getMapByIp(@Param("ip") String ip);

	@Modifying
	@Query(value = "update t_sys_jkconfig set server_ip = :ip where xh = :xh", nativeQuery = true)
	void updateByXh(@Param("ip") String ip,@Param("xh") String xh);
}

5.在Controller中调用方法

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.com.highset.goexpo.dao.IBaseDao;

@Controller
public class IndexController {
	
	@Autowired
	private IBaseDao baseDao;
	
	@RequestMapping("/")
	public String root(Model model) {
		//新增
		T_SYS_JKCONFIG t = new T_SYS_JKCONFIG();
		t.setXh("111");
		t.setServer_ip("222");
		t.setServer_name("333");
		t.setServer_action("444");
		baseDao.save(t);
		//删除
		T_SYS_JKCONFIG jkconfig = baseDao.findByXh("111");
		baseDao.delete(jkconfig);
		//修改
		baseDao.updateByXh("12345", "1");
		//查询
		List<Map> list =  baseDao.getMapByIp("192.168.1.120");
		for(Map t : list){
			System.out.println(t.get("xh"));
		}
		model.addAttribute("list", list);
		return "home";
	}
}

6.在启动类Application中添加扫描注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
@EnableJpaRepositories(basePackages = "xxx.xxx.dao")
@EntityScan("xxx.xxx.bean")
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

  • 作者:王绍桦
  • 原文链接:https://blog.csdn.net/rexueqingchun/article/details/81032726
    更新时间:2022年8月10日09:15:28 ,共 3668 字。