java中常见数据库字段类型与java.sql.Types的对应关系

在使用一些数据库操作封装的框架时候数据库类型的对应很长用比如:使用spring的jdbctemplate时候如果用到type时候对应的字段类型就需要用到

int[] types = new int[] { Types.DECIMAL, Types.VARCHAR, Types.DECIMAL,
Types.DECIMAL, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,
Types.VARCHAR, Types.VARCHAR, Types.DECIMAL, Types.DECIMAL };
jdbcOracleTemplate.update(sql, obj, types);

一下是对应的列表:

常见数据库字段类型与java.sql.Types的对应

Oracle与java.sql.Types的对应 

Oracle                                java.sql.Types  

 blob                                     blob
 char                                     char
 clob                                     clob
 date                                     date
 number                                   decimal
 long                                     varbinary
 nclob,nvarchar2                          other
 smallint                                 smallint
 timestamp                                timstamp
 raw                                      varbinary
 varchar2                                 varchar

Sql server与java.sql.Types的对应 

Sql server                           java.sql.Types
    bigint (2005,2008)                     bigint
    timstamp,binary                        binary
    bit                                    bit
    char,nchar,unqualified                 char
    datetime                               date
    money,smallmoney,decimal               decimal
    float (2005,2008)                      double
    float(2000)                            float
    int                                    integer
    image                                  longvarbinary
    text,ntext,xml                         longvarchar
    numeric                                numeric
    real                                   real
    smallint                               smallint
    datetime,smalldatetime                 timestamp
    tinyint                                tinyint
    varbinary                              varbinay
    nvarchar,varchar                       varchar

DB2与java.sql.Types的对应 

   bigint                                  bigint
   blob                                    blob
   character,graphic                       char
   clob                                    clob
   date                                    date
   decimal                                 decimal
   double                                  double
   integer                                 integer
   longvargraphic                          longvarchar
   longvarchar                             longvarchar
   real                                    real
   smallint                                smallint
   time                                    time
   timestamp                               timestamp
   vargraphic                              varchar
   varchar

MySQL与java.sql.Types的对应 

MySQL                                  java.sql.Types
   bigint                                 bigint
   tinyblob                               binary
   bit                                    bit
   enum,set,char                          char
   date,year                              date
   decimal,numeric                        decimal
   double,real                            double
   mediumint,int                          integer
   blob,mediumblob                        blob
   longblob                               blob
   float                                  real
   smallint                               smallint
   time                                   time
   timestamp,datetime                     timestamp
   tinyint                                tinyint
   varbinary,binary                       varbinay
   varchar,tinytext,text                  varchar


Sybase与java.sql.Types的对应 

Sybase                                    java.sql.Types
   binary                                    binary
   bit                                       bit
   char,nchar,                               char
   money,smallmoney,decimal                  decimal
   float                                     double
   int                                       integer
   image                                     longvarbinary
   text                                      longvarchar
   numeric                                   numeric
   real                                      real
   smallint                                  smallint
   datetime,smalldatetime                    timestamp
   tinyint                                   tinyint
   varbinar,timestamp                        varbinay
   nvarchar,varchar ,sysname                 varchar


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个利用Flink实现无状态流计算的示例代码,可以实现从Kafka读取数据,判断某个字段是否大于指定数值,并将结果保存到PostgreSQL数据库。 ```java import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer; import org.apache.flink.util.Collector; import java.util.Properties; public class FlinkKafkaToPostgreSQL { private static final String KAFKA_TOPIC = "test-topic"; private static final String KAFKA_BOOTSTRAP_SERVERS = "localhost:9092"; private static final String POSTGRESQL_URL = "jdbc:postgresql://localhost/testdb"; private static final String POSTGRESQL_USERNAME = "testuser"; private static final String POSTGRESQL_PASSWORD = "testpass"; public static void main(String[] args) throws Exception { // 创建 Flink 流式处理环境 final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // 配置 Kafka 消费者属性 Properties properties = new Properties(); properties.setProperty("bootstrap.servers", KAFKA_BOOTSTRAP_SERVERS); properties.setProperty("group.id", "flink-kafka-consumer"); // 创建 Kafka 消费者 FlinkKafkaConsumer<String> kafkaConsumer = new FlinkKafkaConsumer<>(KAFKA_TOPIC, new SimpleStringSchema(), properties); // 添加 Kafka 数据源到流处理环境 DataStream<String> kafkaStream = env.addSource(kafkaConsumer); // 对 Kafka 数据流进行处理,统计 longitude 大于 30 的个数 DataStream<Tuple2<String, Integer>> resultStream = kafkaStream.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) throws Exception { String[] fields = value.split(","); if (fields.length >= 2 && Double.parseDouble(fields[1]) > 30) { out.collect(new Tuple2<>("count", 1)); } } }).keyBy(0).sum(1); // 将结果保存到 PostgreSQL 数据库 resultStream.addSink(new PostgresSink(POSTGRESQL_URL, POSTGRESQL_USERNAME, POSTGRESQL_PASSWORD)); // 执行 Flink 流式处理任务 env.execute("FlinkKafkaToPostgreSQL"); } } ``` 需要注意的是,上述示例代码的`PostgresSink`是需要自己实现的,可以参考以下代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import org.apache.flink.api.common.functions.RuntimeContext; import org.apache.flink.streaming.api.functions.sink.RichSinkFunction; import org.apache.flink.streaming.api.functions.sink.SinkFunction; import org.apache.flink.types.Row; public class PostgresSink extends RichSinkFunction<Tuple2<String, Integer>> { private final String url; private final String username; private final String password; private Connection connection; private PreparedStatement preparedStatement; public PostgresSink(String url, String username, String password) { this.url = url; this.username = username; this.password = password; } @Override public void open(Configuration parameters) throws Exception { super.open(parameters); connection = DriverManager.getConnection(url, username, password); preparedStatement = connection.prepareStatement("INSERT INTO result (name, value) VALUES (?, ?)"); } @Override public void close() throws Exception { super.close(); if (preparedStatement != null) { preparedStatement.close(); } if (connection != null) { connection.close(); } } @Override public void invoke(Tuple2<String, Integer> value, Context context) throws Exception { try { preparedStatement.setString(1, value.f0); preparedStatement.setInt(2, value.f1); preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 需要注意的是,上述代码的`result`表需要自己先创建好,包含`name`和`value`两个字段
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值