jfinal 连接oracle 数据库把外键当成主键 在mappingkit文件里生成多个主键解决办法

1 听波总说是ojdbc  这个jar包版本问题 我以前用的ojdbc14 我换成6了之后 还是存在这个问题 所以我重写了jfinal源码里面的方法 也就是第二种方法

2  下面是我重写的类

package com.syhz.model;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.generator.MetaBuilder;
import com.jfinal.plugin.activerecord.generator.TableMeta;
/**
* 重写jfinal生成主键规则
* @author String
*
*/
public class MyMetaBuilder extends MetaBuilder{

public MyMetaBuilder(DataSource dataSource) {
super(dataSource);
// TODO Auto-generated constructor stub
}

@Override
public void buildPrimaryKey(TableMeta tableMeta) throws SQLException{

ResultSet rs = dbMeta.getPrimaryKeys(conn.getCatalog(), null, tableMeta.name);

String primaryKey = "";
int index = 0;
while (rs.next()) {
/*if (index++ > 0) {
primaryKey += ",";
}*/
primaryKey = rs.getString("COLUMN_NAME");
}
if (StrKit.isBlank(primaryKey)) {
throw new RuntimeException("primaryKey of table \"" + tableMeta.name + "\" required by active record pattern");
}
tableMeta.primaryKey = primaryKey;
rs.close();

}
}

使用的话是在 2      generator.setMetaBuilder(new MyMetaBuilder(dataSource2));  用自己重写的MyMetaBuilder

 

之所以标记1  2 是要先用1来获取   因为按照常理来说 自己都会单独写一个连接数据库的方法  如果用自己写的方法 在这里直接用的话 会报错 说 数据已经连接  也就是重复连接的意思  所以我是这么做的

原文地址:https://www.cnblogs.com/krlin/p/9083055.html

时间: 2024-11-06 03:55:47

jfinal 连接oracle 数据库把外键当成主键 在mappingkit文件里生成多个主键解决办法的相关文章

JFinal连接Oracle数据库实战

添加oracle驱动包: 在lib中添加ojdbc6.jar 在controller中配置插件: /** * 配置插件 */ public void configPlugin(Plugins me) { /*// 配置C3p0数据库连接池插件 C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password&qu

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

Jmeter连接Oracle数据库

一.Jmeter要连接oracle数据库,就必须复制JDBC驱动jar包文件ojdbc14.jar到Jmeter的lib目录下 二.进入Jmeter的bin目录运行Jmeter.bat,启动Jmeter 三.Jmeter软件配置如下: 1.添加线程组 2.右击线程组,选择"添加--配置元件--JDBC Connection Configuration" 3.点击JDBC Connection Configuration,设置输入域,以连接oracle数据库为例: Variable Na

Windows server2008 搭建ASP接口訪问连接oracle数据库全过程记录

真的是太不easy了,曾经的时候在window server 2003上面搭建了一套asp+oracle的接口系统.就费了好大的劲儿,事实上那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今天打算把接口从測试环境部署到公网环境上去的时候就出现了各种各样的问题.这次一定得记录一下. 先来说一下这套接口系统的总体方案: 之所用选用asp是由于属于轻量级的接口系统,仅仅须要改动好了以后复制粘贴上去接口就马上生效.而不须要像java系的接口程序要用tomcat打包.上传.部署这种.那这个

Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录

真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今天打算把接口从测试环境部署到公网环境上去的时候就出现了各种各样的问题,这次一定得记录一下. 先来说一下这套接口系统的整体方案: 之所用选用asp是因为属于轻量级的接口系统,只需要修改好了以后复制粘贴上去接口就立即生效,而不需要像java系的接口程序要用tomcat打包.上传.部署这样的.那这个系统就

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

JavaWeb连接oracle数据库

javaWEB项目与普通java项目在连接oracle数据库上似乎略有不同. 普通java项目直接将ojdbc.jar构建路径即可: 而javaweb项目却可能并不能运行,需要再设置一下: 项目名上右键点击→属性→Deployment Assembly→Add→java Build Path Entries →ojdbc.jar,最后确定,重新运行项目. package dal; import java.sql.Connection; import java.sql.DriverManager;

PLSQL Develope连接oracle数据库配置

首先我们在讲PLSQL Develope连接oracle数据库配置之前,先讲下如果不用PLSQL Develope连接oracle数据库,那该怎么办,那就是在本机安装oracle数据库,不过这个对于配置渣的笔记本来说是个挑战,而且界面长时间不操作就会卡死,只能强制关闭,用起来非常不方便,如果笔记本配置高,且不想费力用PLSQL,那可以考虑直接安装oracle客户端. 下面我们来看看如何用PLSQ连接oracle. 1.自行百度下载plsql客户端,个人比较喜欢从CSDN上下载,你们随意.下载好后

如何用PL/SQL Developer连接Oracle数据库

之前因为项目的原因需要使用Oracle数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/SQL Developer这个很好用的软件来间接使用数据库. 下面简单介绍一下如何用这个软件连接Oracle数据库. 第一步 安装Oracle Database和PL/SQL Developer 这一步网上有很多的教程就不详细介绍.Oracle可以直接到官网去下载,在安装中注意几个问题就行: 1.一定要记住自己全局数据库名字和口令,这个在后面连接的时候很重要