思路:从一个数据库获取数据,然后插入到另外一个数据库,使用springboot的话就需要在application.yml配置两个数据库,这样比较麻烦也要注意注解的使用,如:

server:port: 7101
spring:jpa:show-sql: truedatasource:test1:driver-class-name: org.postgresql.Driverjdbc-url: jdbc:postgresql://127.0.0.1:5432/test  #测试数据库username: rootpassword: roottest2:driver-class-name: oracle.jdbc.driver.OracleDriverjdbc-url: jdbc:oracle:thin:@127.0.0.1:8888:orcl  #测试数据库username: rootpassword: root

但是我们可以通过简单程序实现然后打成jar包就可以很方便在我们的程序中使用。
下面我们就来展示一下这个简单程序:
首先是依赖注入(当然也可以使用mysql的jar包)

<!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>

然后就是代码:
注意:sql语句可以先在数据库中调试,成功就在代码中运行,如果对于sql不熟悉的话可以看笔者往期的数据库文章学习,代码中的时间是因为笔者需要在8点和17点这两个时间段定时发送数据。代码中有详细的注解,有不明白的地方可以问笔者。

public class Exchagedate {public static void main(String[] args) throws Exception {Connection con = null;// 创建一个数据库连接Statement stm = null;ResultSet result = null;// 创建一个结果集对象//获取系统当前时间Timestamp currentTime = new Timestamp(System.currentTimeMillis());//将当前时间转换成yyyy-MM-dd HH:mm:ss格式SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//获取前一天的时间Timestamp currentTime1 = new Timestamp(System.currentTimeMillis()-24 * 60 * 60 * 1000);//将时间转换成yyyy-MM-dd格式SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd");String dateString1 = formatter2.format(currentTime1);String dateString2 = formatter2.format(currentTime);Calendar calendar = Calendar.getInstance();String startTimeStr = formatter.format(currentTime1);try {//开始连接数据库System.out.println("开始尝试连接cailiandb数据库!");String url = "jdbc:mysql://10.*.*.*:3306/cailiandb";String user = "root";// 用户名,系统默认的账户名String password = "*019";// 你安装时选设置的密码con = DriverManager.getConnection(url, user, password);// 获取连接System.out.println("cailiandb连接成功!");String sql = null;//判断当前时间是否大于12点,如果大于12点,就取早上8点到下午17点的数据// 如果小于12点就取昨天下午17点到今天上午8点的数据if(calendar.get(Calendar.HOUR_OF_DAY) > 12){sql = "select * from article between '"+dateString2+" 8:00:00' and '"+dateString2+" 17:00:00'  order by a.id desc;" ;// 预编译语句,“?”代表参数}else {sql = "select *from article between '"+dateString1+" 17:00:00' and '"+dateString2+" 8:00:00'  order by a.id desc;" ;// 预编译语句,“?”代表参数}stm=con.createStatement();result=stm.executeQuery(sql);List<Article> articles = new ArrayList<>();while (result.next()){Article article = new Article();//需要接收的字段article.setId(result.getString("id"));article.setTitle(result.getString("title"));article.setTime(result.getString("from_unixtime(a.modified_time)"));article.setSource(result.getString("name") ==null?"":result.getString("name"));article.setContent(result.getString("content"));articles.add(article);}ExportData(articles);} catch (Exception e) {e.printStackTrace();} finally {try {// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源// 注意关闭的顺序,最后使用的最先关闭if (result != null)result.close();if (stm != null)stm.close();if (con != null)con.close();System.out.println("cms数据库连接已关闭!");} catch (Exception e) {e.printStackTrace();}}}public static String ExportData(List<Article> articles) {Connection con = null;// 创建一个数据库连接Statement stm = null;//获取当前时间Timestamp currentTime = new Timestamp(System.currentTimeMillis());SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);try {System.out.println("开始尝试连接gf_new数据库!");//本地测试数据库String url = "jdbc:mysql://127.0.0.1:3306/company?characterEncoding=utf-8";String user = "root";// 用户名,系统默认的账户名String password = "root";//con = DriverManager.getConnection(url, user, password);// 获取连接stm=con.createStatement();System.out.println("gf_new连接成功!");//进行for循环遍历,通过title的内容将重复的title去除掉for (int i = 1; i < articles.size(); i++) {if (!articles.get(i-1).getTitle().equals(articles.get(i).getTitle())){System.out.println(articles.get(i));//插入数据String sql = "insert into COMPANY_BUSINESS_NEWS(ID,TITLE,COMPCODE,SCORE,IMPORTANCE,INDICCODE2,EMOTION,SOURCE,CONTENT,URL,LINK,BUSINESS_TAG,SECURITIES_TAG,PUBLISH_TIME,CREATE_TIME,G_UPDATE_TIME, importance_input" +") " +"values('"+articles.get(i-1).getId()+Integer.toString(i*i)+"','"+articles.get(i-1).getTitle()+"',NULL,NULL,NULL,NULL,NULL,'"+articles.get(i-1).getSource()+"','"+articles.get(i-1).getContent()+"','',''," +"NULL,NULL,'"+articles.get(i-1).getTime()+"','"+dateString+"','"+dateString+"',NULL) ;";System.out.println(sql);stm.executeUpdate(sql);}}System.out.println("ok");} catch (Exception e) {e.printStackTrace();} finally {try {if (stm != null)stm.close();if (con != null)con.close();} catch (Exception e) {e.printStackTrace();}}return null;}
}

在实现前还需要提供一个实体类方便接收数据

public class Article {private String id;private String title;private String time;private String source;private String content;public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getSource() {return source;}public void setSource(String source) {this.source = source;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}@Overridepublic String toString() {return "Article{" +"id='" + id + '\'' +", title='" + title + '\'' +", time='" + time + '\'' +", source='" + source + '\'' +", content='" + content + '\'' +'}';}
}

今天的分享到此为止,谢谢各位看官。

java简单从一个数据库获取数据,然后插入到另外一个数据库相关推荐

