JPA-Oracle-Mysql连接数据库配置
来源:互联网 发布:nginx启动后的进程 编辑:程序博客网 时间:2024/05/23 12:57
//...省略datasouce <!--允许使用注解方式配置事务 --> <tx:annotation-driven transaction-manager="transactionManager" /> <!--service端使用inject方式查询扫描 --> <jpa:repositories base-package="cn.com.taiji.com.repository" /> <!-- JPA 事务管理 --> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="dataSource" ref="dataSource" /> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <!-- JPA 实体管理工厂 --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence-oracle.xml" /> <property name="jpaPropertyMap"> <map> <entry key="hibernate.hbm2ddl.auto" value="no" /> <entry key="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" /> <entry key="hibernate.show_sql" value="true" /> <entry key="hibernate.format_sql" value="false" /> </map> </property> </bean>` <tx:annotation-driven transaction-manager="transactionManager" /> <!--service端使用inject方式查询扫描 --> <jpa:repositories base-package="cn.com.taiji.com.repository" /> <!-- JPA 事务管理 --> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="dataSource" ref="dataSource" /> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <!-- JPA 实体管理工厂 --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence-oracle.xml" /> </bean>
persistence-oracle.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="app" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <mapping-file>META-INF/orm-oracle.xml</mapping-file> <exclude-unlisted-classes/> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" /> <property name="hibernate.max_fetch_depth" value="3" /> <property name="hibernate.hbm2ddl.auto" value="no" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> </properties> </persistence-unit></persistence>
orm-oracle.xml实体类映射文件
<?xml version="1.0" encoding="UTF-8"?><entity-mappings version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm http://xmlns.jcp.org/xml/ns/persistence/orm/orm_2_1.xsd"> <entity class="cn.com.taiji.com.domain.ServiceMenu" /> </entity-mappings>
实体类
package cn.com.taiji.com.domain;import java.io.Serializable;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Lob;import javax.persistence.NamedQuery;import javax.persistence.Table;/** * @ClassName: ServiceMenu * @Description: 服务目录 * @author ranxing * @date 2017年8月2日 下午2:59:57 * */@Entity@Table(name="rkrm$_ywfwinfo")@NamedQuery(name="ServiceMenu.findAll", query="SELECT t FROM ServiceMenu t")public class ServiceMenu implements Serializable { /** * */ private static final long serialVersionUID = -1332680945578333683L; public ServiceMenu(){ } @Id private String fwlxid ; private String fwlxname; private String fwloc; private String fwlxdesc; @Lob private String fwinfo; private String dwid; private String ywlxid; private String creator; private String ctime; private String fromfwlxid; public String getFwlxid() { return fwlxid; } public void setFwlxid(String fwlxid) { this.fwlxid = fwlxid; } public String getFwlxname() { return fwlxname; } public void setFwlxname(String fwlxname) { this.fwlxname = fwlxname; } public String getFwloc() { return fwloc; } public void setFwloc(String fwloc) { this.fwloc = fwloc; } public String getFwlxdesc() { return fwlxdesc; } public void setFwlxdesc(String fwlxdesc) { this.fwlxdesc = fwlxdesc; } public String getFwinfo() { return fwinfo; } public void setFwinfo(String fwinfo) { this.fwinfo = fwinfo; } public String getDwid() { return dwid; } public void setDwid(String dwid) { this.dwid = dwid; } public String getYwlxid() { return ywlxid; } public void setYwlxid(String ywlxid) { this.ywlxid = ywlxid; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } public String getCtime() { return ctime; } public void setCtime(String ctime) { this.ctime = ctime; } public String getFromfwlxid() { return fromfwlxid; } public void setFromfwlxid(String fromfwlxid) { this.fromfwlxid = fromfwlxid; }}
ServiceMenuRepository实体类相关连接数据库接口
一般我都习惯手写sql
package cn.com.taiji.com.repository;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import org.springframework.data.repository.PagingAndSortingRepository;import cn.com.taiji.com.domain.ServiceMenu;@Transactional//这个注解很重要哦public interface ServiceMenuRepository extends JpaRepository<ServiceMenu, String>, JpaSpecificationExecutor<ServiceMenu>, PagingAndSortingRepository<ServiceMenu,String>{/* 弄几个栗子,并不是这个实体的方法 /** * 查询出未删除的所有数据字典记录集合 * @return */ @Query("select c from Infolink c where c.deleteFlog=1 ") List<Infolink> findAllInfolinks(); //and b.infosort_id = ?1 @Query(" select c from Infolink c , InfosortInfolink b where b.infolinkId = c.infolinkId and c.infolinkId = ?1 ") List<Infolink> findLinkById(String infolinkId); //and b.infosort_id = ?1 @Modifying @Query(" update Infolink c set c.deleteFlog = 0 where c.infolinkId= ?1 ") void updateFlag( String infolinkId);*/}
一个查询至于拼接过程看需求自己弄吧类似普通sql拼接
@PersistenceContext private EntityManager em; @Inject LogZJTaskInfoRepository logZJTaskInfoRepository; @Inject ServiceInfoRepository serviceInfoRepository;//...以上省略 这个sql不是上面实体里面的只是例子,2个表的查询写法// 大于2个表的方式,还不如使用级联就行了,当然我不会..// length()是oracle中clob字段的非空// 只要配置正确mysql和oracle是通用的,除了特殊字段需要自己处理,// 正常的都一样查询,mysql会自己查询为limit,oracle会为ROWNUM StringBuilder jpql = new StringBuilder ("select c from LogZJTaskInfo c , TimeInfo d where c.zyid = d.zyid " + "and length(d.timeinfo)>0 ") ; Query query = em.createQuery(jpql.toString()); query.setFirstResult(page*pageSize); // query query.setMaxResults(pageSize); // query.setParameter("appointPeopleId", searchParameters.get("userId")); //登录人Id List list = query.getResultList(); map.put("List", list);// 来个单一查询 通用方法传id就行ServiceInfo si = serviceInfoRepository.findOne((String) object);
阅读全文
0 0
- JPA-Oracle-Mysql连接数据库配置
- 使用JPA连接MySQL数据库
- 连接mysql和oracle数据库的配置
- 连接数据库Oracle,MySQL
- oracle连接数据库配置
- SH 连接Oracle和MySQL数据库的不同配置
- JPA连接数据库
- jpa连接数据库
- springboot jpa 连接数据库
- oracle和Mysql连接数据库
- JDBC连接oracle、mysql数据库
- mysql、oracle 连接数据库方法
- jdbc连接MySQL、Oracle数据库
- JDBC连接Oracle、MySQL数据库
- Django 连接mysql Oracle数据库
- Spring mvc中使用Spring Data Jpa 连接Mysql数据库
- 基于Spring boot的Spring data jpa连接MySQL数据库
- rails连接oracle数据库配置
- HTML5_对象-雪花-PK-封装-继承-原型
- javascript的阻止默认事件和阻止冒泡事件
- LeetCode 78 Subsets (Python详解及实现)
- 改变python的默认路径为当前的工作路径
- linux 下 redis 扩展安装
- JPA-Oracle-Mysql连接数据库配置
- mac 环境搭建 之 redis安装
- HTML5音乐播放器
- docker-compose命令不存在、docker-compose not found
- 聊聊UI的扁平化设计趋势与拟物化设计
- arm汇编 bic和orr指令
- 基于Tcl/Tk的HyperView后处理二次开发实例
- Swift_学习笔记_控制语句和函数
- 2017.08.08 将模型视图矩阵和投影矩阵传递到glsl中