JDBC连接数据库经验技巧集萃
一、连接各种数据库方式速查表
下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB为数据库名
Connection conn= DriverManager.getConnection(url);
6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);
7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
下面是使用JDBC连接MySql的一个小的教程
1、查找驱动程序
MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动程序,不需做其他配置。
2、动态指定classpath
如果需要执行时动态指定classpath,就在执行时采用-cp方式。否则将上面的.jar文件加入到classpath环境变量中。
3、加载驱动程序
Class.forName(com.mysql.jdbc.Driver);
System.out.println(Success loading Mysql Driver!);
}catch(Exception e)
{
System.out.println(Error loading Mysql Driver!);
e.printStackTrace();
}
import oracle.sql.*;
import oracle.jdbc.pool.OracleDataSource;
public class JdbcOracle {
public static void main(String[] args) {
/**URL格式:drivername:@driver_information
1,drivername主要有以下两种
jdbc:oracle:thin (thin驱动程序)
jdbc:oracle:oci (oci驱动程序)
2,driver_information
host_nameort:database_sid
*/
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@localhost:1521:ORADB";
String username = "scott";
String password = "tiger";
try {
/**一、注册驱动程序
方法一Class.forName("oracle.jdbc.OracleDriver";
*/
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
//二、打开数据库连接
/**方法一,使用oracle数据源对象?
oracle.jdbc.pool.OracleDataSource ds=new oracle.jdbc.pool.OracleDataSource();
ds.setServerName("localhost";
ds.setDatabaseName("ORADB"; //数据库存名
ds.setDriverType("oci"; //要使用的JDBC驱动程序(OracleDatasore的扩展)
ds.setURL("jdbc:oracle:thin:@localhost:1521:ORADB"; //指定数据库的URL(OracleDataSource的扩展)
ds.setDataSourceName(""; //底层数据源的名称
ds.setNetworkProtocol("tcp";//用于数据库通信的协议
ds.setPortNumber(1521);//端口号
ds.setUser("scott";
ds.setPassword("tiger";
Connection conn=ds.getConnection();
*/
//方法二、使用Drivermanger
conn = DriverManager.getConnection(url, username, password);
//设置事务提交模式
//conn.setAutoCommit(true);
//若禁止了自动提交模式,那么在关闭Connection对象时会执行一次自动隐式提交,以保证还没有提交的所有DML语句被自动提交
conn.setAutoCommit(false);
//三、创建JDBC Statement对象
stmt = conn.createStatement();
//PreparedStatement pstmt=conn.prepareStatement("带有参数的SQL语句";
//CallableStatement cstmt=conn.prepareCall("调用存储过程的语句";
//四、从数据库获取行
/**select 语句用executeQuery()
insert,update,delete语句用executeUpdate()
若预先不知道要执行的SQL语句类型,那么用execute()
*/
rs = stmt.executeQuery("select id,name,age,sex,birth from employee";
//五、从数据库获取行
while (rs.next()) {
int id = rs.getInt("id";
String name = rs.getString("name";
int age = rs.getInt("age";
String sex = rs.getString("sex";
Date birth = rs.getDate("birth";
}
//rs.close();
//六、向数据库中添加行(注:月份的编码是从0开始的,因此月份1代表2月)
java.sql.Date date = new java.sql.Date(82, 10, 05);
int i = stmt.executeUpdate("insert into employee values" +
"(1,'qds',22,'1',TO_DATE(date,'YYYY,MM,DD'))";
//七、修改数据中的行
int j = stmt.executeUpdate("update employee set age=21 where id=1";
//八、从数据库中删除行
int k = stmt.executeUpdate("delete from employee set id=1";
//九、处理数据库的NULL值方法一:使用结果集对象的wasNull方法判断
conn.commit();
rs = stmt.executeQuery(
"select id,type_id,prod_name from product where id=1";
//此次假设type_id列为Null值
System.out.println("id=" + rs.getInt("id");
System.out.println("type_id=" + rs.getInt("type_id");
if (rs.wasNull()) {
System.out.println("type_id was null!";
}
System.out.println("prod_name=" + rs.getString("prod_name");
//九、处理数据库的NULL值方法二:使用JAVA包装器类.因为JAVA包装器类可以赋于NULL值
//java.lang.Integer typeId=(java.lang.Integer)rs.getObject("type_id";
//System.out.println(typeId);此时typeId的值为Null
//在向数据库插入或更新某一行为NULL值时,也可以使用JAVA包装器对象
//java.lang.Double price=null;
//int ii=stmt.executeUpdate("update products set price="+price+" where id=12";
rs.close();
//十,执行数据定义语言语句(DDL:CREATE,ALTER,DROP)----采用execute()方法执行DDL语句
//执行DDL语句会导致一次隐式提交,因此,如果你在发出DDL语句之前执行了一些未提交的DML语句,那么这些DML语句将被提交
boolean result = stmt.execute("create table customers(" +
"id integer constraint customers_pK primary key," +
"first_name varchar2(10) not null," +
"last_name varchar2(10) not null," +
"dob date," +
"phone varchar2(15)" +
""
;
if (result == true) {
System.out.println("The table has Created!";
}
else {
System.out.println("The table hasn't Create";
}
//-------------------------------------------------------------------------
}
catch (Exception e) {
System.out.println("error: " + e);
try {
conn.rollback();
}
catch (SQLException sqle) {}
}
finally {
try {
if (rs != null)
rs.close();
}
catch (SQLException sqle) {
System.out.println("SQLState: " + sqle.getSQLState());
System.out.println("SQLErrorCode: 错误代码" + sqle.getErrorCode());
System.out.println("SQLErrorMessage:错误情况的字符串 " + sqle.toString());
}
try {
if (stmt != null)
stmt.close();
}
catch (SQLException sqle1) {
System.out.println("SQLState: " + sqle1.getSQLState());
System.out.println("SQLErrorCode: 错误代码" + sqle1.getErrorCode());
System.out.println("SQLErrorMessage:错误情况的字符串 " + sqle1.toString());
}
try {
if (conn != null)
conn.close();
}
catch (SQLException sqle2) {
System.out.println(sqle2.toString());
System.out.println(sqle2.getSQLState());
System.out.println(sqle2.getErrorCode());
}
}
}
}
JDBC连接数据库经验技巧集萃相关推荐
- JDBC连接数据库经验集萃
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.然而各个开 ...
- JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。”问题解决方法
JDBC连接数据库遇到的"驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接."问题解决方法! 时间:2018-12-20 本文章向大家介绍JDB ...
- JDBC编程:1(使用JDBC连接数据库)
使用JDBC连接数据库 下载连接MySQL数据库的驱动 这个jar包可以在官网上对照着你的MySQL版本来下载,这里我下载的是最新的8.0.20版本, 这里是8.0.20版本的驱动包:mysql-co ...
- 如何使用jdbc连接数据库
如何使用jdbc连接数据库 数据库是一个有组织的数据集合.数据库管理系统以一种与数据库格式一致的方式,提供了存储和组织数据的机制.数据库管理系统允许在不考虑内部数据表示的情况下访问和存储数据. jav ...
- Java七步创建以JDBC连接数据库的程序
JDBC连接数据库 ◆ 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java. ...
- JDBC连接数据库过程
JDBC连接数据库过程 时间: 2009-03-03 20:43来源: 作者: 点击: <script src="http://www.topkc.cn/plus/count.php? ...
- JDBC连接数据库总结
JDBC连接数据库 一下以mysql 数据库连接来说明 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(J ...
- 完整java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- Jdbc连接数据库大全
Jdbc连接数据库大全 oracle Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); Stringu ...
最新文章
- python pygame模块按键延迟_如何在python/pygame中延迟一件事情而不延迟其他事情?...
- 虚幻UE4常见问题最全集合
- plsql objects 过一段时间就会未连接oracle_记一次生产数据库故障排查--连接管理等待事件...
- 数据库分片教程mysql_简述MySQL分片中快速数据迁移
- mysql主从同步从库上Slave_IO_Running: Connecting问题
- 常见Linux面试题总结
- Vue移动端项目——Vant 移动端 REM 适配
- 新萝卜家园windows11 64位官网正版系统v2021.07
- html 怎么让tr的css覆盖td的_通达OA上传漏洞之变量覆盖分析
- 高可用之KeepAlived(一):基本概念和配置文件分析
- android之mipmap文件夹
- Ubnutu_vim配置YouCompleteMe
- verilog coding style_阿里云收购长亭科技后 腾讯云也完成了对CODING的收购
- matlab求滤波器的相频特性,matlab仿真一阶低通滤波器幅频特性和相频特性.docx
- 某头条安卓逆向学习----改机/逆向/Hook/协议
- 用云原生的思维践行云原生,一切皆服务
- 腾讯云--OOS对象存储服务--java程序封装
- 分布式GNN系统环境配置
- 吴永祥:政府大数据服务平台建设之道
- HTML+CSS写一个三角形(原理+实例)
热门文章
- python中find函数的使用方法_Python教程-String 字符串使用教程
- 临时限速服务器系统ppt,临时限速系统讲解.pptx
- 部署集群linux Oracle VM VirtualBox vagrant
- RabbitMQ下载与安装(window版) 自我总结
- 大一计算机上机考试模拟试题,计算机等级考试二级上机模拟试题(1)
- python函数和代码复用思维导图_Python语言程序---代码复用与函数递归(二)
- pycharm 设置虚拟工作空间_七、连Pycharm都不知道怎么用,学什么Python
- java操作文件_java操作FTP,实现文件上传下载删除操作
- 学生宿舍管理项目开发计划书_第六组学生宿舍管理系统项目计划书
- python3怎么安装mysql_Python3.7安装mysqlclient