目录
基本概念
使用JPA可以简化编程,并且可以不变代码,直接换其他数据库,比如,现在要把数据库换成达梦的。
首先把达梦安装好:
这里可以看到方言什么都有,现在来看看那个Hibernate....txt那个文件:
这里我选择了Dm7JdbcDriver17.jar方言选择DmDialect-for-hibernate5.3.jar
这里加载有2种方式,一种是配置一个本地的Maven库,一种是直接从文件中加载。
这里为了简单,直接从配置本地:
maven配置如下:
<dependency>
<groupId>com.dm</groupId>
<artifactId>jdbc</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/Dm7JdbcDriver17.jar</systemPath>
</dependency>
<dependency>
<groupId>com.dm</groupId>
<artifactId>hibernate5</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmDialect-for-hibernate5.3.jar</systemPath>
</dependency>
这样库就搞好了!
代码与实例
达梦库截图如下:
程序运行截图如下:
程序结构如下:
PolicyContexts.java
package jpadmjdbc.demo.object;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Entity
@Table(name = "POLICY_GROUPS")
public class PolicyContexts {
@Id
@Column(name = "OBJID")
private Integer id;
@Column(name = "NAME")
private String name;
}
PolicyContextsRepository
package jpadmjdbc.demo.repository;
import jpadmjdbc.demo.object.PolicyContexts;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PolicyContextsRepository extends JpaRepository<PolicyContexts, Integer> {
}
application.properties
spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver
spring.datasource.url=jdbc:dm://127.0.0.1/TESTHEHE?characterEncoding=utf-8&useSSL=false
spring.datasource.username=SYSDBA
spring.datasource.password=SYSDBA
#spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect
单例调试:
package jpadmjdbc.demo.repository;
import jpadmjdbc.demo.object.PolicyContexts;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import static org.junit.Assert.*;
@RunWith(SpringRunner.class)
@SpringBootTest
public class PolicyContextsRepositoryTest {
@Autowired
PolicyContextsRepository repository;
@Test
public void all(){
List<PolicyContexts> all = repository.findAll();
System.out.println(all);
Assert.assertNotEquals(all.size(), 0);
}
}
存在的坑
这里版本一定要对应采用的是如下JPA版本:
点进去看看其Hibernate版本:
这里要选对达梦的版本,这是最重要的!