




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Java使用JDBC连接数据库的详细步骤Connectionconn=null;
Statementstmt=null;//先创建连接对象和操作对象并且引用为空,是为了对象变量的生命周期不仅仅局限于try语句块内,而是在整个main方法内,方便后续finally语句块内释放资源
try{
//1、注册驱动
Driverdriver=newcom.mysql.jdbc.Driver();//多态,父类型引用指向子类型对象
DriverManager.registerDriver(driver);
//2、获取连接
url包括哪几部分:
Port
eg:1:80/index.html
http://通信协议
1IP地址
80端口号
index.html资源名
//staticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)
Stringurl=jdbc:mysql://:3306/hello
Stringuser=root
System.out.println(
Stringpassword=rota
conn=DriverManager.getConnection(url,user,password);
System.out.println(数据库连接对象:+conn);//数据库连接对象com.mysql.jdbc.JDBC4Connection@1ae369b7
//3、获取数据库操作对象
//Statement类中createStatement()创建一个Statement对象来将SQL语句发送到数据库。
stmt=conn.createStatement();
//4、执行sql语句
//intexecuteUpdate(Stringsql)
//专门执行DML语句
//返回值是影响数据库中的记录条数
intcount=stmt.executeUpdate(updatedeptsetdname=销售部,loc=合肥wheredeptno=20;
System.out.println(count==1保存成功:保存失败
//5、处理查询结果集
}catch(SQLExceptione){
e.printStackTrace();
}finally{
//6、释放资源
//从小到大依次关闭
//finally语句块内的语句一定会执行!
if(stmt!=null){
try{
stmt.close();
catch(SQLExceptione){
e.printStackTrace();
if(conn!=null){
try{
conn.close();
catch(SQLExceptione){
e.printStackTrace();
}
第二次优化:(比较两种注册驱动的方法)
packagecom.zdx.source.code.jdbc;
JDBC完成Delete
importjava.sql.*;
publicclassJDBCTest02{
publicstaticvoidmain(String[]args){
//1、注册驱动
//2、获取连接
//3、获取数据库操作对象
//4、执行sql语句
//5、获取查询结果集
//6、释放资源
Connectionconn=null;
Statementstmt=null;
try{
Driverdriver=newcom.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
Stringurl=jdbc:mysql://:3306/mydatabase
Stringuser=root
Stringpassword=146
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
intcount=stmt.executeUpdate(deletefromdeptwheredeptno=50
System.out.println(count==1删除成功:删除失败
}catch(SQLExceptione){
e.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
if(stmt!=null){
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
第三次优化:(最佳注册驱动获取连接)
packagecom.zdx.source.code.jdbc;
注册驱动的另一种方式
importjava.sql.*;
publicclassJDBCTest03{
publicstaticvoidmain(String[]args){
try{
//注册驱动
Class.forName(com.mysql.jdbc.Driver
//获取连接
Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/mydatabase,root,146
System.out.println(conn);
}catch(SQLExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
第四次优化:(使用资源绑定器)
packagecom.zdx.source.code.jdbc;
使用资源绑定器
importjava.sql.*;
importjava.util.*;
publicclassJDBCTest04{
publicstaticvoidmain(String[]args){
ResourceBundlebundle=ResourceBundle.getBundle(jdbc
Stringdriver=bundle.getString(driver
Stringurl=bundle.getString(url
Stringuser=bundle.getString(user
Stringpassword=bundle.getString(password
Connectionconn=null;
Statementstmt=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
intcount=stmt.executeUpdate(insertintodept(deptno,dname,loc)values(50,人事部,北京
System.out.println(count==1保存成功:保存失败
}catch(SQLExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
if(stmt!=null){
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
第五次优化:(对操作结果集的处理)
packagecom.zdx.source.code.jdbc;
执行DQL语句
importjava.sql.*;
importjava.util.*;
publicclassJDBCTest05{
publicstaticvoidmain(String[]args){
//1、注册驱动
//2、建立连接
//3、获取数据库操作对象
//4、执行sql语句
//5、获取查询结果集
//6、释放资源
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
try{
ResourceBundlerb=ResourceBundle.getBundle(jdbc
Stringdriver=rb.getString(driver
Stringurl=rb.getString(url
Stringuser=rb.getString(user
Stringpassword=rb.getString(password
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
rs=stmt.executeQuery(selectempno,ename,salfromemp
while(rs.next()){
Stringempno=rs.getString(1);
Stringename=rs.getString(2);
Stringsal=rs.getString(3);
System.out.println(empno+,+ename+,+sal);
//按下标取出,程序不健壮
Stringempno=rs.getString(empno
Stringename=rs.getString(ename
Stringsal=rs.getString(sal
System.out.println(empno+,+ename+,+sal);
//以指定的格式取出
intempno=rs.getInt(1);
Stringename=rs.getString(2);
doublesal=rs.getDouble(3);
System.out.println(empno+,+ename+,+(sal+100));
intempno=rs.getInt(empno
Stringename=rs.getString(ename
doublesal=rs.getDouble(sal
System.out.println(empno+,+ename+,+(sal+200));
}catch(Exceptione){
e.printStackTrace();
}finally{
if(rs!=null){
try{
rs.close();
}catch(Exceptione){
e.printStackTrace();
if(stmt!=null){
try{
stmt.close();
}catch(Exceptione){
e.printStackTrace();
if(conn!=null){
try{
conn.close();
}catch(Exceptione){
e.printStackT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省宜春巿高安中学2024-2025学年高三3月第一次模拟化学试题含解析
- 江苏省启东汇龙中学2025届初三第二次质检生物试题含解析
- 天津海运职业学院《新能源钻井课程设计》2023-2024学年第二学期期末试卷
- 辽宁建筑职业学院《食品工厂机械与设备A》2023-2024学年第一学期期末试卷
- 上海市崇明区2025届初三化学试题第二次诊断性测验试题含解析
- 曲靖市重点中学2025年初三下学期期末联考生物试题理试题含解析
- 上海商学院《体育测量与统计》2023-2024学年第二学期期末试卷
- 江苏省句容市华阳片区达标名校2024-2025学年初三年第二学期期中语文试题试卷含解析
- 可克达拉职业技术学院《广播电视写作(一)》2023-2024学年第二学期期末试卷
- 南昌大学《正书创作》2023-2024学年第一学期期末试卷
- 《电磁感应原理解析》课件
- 成都输液剂项目可行性研究报告参考范文
- 2025年二级注册建筑师资格考试《建筑结构、建筑物理与设备》真题卷(附答案)
- 锂电池基础知识培训课件
- 2025-2030城市燃气产业行业市场现状供需分析及投资评估规划分析研究报告
- 紧固件制造企业ESG实践与创新战略研究报告
- 优化医患沟通提高肿瘤治疗效果的途径
- 2025北京九年级(上)期末语文汇编:文言文阅读
- 越出站界调车RAILWAY课件
- 脊柱损伤搬运操作
- 2024年陕西高中学业水平合格考试化学试卷真题(含答案详解)
评论
0/150
提交评论