在没有进入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"。这个错误通常意味着Beeline无法通过JDBC URL成功建立到Hive ...
- **JDBC URL**:`jdbc:microsoft:sqlserver://<server_name>:<port>` - 默认端口:1433 - 如果服务器使用默认端口,则 `<port>` 可以省略。 ##### 2. Microsoft SQL Server 2005 及以上版本 - **驱动程序包名**...
Sybase官方的JDBC驱动程序——jConnect 驱动类名:com.sybase.jdbc3.jdbc.SybDriver 连接URL:jdbc:sybase:Tds:host:port/database?property_name=value
"jdbc:sqlserver://localhost:1433;databaseName=myDB", "username", "password"); ``` 这里,`com.microsoft.sqlserver.jdbc.SQLServerDriver`是JDBC驱动的类名,`jdbc:sqlserver://localhost:1433;databaseName=...
JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于在Java应用程序中连接和操作关系型数据库。它由一组接口和类组成,允许开发者编写数据库无关性的代码。 2. **Oracle JDBC驱动类型**: - ** ...
jdbc:mysql://[hostname]:[port]/[database]?[parameters] ``` - `jdbc:mysql://` 是固定的协议前缀,表示使用MySQL的JDBC驱动。 - `[hostname]` 是MySQL服务器的IP地址或域名,如 `localhost` 或 `192.168.1.1`。 ...
String url = "jdbc:kingbase://hostname:port/databasename"; String username = "your_username"; String password = "your_password"; try { Class.forName("com.kingbase.jdbc.Driver"); Connection conn = ...
"jdbc:oracle:thin:@//hostname:port/service_name", "username", "password"); ``` 其中,`hostname`是Oracle服务器地址,`port`是监听的TCP端口,`service_name`是Oracle服务名。 3. 执行SQL操作: 可以...
在Java编程环境中,连接数据库是一项常见的任务,而SQLJDBC4-4.0.jar是Microsoft SQL Server数据库管理系统与Java应用程序之间交互的重要组件。这个jar文件是微软官方提供的Java Database Connectivity (JDBC) 驱动...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, ...
jdbc:mysql://<hostname>:<port>/<database>? ``` 其中,`<hostname>`是数据库服务器地址,`<port>`是MySQL服务监听的端口,默认为3306,`<database>`是数据库名,`<parameters>`可以包含如useSSL=false等连接...
**正文** 在IT行业中,数据库是数据存储与管理的...无论是在Web应用、桌面应用还是服务端应用中,只要涉及到与数据库的交互,都离不开JDBC。理解并熟练使用这些驱动,能有效提升开发效率,确保数据的正确存储和检索。
String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 执行...
Connection conn = DriverManager.getConnection("jdbc:sqlserver://<服务器>:<端口>;databaseName=<数据库名>", "<用户名>", "<密码>"); ``` 这里的`<服务器>`、`<端口>`、`<数据库名>`、`<用户名>`和`<密码>`...
连接MonetDB时,需要MonetDB JDBC驱动(monetdb-jdbc.jar),并提供如"jdbc:monetdb://localhost:50000/mydatabase"的数据库URL。 以上数据库的JDBC连接都遵循类似的步骤:加载驱动、建立连接、创建Statement或...
java的jdbc连接数据库并使用操作,java的jdbc连接数据库并使用操作
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...
每个数据库驱动都有其特定的URL格式,例如,`jdbc:mysql:`前缀表示连接到MySQL,而`jdbc:sqlserver:`表示连接到SQL Server。`jdbc:oracle:thin:`是Oracle数据库的“瘦”驱动,它不依赖本地Oracle客户端库。 在实际...
jdbc:mysql://localhost:3306/mydatabase?user=myuser&password=mypassword ``` 6. **支持的数据库**:Elasticsearch JDBC支持多种主流数据库,包括MySQL、PostgreSQL、Oracle、SQL Server等。 7. **同步策略**...