源数据库不同,表名相同,表字段名称相同,数据类型可能不同(因为目的数据库为mysql);
现在要取不同数据库中的数据插入到mysql数据库中 java 程序改怎么写,字段与字段之间的映射改怎么做?
现在要取不同数据库中的数据插入到mysql数据库中 java 程序改怎么写,字段与字段之间的映射改怎么做?
解决方案 »
- 运行时出现 log4j:WARN No appenders could be found for logger (freemarker.cache). 错误
- 一个Swing最基本的问题,现在到时难到我了,高手帮忙
- 各语言汇编后的可运行程序,在内存中的数据结构相同吗?
- 【难题】如何让 JTextField 显示输入内容匹配固定格式
- [注意]100分求购5月31日前在SUN社区注册的用户帐号!!!
- 构造函数利用super调用基类的构造函数?错错错!!!!super你不过是一个谎言!!!!!!!
- 在类中,有没有在load class之前就可以执行的代码?
- 急 指点者一定有分!!!
- 我想买一本java类库手册方面的书,大家给推荐一些好的吧,thx
- 请问能在哪下载java类库的书
- jtable内绑定jcombox 产生的焦点问题 急求解
- 线程求和问题
不多的话就用JDBC实现直接导吧
如果只是迁移数据:导成csv.
如果是程序里要实现一个功能:那要看你原来的程序怎么写的了.理论上来说"数据类型可能不同"这对java来说不是问题,jdbc都是对java对象进行操作的和数据库没关系.如果用的是hibernate就更简单了,新建一个映射文件,再弄一个sessionFactory就可以了
public void save(List<String> names,List<String>values,PreparedStatement pre)throws Exception;
public String getInsertSqlByName(String name);
//public void del()...
}针对不同数据库写一份实现oraclepublic class OracleDatabse implements Database{
/**
* @param fileName
* 配置文件
*/
public OracleDatabse(String fileName) {
} public void save(List<String> names, List<String> values,PreparedStatement pre) throws Exception {
for(int i=0;i<names.size();i++){
String name=names.get(i);
if(name.equals("姓名")){
pre.setString(1, values.get(1));
continue;
}
if(name.equals("年龄")){
pre.setInt(2, Integer.parseInt(values.get(2)));
continue;
}
if(name.equals("生日")){
Date date=null;//自己将value传为日期
pre.setDate(3,date);
}
}
} public String getInsertSqlByName(String name) {
if(name.equals("员工")){
return "insert into user values(?,?,?)";
}
return null;
}
}mysql
public class MySqlDatabase implements Database { public MySqlDatabase(String fileName){}
public void save(List<String> names, List<String> values, PreparedStatement pre) throws Exception {
// TODO Auto-generated method stub } public String getInsertSqlByName(String name) {
// TODO Auto-generated method stub
return null;
}
}
通过工厂获得数据库操作对象
public class DatabaseFactory {
public static Database getDataBase(String type){
if(type.equals("oracle")){
return new OracleDatabse("oracle的配置文件");
}
if(type.equals("MySql")){
return new MySqlDatabase("mySql的配置文件");
}
return null;
}
public static void main(String[] args) throws Exception {
Database database=DatabaseFactory.getDataBase("oracle");
Connection con=null;
//插入用户
List names=new ArrayList();
List values=new ArrayList();
String insertSql=database.getInsertSqlByName("员工");
PreparedStatement pre=con.prepareStatement(insertSql);
database.save(names, values, pre);
//更新...
//删除...
}
}