JDBC
一、java中JDBC的连接模式:
1、Oracle8/8i/9i数据库(thin模式)
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= Connection(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= Connection(url,user,password);
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= Connection(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= Connection(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= Connection(url,user,password);
4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = Properties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= Connection(url, SysProps);
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= Connection(url,user,password);
4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = Properties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= Connection(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= Connection(url);
6、MySQL数据库
Class.forName("sql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= Connection(url);
7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
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= Connection(url);
6、MySQL数据库
Class.forName("sql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= Connection(url);
7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= Connection(url,user,password);
8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+RealPath("/Data/ReportDemo.mdb");
Connection conn = Connection(url,"","");
Statement ateStatement() ;
String user="myuser";
String password="mypassword";
Connection conn= Connection(url,user,password);
8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+RealPath("/Data/ReportDemo.mdb");
Connection conn = Connection(url,"","");
Statement ateStatement() ;
二、ODBC和JDBC
ODBC(Open DataBase Connectivity):开放式数据库互联。
是用纯C语言开发的用于访问多种格式数据库的应用程序API
支持应用程序以标准的ODBC函数和SQL语句操作各种不同类型的数据库。
ODBC效率较差而且驱动程序并非跨平台。
JDBC(Java Database Connectivity):java数据库连接
即数据库连接接口。是由一组由Java类、接口组成的API。
能够以平台独立的方式实现Java应用程序对不同数据库的访问。
三、java中JDBC连接所要用到的类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;//用于执行不带参的简单SQL
import java.sql.PreparedStatement;// 用于执行带参的SQL
1. DriverManager:
DriverManager是JDBC的管理层,作用于用户和驱动程序之间。
DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。
DriverManager处理驱动程序登陆时间限制、跟踪消息的显示等。
2. Connection
Connection与特定数据库的连接(会话),在连接上下文中执行 SQL 语句并返回结果。
DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上:
Connection con= Connection(url,login,password);
3. Statement
用于执行静态 SQL 语句并返回它所生成结果的对象。
一般情况下使用ateStatement()方法可以得到Statement实例。
三种Statement对象:
a) Statement:用于执行不带参数的简单SQL java的jdbc连接数据库语句
b) PreparedStatement:用于执行带或不带IN 参数的预编译SQL 语句;
c) CallableStatement:用于执行对数据库现有存储过程的调用。
常用的Statement方法:
execute():运行语句,返回是否有结果集。
executeQuerty():运行查询语句,返回ResultSet结果集。
executeUpdate():运行更新操作,返回更新的行数。
4. PreparedStatement
第一步:通过连接获得PreparedStatement对象,用占位符(?)的sql语句构造。
PrepareStatement pstm=con.prepareStatement(“select * from userinfo where id=?”);
第二步:设置参数
pstm.setString(1,”ganbin”);
第三步:执行SQL语句
uteQuery();
statement发送完整的Sql语句到数据库不是直接执行而是由数据库先编译,再运行。而PreparedStatement是先发送带参数的Sql语句,再发送一组参数值。如果是同构的sql语句,PreparedStatement的效率要比statement高。而对于异构的sql则两者效率差不多。
✓ 同构:两个Sql语句可编译部分是相同的,只有参数值不同。
✓ 异构:整个sql语句的格式是不同的
注意点:
✓ 1、使用预编译的Statement编译多条Sql语句一次执行
✓ 2、可以跨数据库使用,编写通用程序
✓ 3、能用预编译时尽量用预编译
5. ResultSet
Statement执行SQL语句时返回ResultSet结果集。
ResultSet提供的检索不同类型字段的方法,常用的有:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论