一、引入依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.5.Final</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.1.0</version>
</dependency>
二、配置jpa
package dao;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import javax.persistence.EntityManagerFactory;
import java.util.Properties;
/**
* TODO
*
* @author ChenHao
* @version 1.0.0
* Created at 2020/8/17 10:35
*/
@Configuration
@ComponentScan(basePackages = {"dao"})
// 指定Repository所在的包
@EnableJpaRepositories(basePackages = {"dao"})
public class JpaConfig {
// 名字必须是entityManagerFactory,或者把@bean中name属性设置为entityManagerFactory
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
// 设置数据库(如果在hibernate中配置了连接池,则不需要设置)
// em.setDataSource(dataSource());
// 指定Entity所在的包
em.setPackagesToScan("dao");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
// 配置属性
Properties properties = new Properties();
properties.setProperty("hibernate.connection.driver_class", "oracle.jdbc.OracleDriver");
properties.setProperty("hibernate.connection.url", "jdbc:oracle:thin:@192.168.0.21:1521:brcw");
properties.setProperty("hibernate.connection.username", "BRCW");
properties.setProperty("hibernate.connection.password", "123");
properties.setProperty("hibernate.connection.provider_class", "com.zaxxer.hikari.hibernate.HikariConnectionProvider");
properties.setProperty("hibernate.show_sql", "true");
properties.setProperty("format_sql", "true");
em.setJpaProperties(properties);
return em;
}
// 名字必须是transactionManager,或者把@bean中name属性设置为transactionManager
@Bean
public PlatformTransactionManager transactionManager(
EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
}
三、编写实体类和Repository
贪图快,直接就将字段复制过来了。
package dao;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
* TODO
*
* @author ChenHao
* @version 1.0.0
* Created at 2020/8/17 10:44
*/
@Entity
@Table(name = "brcw_kehu_t")
public class Client implements Serializable {
private static final long serialVersionUID = -2407677666514147913L;
@Id
@Column(name = "KEHU_ID")
private String KEHU_ID;
@Column(name = "GONGSI")
private String GONGSI;
@Column(name = "MING_HANZI")
private String MING_HANZI;
@Column(name = "MING_YINGZI")
private String MING_YINGZI;
@Column(name = "HGGYSH")
private String HGGYSH;
@Column(name = "SUOSHU_JITUAN")
private String SUOSHU_JITUAN;
@Column(name = "GUOJIA_BIANMA")
private String GUOJIA_BIANMA;
@Column(name = "CHENGSHI_BIANMA")
private String CHENGSHI_BIANMA;
@Column(name = "DIANHUA")
private String DIANHUA;
@Column(name = "CHUANZHEN")
private String CHUANZHEN;
@Column(name = "YOUJIAN")
private String YOUJIAN;
@Column(name = "DIZHI")
private String DIZHI;
@Column(name = "YOUBIAN")
private String YOUBIAN;
@Column(name = "GONGSI_XINGZHI")
private String GONGSI_XINGZHI;
@Column(name = "GONGSI_QITA_MING")
private String GONGSI_QITA_MING;
@Column(name = "WANGZHI")
private String WANGZHI;
@Column(name = "ZHUYAO_YEWU")
private String ZHUYAO_YEWU;
@Column(name = "KAIFAREN")
private String KAIFAREN;
@Column(name = "SHENHE")
private String SHENHE;
@Column(name = "SHIXIAO_FLG")
private String SHIXIAO_FLG;
@Column(name = "LEIXING")
private String LEIXING;
@Column(name = "FENLEI")
private String FENLEI;
@Column(name = "JDFK")
private String JDFK;
@Column(name = "SOURCE")
private String SOURCE;
@Column(name = "TO_XML")
private String TO_XML;
@Column(name = "TO_XML_TIME")
private String TO_XML_TIME;
@Column(name = "BEIZHU")
private String BEIZHU;
@Column(name = "INSERT_TIME")
private Date INSERT_TIME;
@Column(name = "INSERT_NAME")
private String INSERT_NAME;
@Column(name = "UPDATE_TIME")
private Date UPDATE_TIME;
@Column(name = "UPDATE_NAME")
private String UPDATE_NAME;
@Column(name = "FUZHU_KAIFAREN")
private String FUZHU_KAIFAREN;
@Column(name = "LOGO_URL")
private String LOGO_URL;
@Column(name = "FACHUFANGSHI")
private String FACHUFANGSHI;
@Column(name = "FACHU_PINDU")
private String FACHU_PINDU;
@Column(name = "MOREN_LIANXIREN")
private String MOREN_LIANXIREN;
@Column(name = "DAOCHU_FLAG")
private String DAOCHU_FLAG;
public String getKEHU_ID() {
return KEHU_ID;
}
public void setKEHU_ID(String KEHU_ID) {
this.KEHU_ID = KEHU_ID;
}
public String getGONGSI() {
return GONGSI;
}
public void setGONGSI(String GONGSI) {
this.GONGSI = GONGSI;
}
public String getMING_HANZI() {
return MING_HANZI;
}
public void setMING_HANZI(String MING_HANZI) {
this.MING_HANZI = MING_HANZI;
}
public String getMING_YINGZI() {
return MING_YINGZI;
}
public void setMING_YINGZI(String MING_YINGZI) {
this.MING_YINGZI = MING_YINGZI;
}
public String getHGGYSH() {
return HGGYSH;
}
public void setHGGYSH(String HGGYSH) {
this.HGGYSH = HGGYSH;
}
public String getSUOSHU_JITUAN() {
return SUOSHU_JITUAN;
}
public void setSUOSHU_JITUAN(String SUOSHU_JITUAN) {
this.SUOSHU_JITUAN = SUOSHU_JITUAN;
}
public String getGUOJIA_BIANMA() {
return GUOJIA_BIANMA;
}
public void setGUOJIA_BIANMA(String GUOJIA_BIANMA) {
this.GUOJIA_BIANMA = GUOJIA_BIANMA;
}
public String getCHENGSHI_BIANMA() {
return CHENGSHI_BIANMA;
}
public void setCHENGSHI_BIANMA(String CHENGSHI_BIANMA) {
this.CHENGSHI_BIANMA = CHENGSHI_BIANMA;
}
public String getDIANHUA() {
return DIANHUA;
}
public void setDIANHUA(String DIANHUA) {
this.DIANHUA = DIANHUA;
}
public String getCHUANZHEN() {
return CHUANZHEN;
}
public void setCHUANZHEN(String CHUANZHEN) {
this.CHUANZHEN = CHUANZHEN;
}
public String getYOUJIAN() {
return YOUJIAN;
}
public void setYOUJIAN(String YOUJIAN) {
this.YOUJIAN = YOUJIAN;
}
public String getDIZHI() {
return DIZHI;
}
public void setDIZHI(String DIZHI) {
this.DIZHI = DIZHI;
}
public String getYOUBIAN() {
return YOUBIAN;
}
public void setYOUBIAN(String YOUBIAN) {
this.YOUBIAN = YOUBIAN;
}
public String getGONGSI_XINGZHI() {
return GONGSI_XINGZHI;
}
public void setGONGSI_XINGZHI(String GONGSI_XINGZHI) {
this.GONGSI_XINGZHI = GONGSI_XINGZHI;
}
public String getGONGSI_QITA_MING() {
return GONGSI_QITA_MING;
}
public void setGONGSI_QITA_MING(String GONGSI_QITA_MING) {
this.GONGSI_QITA_MING = GONGSI_QITA_MING;
}
public String getWANGZHI() {
return WANGZHI;
}
public void setWANGZHI(String WANGZHI) {
this.WANGZHI = WANGZHI;
}
public String getZHUYAO_YEWU() {
return ZHUYAO_YEWU;
}
public void setZHUYAO_YEWU(String ZHUYAO_YEWU) {
this.ZHUYAO_YEWU = ZHUYAO_YEWU;
}
public String getKAIFAREN() {
return KAIFAREN;
}
public void setKAIFAREN(String KAIFAREN) {
this.KAIFAREN = KAIFAREN;
}
public String getSHENHE() {
return SHENHE;
}
public void setSHENHE(String SHENHE) {
this.SHENHE = SHENHE;
}
public String getSHIXIAO_FLG() {
return SHIXIAO_FLG;
}
public void setSHIXIAO_FLG(String SHIXIAO_FLG) {
this.SHIXIAO_FLG = SHIXIAO_FLG;
}
public String getLEIXING() {
return LEIXING;
}
public void setLEIXING(String LEIXING) {
this.LEIXING = LEIXING;
}
public String getFENLEI() {
return FENLEI;
}
public void setFENLEI(String FENLEI) {
this.FENLEI = FENLEI;
}
public String getJDFK() {
return JDFK;
}
public void setJDFK(String JDFK) {
this.JDFK = JDFK;
}
public String getSOURCE() {
return SOURCE;
}
public void setSOURCE(String SOURCE) {
this.SOURCE = SOURCE;
}
public String getTO_XML() {
return TO_XML;
}
public void setTO_XML(String TO_XML) {
this.TO_XML = TO_XML;
}
public String getTO_XML_TIME() {
return TO_XML_TIME;
}
public void setTO_XML_TIME(String TO_XML_TIME) {
this.TO_XML_TIME = TO_XML_TIME;
}
public String getBEIZHU() {
return BEIZHU;
}
public void setBEIZHU(String BEIZHU) {
this.BEIZHU = BEIZHU;
}
public Date getINSERT_TIME() {
return INSERT_TIME;
}
public void setINSERT_TIME(Date INSERT_TIME) {
this.INSERT_TIME = INSERT_TIME;
}
public String getINSERT_NAME() {
return INSERT_NAME;
}
public void setINSERT_NAME(String INSERT_NAME) {
this.INSERT_NAME = INSERT_NAME;
}
public Date getUPDATE_TIME() {
return UPDATE_TIME;
}
public void setUPDATE_TIME(Date UPDATE_TIME) {
this.UPDATE_TIME = UPDATE_TIME;
}
public String getUPDATE_NAME() {
return UPDATE_NAME;
}
public void setUPDATE_NAME(String UPDATE_NAME) {
this.UPDATE_NAME = UPDATE_NAME;
}
public String getFUZHU_KAIFAREN() {
return FUZHU_KAIFAREN;
}
public void setFUZHU_KAIFAREN(String FUZHU_KAIFAREN) {
this.FUZHU_KAIFAREN = FUZHU_KAIFAREN;
}
public String getLOGO_URL() {
return LOGO_URL;
}
public void setLOGO_URL(String LOGO_URL) {
this.LOGO_URL = LOGO_URL;
}
public String getFACHUFANGSHI() {
return FACHUFANGSHI;
}
public void setFACHUFANGSHI(String FACHUFANGSHI) {
this.FACHUFANGSHI = FACHUFANGSHI;
}
public String getFACHU_PINDU() {
return FACHU_PINDU;
}
public void setFACHU_PINDU(String FACHU_PINDU) {
this.FACHU_PINDU = FACHU_PINDU;
}
public String getMOREN_LIANXIREN() {
return MOREN_LIANXIREN;
}
public void setMOREN_LIANXIREN(String MOREN_LIANXIREN) {
this.MOREN_LIANXIREN = MOREN_LIANXIREN;
}
public String getDAOCHU_FLAG() {
return DAOCHU_FLAG;
}
public void setDAOCHU_FLAG(String DAOCHU_FLAG) {
this.DAOCHU_FLAG = DAOCHU_FLAG;
}
}
package dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
/**
* TODO
*
* @author ChenHao
* @version 1.0.0
* Created at 2020/8/17 10:44
*/
@Repository
public interface ClientRepository extends JpaRepository<Client, String> {
}
四、使用 jpa
package dao;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* TODO
*
* @author ChenHao
* @version 1.0.0
* Created at 2020/8/17 11:00
*/
public class ClientStart {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(JpaConfig.class);
// 获取repository
ClientRepository r = context.getBean(ClientRepository.class);
Client client = new Client();
// 客户id
client.setKEHU_ID("1");
r.save(client);
}
}