`
wind_bell
  • 浏览: 291968 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC的中级应用 注:转

    博客分类:
  • JDBC
阅读更多
在没有进入JDBC的高级应用前,我先来介绍一下一些"鲜为人知"的中级应用,说它是中
级应用,因为对JDBC有所了解的人都应该知道,说它"鲜为人知",我却没有在任何人的代
码中或我所见过的任何讲JDBC的书中有提到过,非常奇怪,这本来是JDBC规范啊.
    select * from table where datetimecol < now();这在mysql中可以正确运行.
    可是在另的数据库呢?
    select * from table where datatimecol < TO_DATE('yyyyMMMdd');
    这在oracle中可以,在mysql中可以吗?是什么让这些SQL语句不能通用?是数据库
专用涵数,那么我们要在改变数据库后除了个性Driver还要改代码吗?
    有没有通用的数据库涵数?有,只是我没见过几个人用过..................

    到目前为止,JDBC其实都实现了 SQL-2 ENTRY Level,而SQL-2 Transitional Level
也基本实现(我没有用过没有实现的).只有实现上面的规范,JDBC就实现以下"通用"功能.它
会把这些通用的语义,标题,存储过程,涵数转化为数据库对应的功能,所以你只要掌握这些通
用语法在JDBC中应用,就不要再为特定数据库编写特定代码:

    转义:{keyword parameter}

    还记得oracle中插入?吗?
    insert into table values ('aaa?aaa');什么?当然参数?不得不这样
    insert into table values ('aaa' | '?' | 'aaa');把?专门作为一个字符再和其
它字符连结.用通用转义:
    insert into table values ('aaa\?aaa') {escape \};
    
    存储过程(这个例是有人用过)
    {call procedure_Name[args]}
    对于有返回值的存储过程
    {? = call procedure_Name[args]}

    时间和日期:
    日期:{d 'yyyy-mm-dd'}
    在任何数据库中,都会把你给定的yyyy-mm-dd转化为该数据的日期形式

    insert into table values ('axman',{d '2003-07-28'});
    在oracle中会转换成:Jul 28,2003

    时间{t 'hh:mm:ss'},时间戳:{ts 'yyyy-mm-dd hh:mm:ss.f...'}

    标量涵数:
    {fn function([args])}
    这个可要记住了,再也不要调用数据库特定涵数了,只要
    insert into table values('axman',{fn CONCAT('1970-07-','11')});就可以在所有
实现SQL-2 Transitional Level的JDBC的数据库中运行,这些涵数要主包括:
    数学涵数,字符串涵数,日期涵数,系统涵数,转换涵数,因为涵数大多,我没法一个个列
出来,请你用上面刚学习的DatabaseMetadata类调用getNumericFunctions(),getStringFunctions()
getSystemFunctions(),getTimeDateFunctions 
分享到:
评论

相关推荐

    Hive Beeline连接报错:Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default

    在使用Hive的Beeline客户端进行连接时,可能会遇到错误提示"Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default"。这个错误通常意味着Beeline无法通过JDBC URL成功建立到Hive ...

    常用的数据库JDBC URL格式

    - **JDBC URL**:`jdbc:microsoft:sqlserver://&lt;server_name&gt;:&lt;port&gt;` - 默认端口:1433 - 如果服务器使用默认端口,则 `&lt;port&gt;` 可以省略。 ##### 2. Microsoft SQL Server 2005 及以上版本 - **驱动程序包名**...

    JDBC driver

    Sybase官方的JDBC驱动程序——jConnect 驱动类名:com.sybase.jdbc3.jdbc.SybDriver 连接URL:jdbc:sybase:Tds:host:port/database?property_name=value

    sqljdbc4-4.0.zip

    "jdbc:sqlserver://localhost:1433;databaseName=myDB", "username", "password"); ``` 这里,`com.microsoft.sqlserver.jdbc.SQLServerDriver`是JDBC驱动的类名,`jdbc:sqlserver://localhost:1433;databaseName=...

    oracle所有版本jdbc的jar包

    JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于在Java应用程序中连接和操作关系型数据库。它由一组接口和类组成,允许开发者编写数据库无关性的代码。 2. **Oracle JDBC驱动类型**: - ** ...

    Mysql JDBC Url参数说明

    jdbc:mysql://[hostname]:[port]/[database]?[parameters] ``` - `jdbc:mysql://` 是固定的协议前缀,表示使用MySQL的JDBC驱动。 - `[hostname]` 是MySQL服务器的IP地址或域名,如 `localhost` 或 `192.168.1.1`。 ...

    kingbaseV8 jdbc 驱动

    String url = "jdbc:kingbase://hostname:port/databasename"; String username = "your_username"; String password = "your_password"; try { Class.forName("com.kingbase.jdbc.Driver"); Connection conn = ...

    jdbc8.jar-oracle12

    "jdbc:oracle:thin:@//hostname:port/service_name", "username", "password"); ``` 其中,`hostname`是Oracle服务器地址,`port`是监听的TCP端口,`service_name`是Oracle服务名。 3. 执行SQL操作: 可以...

    sqljdbc4-4.0.jar

    在Java编程环境中,连接数据库是一项常见的任务,而SQLJDBC4-4.0.jar是Microsoft SQL Server数据库管理系统与Java应用程序之间交互的重要组件。这个jar文件是微软官方提供的Java Database Connectivity (JDBC) 驱动...

    连接MS SQLSERVER 的驱动jar包sqljdbc4-3.0.zip

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, ...

    JDBC驱动jar大全

    jdbc:mysql://&lt;hostname&gt;:&lt;port&gt;/&lt;database&gt;? ``` 其中,`&lt;hostname&gt;`是数据库服务器地址,`&lt;port&gt;`是MySQL服务监听的端口,默认为3306,`&lt;database&gt;`是数据库名,`&lt;parameters&gt;`可以包含如useSSL=false等连接...

    JDBC Driver 驱动包

    **正文** 在IT行业中,数据库是数据存储与管理的...无论是在Web应用、桌面应用还是服务端应用中,只要涉及到与数据库的交互,都离不开JDBC。理解并熟练使用这些驱动,能有效提升开发效率,确保数据的正确存储和检索。

    mysql jdbc driver

    String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 执行...

    sqljdbc_6.0.zip

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://&lt;服务器&gt;:&lt;端口&gt;;databaseName=&lt;数据库名&gt;", "&lt;用户名&gt;", "&lt;密码&gt;"); ``` 这里的`&lt;服务器&gt;`、`&lt;端口&gt;`、`&lt;数据库名&gt;`、`&lt;用户名&gt;`和`&lt;密码&gt;`...

    各种数据库的jdbc(mysql,orcal ,derby,hive,postgresql,monetdb-jdbc)

    连接MonetDB时,需要MonetDB JDBC驱动(monetdb-jdbc.jar),并提供如"jdbc:monetdb://localhost:50000/mydatabase"的数据库URL。 以上数据库的JDBC连接都遵循类似的步骤:加载驱动、建立连接、创建Statement或...

    jdbc_mysql

    java的jdbc连接数据库并使用操作,java的jdbc连接数据库并使用操作

    常用 JDBC 驱动名字和 URL 列表

    jdbc:odbc:name 用 COM.ibm.db2.jdbc.net.DB2Driver 连接到 DB2 数据库 一个 DB2 URL 的示例: jdbc:db2://aServer.myCompany.com:50002/name 用 com.sybase.jdbc.SybDriver连接到 Sybase 数据库 一个 Sybase URL...

    JDBC连接字符串.doc

    每个数据库驱动都有其特定的URL格式,例如,`jdbc:mysql:`前缀表示连接到MySQL,而`jdbc:sqlserver:`表示连接到SQL Server。`jdbc:oracle:thin:`是Oracle数据库的“瘦”驱动,它不依赖本地Oracle客户端库。 在实际...

    elasticsearch6.3的jdbc依赖

    jdbc:mysql://localhost:3306/mydatabase?user=myuser&password=mypassword ``` 6. **支持的数据库**:Elasticsearch JDBC支持多种主流数据库,包括MySQL、PostgreSQL、Oracle、SQL Server等。 7. **同步策略**...

Global site tag (gtag.js) - Google Analytics