JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中。

SQL语句如下:两张表 weather 和 weather_process.

id均为自动增长。Oracle中采用序列 Sequence

写的不对的地方,欢迎大家指出。您的建议,也是我的进步。谢谢!

DROP SEQUENCE weather_id;

CREATE SEQUENCE weather_id //创建序列

INCREMENT BY 1 //每次增加1

START WITH 1 //从1开始,即id从1开始 每次增1 如:1,2,3...

NOMAXVALUE       //不设置最大值

NOCYCLE;               //不用循环

插入值的时候,id 字段写成weather_id.nextval 便完成了自动增加的功能!

INSERT INTO WEATHER(id, weather) values (weather_id.nextval,'晴');

DROPTABLEWEATHER;

CREATETABLEWEATHER (

IDINTPRIMARYKEYNOTNULL,

weatherVARCHAR(20)NOTNULL

);

DROPWEATHER_PROCESS;

CREATETABLEWEATHER_PROCESS(

IDINTPRIMARYKEYNOTNULL,

阴intNOTNULLdefault0,

晴intNOTNULLdefault0,

雨intNOTNULLdefault0

);

DROPSEQUENCEweather_id;

CREATESEQUENCEweather_id

INCREMENTBY1

STARTWITH1

NOMAXVALUE

NOCYCLE;

DROPSEQUENCEweather_process_id ;

CREATESEQUENCEweather_process_id

MINVALUE 1

STARTWITH1

INCREMENTBY1;

INSERTINTOWEATHER(id, weather)values(weather_id.nextval,'晴');

INSERTINTOweather(id, weather)values(weather_id.nextval,'雨');

INSERTINTOweather(id, weather)values(weather_id.nextval,'阴');

INSERTINTOweather(id, weather)values(weather_id.nextval,'雨');

INSERTINTOweather(id, weather)values(weather_id.nextval,'阴');

INSERTINTOweather(id, weather)values(weather_id.nextval,'晴');

INSERTINTOweather(id, weather)values(weather_id.nextval,'雨');

INSERTINTOweather(id, weather)values(weather_id.nextval,'晴');

下面来说说这次的主题:根据weather 表中的weather字段 的值(晴,阴,雨),来决定表weather_process 中 阴 晴 雨 的值。

当weather 为 晴时,weather_process 中的值 设置为:0 1 0 (阴,晴,雨)。

当weather 为 阴时,weather_process 中的值 设置为:1 0 0 (阴,晴,雨)。

当weather 为 雨时,weather_process 中的值 设置为:0 0 1 (阴,晴,雨)。

上述采用JAVA 实现。

连接ORACLE 的代码:

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

/**

* A JDBC test application for Oracle

*

* @author Wang

* @version 1.0.0

* @since JDK1.6

*/

