JAVAJDBC.docx
- 文档编号:2875077
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:7
- 大小:132.73KB
JAVAJDBC.docx
《JAVAJDBC.docx》由会员分享,可在线阅读,更多相关《JAVAJDBC.docx(7页珍藏版)》请在冰豆网上搜索。
JAVAJDBC
JDBC
一、java中JDBC的连接模式:
1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:
oracle:
thin:
@localhost:
1521:
orcl";//orcl为数据库的SID
Stringuser="test";
Stringpassword="test";
Connectionconn=DriverManager.getConnection(url,user,password);
2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
Stringurl="jdbc:
db2:
//localhost:
5000/sample";//sample为你的数据库名
Stringuser="admin";
Stringpassword="";
Connectionconn=DriverManager.getConnection(url,user,password);
3、SqlServer7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=mydb";
//mydb为数据库
Stringuser="sa";
Stringpassword="";
Connectionconn=DriverManager.getConnection(url,user,password);
4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
Stringurl="jdbc:
sybase:
Tds:
localhost:
5007/myDB";//myDB为你的数据库名
PropertiessysProps=System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connectionconn=DriverManager.getConnection(url,SysProps);
5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
Stringurl=
"jdbc:
informix-sqli:
//123.45.67.89:
1533/myDB:
INFORMIXSERVER=myserver;
user=testuser;password=testpassword";//myDB为数据库名
Connectionconn=DriverManager.getConnection(url);
6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Stringurl="jdbc:
mysql:
//localhost:
3306/myDB?
user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connectionconn=DriverManager.getConnection(url);
7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
Stringurl="jdbc:
postgresql:
//localhost/myDB"//myDB为数据库名
Stringuser="myuser";
Stringpassword="mypassword";
Connectionconn=DriverManager.getConnection(url,user,password);
8、access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:
odbc:
Driver={MicroSoftAccessDriver(*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connectionconn=DriverManager.getConnection(url,"","");
StatementstmtNew=conn.createStatement();
二、ODBC和JDBC
ODBC(OpenDataBaseConnectivity):
开放式数据库互联。
是用纯C语言开发的用于访问多种格式数据库的应用程序API
支持应用程序以标准的ODBC函数和SQL语句操作各种不同类型的数据库。
ODBC效率较差而且驱动程序并非跨平台。
JDBC(JavaDatabaseConnectivity):
java数据库连接
即数据库连接接口。
是由一组由Java类、接口组成的API。
能够以平台独立的方式实现Java应用程序对不同数据库的访问。
三、java中JDBC连接所要用到的类
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;//用于执行不带参的简单SQL
importjava.sql.PreparedStatement;//用于执行带参的SQL
1.DriverManager:
DriverManager是JDBC的管理层,作用于用户和驱动程序之间。
DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。
DriverManager处理驱动程序登陆时间限制、跟踪消息的显示等。
2.Connection
ØConnection与特定数据库的连接(会话),在连接上下文中执行SQL语句并返回结果。
ØDriverManager的getConnection()方法建立在JDBCURL中定义的数据库Connection连接上:
ØConnectioncon=DriverManager.getConnection(url,login,password);
3.Statement
Ø用于执行静态SQL语句并返回它所生成结果的对象。
Ø一般情况下使用connection.createStatement()方法可以得到Statement实例。
Ø三种Statement对象:
a)Statement:
用于执行不带参数的简单SQL语句
b)PreparedStatement:
用于执行带或不带IN参数的预编译SQL语句;
c)CallableStatement:
用于执行对数据库现有存储过程的调用。
Ø常用的Statement方法:
execute():
运行语句,返回是否有结果集。
executeQuerty():
运行查询语句,返回ResultSet结果集。
executeUpdate():
运行更新操作,返回更新的行数。
4.PreparedStatement
Ø第一步:
通过连接获得PreparedStatement对象,用占位符(?
)的sql语句构造。
PrepareStatementpstm=con.prepareStatement(“select*fromuserinfowhereid=?
”);
Ø第二步:
设置参数
pstm.setString(1,”ganbin”);
Ø第三步:
执行SQL语句
rs=pstm.excuteQuery();
statement发送完整的Sql语句到数据库不是直接执行而是由数据库先编译,再运行。
而PreparedStatement是先发送带参数的Sql语句,再发送一组参数值。
如果是同构的sql语句,PreparedStatement的效率要比statement高。
而对于异构的sql则两者效率差不多。
✓同构:
两个Sql语句可编译部分是相同的,只有参数值不同。
✓异构:
整个sql语句的格式是不同的
注意点:
✓1、使用预编译的Statement编译多条Sql语句一次执行
✓2、可以跨数据库使用,编写通用程序
✓3、能用预编译时尽量用预编译
5.ResultSet
Statement执行SQL语句时返回ResultSet结果集。
ResultSet提供的检索不同类型字段的方法,常用的有:
a)getString():
获得在数据库里是varchar、char等数据类型的对象。
b)getFloat():
获得杂数据库里是Float类型的对象。
c)getDate():
获得在数据库里面是Date类型的数据。
d)getBoolean():
获得在数据库里面是Boolean类型的数据。
e)getObject():
在Sql中无对应类型,获得序列化对象。
四、JDBC操作流程
五、JDBC事务编程
1、事务是具备以下特征(ACID)的工作单元:
Ø原子性(Atomicity)—如果因故障而中断,则所有结果均被撤消;
Ø一致性(Consistency)—事务的结果保留不变;
Ø孤立性(Isolation)—中间状态对其它事务是不可见的;
Ø持久性(Durability)—已完成的事务结果上持久的。
Ø原子操作,也就是不可分割的操作,必须一起成功一起失败。
2、事务处理三步曲:
(事务是一个边界)
Øconnection.setAutoCommit(false);//把自动提交关闭
Ø正常的DB操作//若有一条SQL语句失败了,自动回滚
Ømit()//主动提交或connection.rollback()//主动回滚
例:
try{
con.setAutoCommit(false);//step①把自动提交关闭
Statementstm=con.createStatement();
stm.executeUpdate("insertintoperson(id,name,age)values(520,'X-Man',18)");
stm.executeUpdate("insertintoPerson(id,name,age)values(521,'Super',19)");
//step②正常的DB操作
mit();//step③成功主动提交
}catch(SQLExceptione){
try{
con.rollback();
}catch(Excepti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAJDBC
![提示](https://static.bdocx.com/images/bang_tan.gif)