请问如何用java编程实现 access导入sqlserver,
我的意思是通过jsp页面,选择access数据库后,提交就导入到sqlserver,
是不是 直接运行sql语句就行?
我的意思是通过jsp页面,选择access数据库后,提交就导入到sqlserver,
是不是 直接运行sql语句就行?
解决方案 »
- tomcat怎么在项目里配置数据源
- ssh2论坛项目,hql多表联查问题
- 简单的登陆怎么老不行 帮忙啊 找了半天了
- 我记得文档打包成jar后可以在tomcat中发布的 忘了怎么弄了
- JSF开发问题...紧急
- 关于JSP网站测试的问题
- 求助关于struts中如何处理html:select和html:option
- 一个关于插入数据库的问题困惑好几天了《〈〈求教各位大哥!!·
- 在线,怎样避免输入一个url后,把服务器上该url下的所有文件都列出来。
- 关于TOMCAT的问题,大虾和虾米们都进来看看呀.
- 紧急求助,在struts中我如何自己生成一个FormFile对象
- servlet中request属性设置问题
import java.sql.*;public class Trans{
public static void main(String args[]){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conAccess=DriverManager.getConnection
("jdbc:odbc:dbname","user","password");//dbname为你的access中的数据库
Statement stmt=conAccess.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
//tablename 为你的access中的数据库中需要转换数据的表
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的sqlserver2000中的数据库 Connection conSql= DriverManager.getConnection(url,user,password);
PreparedStatement pstmt=conSql.prepareStatement("insert into table values(
?,?,?,?.....)");//表table 与access中的表的结构,字段应该相同,有多少字段就有
//多少问号
while(rs.next()){
pstmt.setXXXXX(1,rs.getXXXXX("字段1"));
pstmt.setXXXXX(2,rs.getXXXXX("字段2"));
. //同上面结构的语句,其中'XXXXX'为你的字段的数据类型,自行替换
. //有多少个字段(问号)就写多少条这样的语句,即把表中数据全部传输
.
pstmt.executeUpdate();
}
rs.close();
stmt.close();
pstmt.close();
conAccess.close();
conSql.close();
}catch(Exception e){ e.printStackTrace(); }
}
}
将这个类编译后放入你的tomcat5.5中的WEB-INF\classes\beans中,
在jsp页面中作为bean 来使用,其他的问题你自己解决了,
OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')
insert into openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表/*************导入Access********************/
insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A表)文件名为参数
declare @fname varchar(20)
set @fname = 'd:\test.mdb'
exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',
'''+@fname+''';''admin'';'''', topics) as a ')SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品
OpenRowSet('microsoft.jet.oledb.4.0',';database=d:\x.mdb','select * from test')
这个不行啊,运行的时候,出现
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'test' 中为标识列指定显式值。
谢谢你的代码,看了一下,是个办法,把odbc-jdbc换成jdbc驱动
我已经做了一个导出成文本,在导入的程序,
OpenRowSet('microsoft.jet.oledb.4.0',';database=d:\x.mdb','select * from test')
这个不行啊,运行的时候,出现
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'test' 中为标识列指定显式值。这个怎么搞的啊?