java实现excel表导入,有的字段数据库中没有,需要关联表,怎么导入

java实现excel表导入,有的字段数据库中没有,需要关联表,怎么导入,第1张

excel 的导出,通常的做法是把查询的数据准备好才开始导出的

如果是SQL问题的话,那么就是3表关联就好了

例如 :

网站中 存放 模块 和 功能的 2张表,多对多

create table mod (

id number ,

name varchar2(20) -- 模块名

);

create table func (

id number ,

name varchar2(20) --功能名

) ;

中间表

create table modfunc(

modID number references mod(id),

funcId number references func(id),

primary key (modid , funcid)

) ;

要求 导出 模块 =系统管理的所有功能,

导出的 excel格式如下

模块名 功能名

SQL语句

select mname modname , fname funcname from mod m

inner join modfunc mc on mid = mcmodid

inner join func f on fid = mcfuncid

where mname = '系统管理'

这样查询出来的是个 list

然后再导出excel吧

希望对你有帮助

用poi怎样把excel文件里面的数据导入数据库三张关联的表中

加入依赖的jar文件:

引用:

mysql的jar文件

Spring_HOME/lib/poi/jar

流程:

1、创建pojo类(在一对多关联关系中,应该在“一”这端的pojo有一个“多”这一端的引用,而多这端有一这端的集合引用(即聚合关联)

2、创建pojo对应的数据库表,并插入数据

3、在ibatis配置文件中配置pojo类(配置方法:SqlMappingConfigxml文件中添加如<typeAlias alias="Key" type="comlongskyibatislockmodelKey"/>配置,下文会看到。)

4、在pojo对应的xml配置文件中配置resultMap,比如在Lockxml文件中添加

<resultMap id="LockResult" class="Lock">

<result property="id" column="id"/> <result property="lockName" column="lockName"/>

<result property="keys" column="id" select="getKeysByLockId"/>

</resultMap>

5、在需要级联查询的查询语句中使用resultMap,比如

<select id="selectAllLocks" resultMap="LockResult">

<![CDATA[

select id,lockName from lock

]]>

</select>

以mysql数据库为例分情况一一说明:

两张表:insertTest和insertTest2,前者中有测试数据

create table insertTest(id int(4),name varchar(12));

insert into insertTest values(100,'liudehua');

insert into insertTest values(101,'zhourunfa');

insert into insertTest values(102,'zhouhuajian');

1如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO 目标表 SELECT FROM 来源表;

insert into insertTest select from insertTest2;

2如果只希望导入指定字段,可以用这种方法:

INSERT INTO 目标表 (字段1, 字段2, ) SELECT 字段1, 字段2, FROM 来源表;

注意字段的顺序必须一致。

insert into insertTest2(id) select id from insertTest2;

3如果您需要只导入目标表中不存在的记录,可以使用这种方法:

INSERT INTO 目标表

(字段1, 字段2, )

SELECT 字段1, 字段2,

FROM 来源表

WHERE not exists (select from 目标表

where 目标表比较字段 = 来源表比较字段);

1>插入多条记录:

insert into insertTest2

(id,name)

select id,name

from insertTest

where not exists (select from insertTest2

where insertTest2id=insertTestid);

2>插入一条记录:

insert into insertTest

(id, name)

SELECT 100, 'liudehua'

FROM dual

WHERE not exists (select from insertTest

where insertTestid = 100);

使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。

4将查询出来的数据并同其他变量一起插入新的数据表中

insert into t_supp_PurchPlan_s(PurPlanCode,itemcode,Speccode) select 'hello'as PurPlanCode,itemcode,speccode from b_item where id=8

直接将变量放到相应的位置即可(如上将固定的变量或动态变量放入即可)

1.首先准备两个数据表,如下图所示,具有相同的结构。

2.然后在第一个数据表中插入一些数据。

3.然后我们打开第二个数据表,您可以看到第二个表中没有数据。我们需要在第一个中插入数据。

4.接下来,编写insert语句,注意这一次直接在insert之后用select获取数据。

5.然后我们可以看到第二个数据表中的数据。

6.最后,您可以在选择查询时使用where来过滤数据。

如果两张表字段相同的话:

insert into newtable as select from oldtable

如果两张表字段不同的话:

insert into newtable(col1,col2,col3) as select acol1,acol2acol3 from oldtable b

注:newtable是目标表 oldtable是源表

以上就是关于java实现excel表导入,有的字段数据库中没有,需要关联表,怎么导入全部的内容,包括:java实现excel表导入,有的字段数据库中没有,需要关联表,怎么导入、用poi怎样把excel文件里面的数据导入数据库三张关联的表中、如何关联插入数据 添加数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10191191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存