  1. Android中连接MySql数据库获取数据的简单实现

    文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...

  2. mysql从库数据源_SoapUI Pro教程:如何使用MySQL服务器作为数据源-从MySQL数据库获取数据...

    SoapUI Pro拥有许多其他web服务测试工具所不具备的高级技术和功能.对于REST.SOAP以及其他流行的API和物联网协议,SoapUI Pro提供了业界最全面的功能测试功能.通过易用的图形界 ...

  3. echarts从数据库获取数据制图

    echarts从数据库获取数据制图 首先是连接mysql的工具类(DBUtil ), import java.sql.Connection; import java.sql.DriverManager ...

  4. Loadrunner脚本优化-参数化之关联MySQL数据库获取数据

    脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1.   安装MySQL ODBC驱动程序 O ...

  5. eclipse读取mysql数据乱码_eclipse从数据库获取数据时控制台乱码问题

    最近在学习HQL的时候,想从数据库获取数据时eclipse控制台乱码,一开始以为是控制台设置的编码有问题,然后就修改了控制台的编码,run->run Configurations->com ...

  6. Bigdecimal 在从数据库获取数据后 和从前台获取的数据作比较时(值相等)

    1.做数值校验 ,Bigdecimal 在从数据库获取数据后 和从前台获取的数据作比较时(小数) 会出现 数据库取出的数据进度丢失 得到的结果是 false 解决方案 :先进行小数位保留 然后再作比较 ...

  7. R语言可以直接从数据库读取数据么?R语言读取数据库数据示例

    R语言可以直接从数据库读取数据么?R语言读取数据库数据示例 目录 R语言可以直接从数据库读取数据么?R语言读取数据库数据示例 R语言是解决什么问题的? R语言可以直接从数据库读取数据么?R语言读取数据 ...

  8. xml中加html源码,从xml获取数据以插入html标签,但在源代码中未看到

    从xml获取数据以插入到ul标签中.当我运行代码时,页面正在加载,并且我可以在浏览器上看到图像,但jquery代码不起作用(例如,单击到#GalleryList元素),因为附加代码未显示在浏览器视图源 ...

  9. java调用别人的接口获取数据存到mysql数据库

    1.根据接口返回的字段创建数据库表 2.创建对应这个表的controller,service,mapper,pojo 3.在controller层调用Impl实现类.具体业务:接收数据并保存在数据库, ...

最新文章

  1. JAVA_Java常用核心包(概念)
  2. NSURLSession使用说明及后台工作流程分析
  3. keepalived vrrp协议
  4. hdu 5755 Gambler Bo 高斯消元
  5. Android 模拟机键盘不可用的问题 !!
  6. 如何在 think-cell 瀑布图中并行汇总多个系列?
  7. WIN7 旗舰版、专业版、家庭高级版32位64位官方原版下载地址
  8. 百度EasyDL图像分类的使用
  9. php复杂海报合成,才发现 | 每一步都不该错过的合成海报教程
  10. 浅谈临床研究中随机化
  11. 我的第一款(ban)产(cheng)品(pin)——铛铛打卡
  12. SAP FICO - 简介(重要概念)
  13. 手把手教你用Python打造一款属于你自己的个性二维码
  14. 什么是节流和防抖?有什么区别?为什么做这个处理?
  15. Proteus VSM Studio汇编 + 8位数码管+按键扫描
  16. java 汉字转为GBK编码,再由GBK编码转为汉字
  17. 综合布线--符号和缩略词
  18. 如何单独编译Android源代码中的模块
  19. html超链接 新弹出窗口 和字体颜色
  20. 没有996的当代年轻人,配过怎样的生活 1

热门文章

  1. redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
  2. 行人重识别的代码复现
  3. Squoosh在线无损图片压缩工具中文版,JPG/webP/PNG/互转
  4. linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置
  5. Unskilled in English is looked down on by people (composition)
  6. 洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发
  7. AlwaysOn实现主从切换
  8. sws_scale概念讲解
  9. 梅捷计算机主板价格,梅捷H81亲民主板逆袭!新到货仅售499元
  10. 【游戏案例学习】涂鸦跳跳笔记