publicclassOracleConnect {

// 定义ORACLE的数据库驱动程序

publicstaticfinalString DBDRIVER ="oracle.jdbc.driver.OracleDriver";

// 定义ORACLE数据库的连接地址

publicstaticfinalString DBURL ="jdbc:oracle:thin:@localhost:1521:ORCL";

//ORACLE数据库的连接用户名

publicstaticfinalString DBUSER ="system";

// ORACLE数据库的连接密码

publicstaticfinalString DBPASS ="www.google.com";

publicConnection getConnection() {

Connection conn =null;// 数据库连接

try{

Class.forName(DBDRIVER) ;

}catch(ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}// 加载驱动程序

System.out.println("加载驱动成功!");

try{

conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("连接成功!");

returnconn;

}

}

处理表的代码:

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

publicclassOracleProcess {

Connection conn =null;

Statement stmt =null;

publicOracleProcess(){

OracleConnect oraconn =newOracleConnect();

conn = oraconn.getConnection();

}

publicConnection getWeather() {

try{

stmt = conn.createStatement();

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String sql ="SELECT weather FROM WEATHER";

//String sql1 = "CREATE TABLE WEATHER_PROCESS(ID INT PRIMARY KEY NOT NULL,阴 int NOT NULL ,晴 int NOT NULL,雨 int NOT NULL)";

ResultSet result =null;

try{

stmt.executeUpdate(sql);

result = stmt.executeQuery(sql);

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try{

intflag =0;

while(result.next()) {

//System.out.print(result.getString("weather")+"、");

String str = result.getString("weather");  //获取表中weather的值

if("阴".equals(str)) {

stmt = conn.createStatement();

/*

*如果不重新stmt一个 则出现的是表中只会插入一条记录,

*然后整个循环就退出了。

*/

String sql2 ="INSERT INTO WEATHER_PROCESS(id, 晴,阴,雨) values (weather_process_id.nextval,0,1,0)";

stmt.executeUpdate(sql2);

System.out.print(str+"、");

}elseif("晴".equals(str)) {

stmt = conn.createStatement();

String sql2 ="INSERT INTO WEATHER_PROCESS(id, 晴,阴,雨) values (weather_process_id.nextval,1,0,0)";

stmt.executeUpdate(sql2);

System.out.print(str+"、");

}else{

stmt = conn.createStatement();

String sql2 ="INSERT INTO WEATHER_PROCESS(id, 晴,阴,雨) values (weather_process_id.nextval,0,0,1)";

stmt.executeUpdate(sql2);

System.out.print(str+"、");

}

flag ++;

}

System.out.println("\n此次一共更新了"+flag+"条语句");

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try{

result.close();

stmt.close();

conn.close();

}catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

returnconn;

}

}

欢迎共同交流,写的不对的地方还望大家谅解,呵呵。

java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...相关推荐

  1. java连接本地数据库命令_Java操作数据库时一次连接只能执行一条SQL命令

    Java操作数据库时一次连接只能执行一条SQL命令 答:× 全面深化改革要攻坚涉险,必须坚持正确的思想方法,不断探索和把握全面深化改革的内在规律,特别是要把握和处理好全面深化改革中的等重大关系 答:整 ...

  2. java用来创建数据库连接的接口是_Java操作数据库--JDBC

    简介 刚开始介绍了mysql基本语句,但是你会觉得好像不会知道怎么用,它的用途在什么地方,所以为了提高兴趣今天我们来介绍一下JDBC,以后会和MySQL一起更新. JDBC,到底jdbc是什么东西呢? ...

  3. java 数据库操作教程_java操作数据库的基本方法

    此次开发工具为eclipse,才有的数据库驱动是mysql-connector-java-5.1.8-bin.jar 第一步,在eclipse的工程目录中引用mysql驱动 驱动下载地址:https: ...

  4. musql数据库定期跑批操作数据库,不必java后台写定时方法去操作。

    我们java后台定期改变后台数据库一般都是写定时器,定期操作.其实还可以数据库里写个定时跑批任务,来操作数据库. 今天在做项目时,需要每天检查数据库,判断一个表里的数据的时间和状态,如果时间过了3天了 ...

  5. java中数据库修改语句_java 修改数据库中的数据

    就是把文本框中修改的数据重写入数据库代码:intnum=Integer.parseInt(number.getText());Stringnewname=name.getText();Stringne ...

  6. mysql修改数据库历史_MySQL之操作数据库

    二.操作数据库 操作数据库-->操作数据库中的表-->操作数据库中表的数据 注:所有语句都要用;结尾. 1.操作数据库 例:创建数据库westos并使用. 注:以后所有命令带[]表示可选, ...

  7. 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)

    DDL对数据库的操作:http://blog.csdn.net/baidu_37107022/article/details/72334560 DDL对数据库中表的操作 1)方法概览 2)演示 //创 ...

  8. 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)

    1.DDL(Data Definition Language:数据库定义语言)概览 DDL(Data Definition Language:数据库定义语言) 2.DDL对数据库的操作 1)方法概览 ...

  9. cad与连接mySQL数据库_跨服务器操作数据库?其实很简单!(下)

    之前一篇文章一步一步的教小伙伴们如何建立SQL Server的数据库链接(DBLINK),详细步骤可查看上篇:跨服务器操作数据库?其实很简单!(上) 今天我们来教大家如何连接MYSQL和Oracle的 ...

最新文章

  1. angular HttpClient post put patch del 方法(2)-Promise 服务
  2. Exynos 4412启动过程(群聊笔记记录)
  3. Angular应用内路由(In App Route)的最佳实践
  4. Lync-用户-电话号码-更新
  5. 人体工学腰垫,保腰神器,改善久坐腰酸背痛
  6. ie浏览器网页版进入_IE浏览器打开网页速度很慢的解决办法
  7. 什么是场景化需求分析法?如何有效使用这个客户需求分析最有效的方法?
  8. 北航 华科 计算机学院官网,北京航空航天大学和华中科技大学如何比较?
  9. php html转ubb,PHP HTML转UBB函数
  10. 大内高手 调试手段及原理
  11. 深入理解计算机系统第四章(4.55-4.58)
  12. html不对齐表格的实现
  13. NeuroImage:对情绪表现的快速接近—回避反应反映了基于价值的决策:来自脑电图研究的神经证据
  14. 网络测速全解析之一:自定义View基础知识(八)
  15. 缓存穿透,缓存击穿,缓存雪崩
  16. 中奖人js滚动效果_jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可...
  17. 如何将文字翻译成英文?简单教程讲解
  18. 迸发中的小i机器人,2018年多处开花
  19. 为InfiniBand而哭泣
  20. pythonista3安装第三方库_如何在pythonista for ios中添加第三方库,如pandas?

热门文章

  1. was升级jdk版本_WebSphere 8.5 升级jdk版本
  2. cs架构用什么语言开发_C、C++、Go 语言、Linux服务器开发高级架构师进阶之路
  3. sklearn下的ROC与AUC原理详解
  4. Python淘汰倒计时!这个新一代可视化神器,阿里、华为都用疯了?
  5. 不想跑数了,数据分析师的前途在哪里?
  6. 聚合型神器!有了他,手机里app可以删一半
  7. 一文理清面向对象(封装、继承、多态)+ 实战案例
  8. 用 Python 在朋友圈中游遍全球
  9. 小狗分类器,你家的狗子是个什么狗?
  10. python 字典取值加引号创建一个对象_Python在添加到字典时从列表项中删除单引号...