JDBC访问数据库的步骤
JDBC访问数据库的步骤 1. 新建java项目:JDBC,新建 class文件:TestJDBC 2. JDBC用到的类库基本都位于java.sql.*包中,程序中引入该包: Import java.sql.*; 3. 添加要用的数据库中的包,找到数据库中的Driver.class文件: 项目名上点右键,Build Path—Add External Archives… 构建路径----添加外部归档 加入mysql-connector-java-5.1.12 4. 从包中找到要用的驱动,展开包,从中找到Driver.class,编程时,先把这个类的驱动new一个实例对象出来,告诉DriverManage,要连到哪种数据库上: 方法一:Class.forName(“com.mysql.jdbc.Driver”); Class: java.lang中的特殊类,类的装载器; forName: 会抛异常; com.mysql.jdbc.Driver中的Driver会new一个它的实例对象 方法二:new com.mysql.jdbc.Driver(); new出来后会自动向DriverManage注册。 5. 得到数据库的连接: Connection conn=DriverManager.getConnection (数据库的连接串,用户名,密码); 数据库的连接串:“jdbc:mysql://localhost:3306/books” 用户名: “root” 密码: “111” 程序调试: import java.sql.*; public class TestJDBC { public static void main(String[] args)throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection ("jdbc:mysql://localhost:3306/books?","root","111"); System.out.println("Connection Successful!"); } } * *对数据库表的操作通常有:executeQuery() executeUpdate() 6. (1)应用Statement接口 获取Statement对象,通过Statement对象执行SQL语句: Statement stmt=con.createStatement(); 执行SQL查询,返回给结果集对象: ResultSet rs=stmt. executeQuery(“select * from 表名”); 或 表名”+条件); 遍历访问数据表:while(rs.next()) 以各种类型显示输出:rs.get×××(“字段名”) (2)应用PreparedStatement接口 (p203) 执行数据更新executeUpdate():insert、update、delete SQL语句的创建:String sql=“sql命令”; 创建PreparedStatement的对象: pstmt=con. PrepareStatement(sql); 执行赋值操作(“?”占位符的用法): 执行:insert、update、delete result=pstmt. executeUpdate(); result类型为整型,返回一个整数,小于零操作没成功 7.关闭不再使用的 如:rs.close(); stmt.close(); con.close(); JDBC编程步骤总结: 1. Load the Driver:Class.forName(); 2. Connect the DateBase: DriveManager.getConnection() 3. Execute the SQL: (1) Connection.createStatement() Connection.prepareStatement(sql) (2)Statement.executeQuery() (3)Statement.executeUpdate() 4. Retrieve the result data: 循环取得结果while(rs.next()) 5. Show the result data:将遍历的结果记录显示出来 6.Close:结束时关闭 //完善的JDBC程序 import java.sql.*; public class TestJDBC { public static void main(String[] args) { Connection conn=null; Statement stmt=null; ResultSet rs=null; try{ Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/books?","root","111"); System.out.println("Connection Successful!"); stmt=conn.createStatement(); rs=stmt.executeQuery("select * from titles"); while (rs.next()){ System.out.println(rs.getString("isbn")+" "+rs.getString("title")); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); }finally{ try{ if(rs!=null){ rs.close(); rs=null; } if(stmt!=null){ stmt.close(); stmt=null; } if(con!=null){ con.close(); con=null; } }catch(SQLException e){ e.printStackTrace(); } } } JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。以下是对JDBC访问数据库的详细步骤的解析: 1. **导入JDBC库**: 在Java项目中,首先需要引入JDBC相关的类库,这些类通常位于`java.sql.*`包中。在Java源代码中,添加`import java.sql.*;`语句以引入所有必需的JDBC接口和类。 2. **加载数据库驱动**: 要与特定的数据库进行交互,必须先加载相应的数据库驱动。这可以通过调用`Class.forName()`方法完成,例如`Class.forName("com.mysql.jdbc.Driver")`。这个方法会根据指定的全限定类名加载并初始化类,对于MySQL,是`com.mysql.jdbc.Driver`。另一种方式是直接实例化驱动类,如`new com.mysql.jdbc.Driver()`,这会导致驱动自动注册到`DriverManager`。 3. **建立数据库连接**: 使用`DriverManager.getConnection()`方法创建数据库连接。需要提供连接字符串(包括数据库URL、数据库名称、端口号等)、用户名和密码。例如: ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/books", "root", "111"); ``` 4. **执行SQL语句**: JDBC提供了两种主要的方式来执行SQL语句:`Statement`接口和`PreparedStatement`接口。 - **Statement接口**:适用于执行静态SQL查询和更新。创建Statement对象,然后调用`executeQuery()`或`executeUpdate()`方法。例如: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name"); ``` 遍历结果集`ResultSet`,获取数据并处理。 - **PreparedStatement接口**:用于预编译SQL语句,提高效率并防止SQL注入。创建PreparedStatement对象,通过占位符`?`来设置参数,然后执行`executeQuery()`或`executeUpdate()`。例如: ```java String sql = "INSERT INTO table_name VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, value1); pstmt.setInt(2, value2); pstmt.executeUpdate(); ``` 5. **处理结果**: 如果是查询语句,使用`ResultSet`对象遍历结果,调用`next()`方法移动指针并使用`getXXX()`方法获取字段值。例如: ```java while (rs.next()) { System.out.println(rs.getString("column1") + " " + rs.getInt("column2")); } ``` 6. **关闭资源**: 操作完成后,务必关闭不再使用的资源,包括`ResultSet`、`Statement`和`Connection`对象,以释放系统资源。通常使用`try-catch-finally`结构确保关闭操作始终执行。例如: ```java finally { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } ``` 总结JDBC编程步骤: 1. 加载驱动:`Class.forName()`。 2. 连接数据库:`DriverManager.getConnection()`。 3. 执行SQL: - `Connection.createStatement()`创建Statement执行查询/更新。 - `Connection.prepareStatement(sql)`创建PreparedStatement预编译SQL。 4. 获取结果:循环`ResultSet`获取数据。 5. 显示结果:处理并显示遍历的结果。 6. 关闭资源:关闭`ResultSet`、`Statement`和`Connection`。 以上就是使用JDBC访问数据库的基本步骤,这适用于大多数关系型数据库,如MySQL、Oracle、SQL Server等。在实际开发中,为了更高效和安全,通常会使用ORM框架,如Hibernate或MyBatis,它们提供了更高级的抽象和自动化处理。
- bambo_sea2012-07-05内容详细,清晰,一看就懂,但是10分。。有点贵了吧~~
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深圳建设工程公司考勤休假管理规定.docx
- 深圳建设工程公司员工工作规范和行为准则.docx
- 深圳建设工程公司员工奖惩管理规定.docx
- 深圳建设工程公司资料管理制度.docx
- 空中俯视物体检测9-YOLOv5数据集合集.rar
- CA法模拟动态再结晶,晶粒正常长大,利用元胞自动机生成拓扑晶粒模型,参数可调 元胞胞自动机模拟动态再结晶母相晶粒生成 本程序基于曲率驱动机制以及热激活机制,matlab编写,本程序模拟奥氏体晶粒正
- 无人船 无人艇路径跟踪控制 fossen模型matlab simulink效果 基于观测器的LOS制导结合反步法控制 ELOS+backstepping
- Labview Ethernetip TCP网口通讯欧姆龙PLC OmronNX1P2NJ501NJ301PLC标签通讯 CIP通讯比Fins通讯更完美 1.自定义变量读写 2.支持 Bool单点或
- Python基于深度学习的垃圾分类目标检测系统
- 空中救援任务检测2-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 该模型采用离散化的龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来进行PLL得到速度和角度 当观测的电流实现与实际电流跟随时,可以从观测的反电势计算得
- Python毕业设计-基于深度学习的垃圾分类目标检测系统源码
- Python毕设基于深度学习的垃圾分类目标检测系统源码
- 《STM32单片机+2x180-SG90+2x360-SG90+OLED屏幕》源代码
- 本科毕设-基于三维卷积神经网络的卒中患者疲劳检测详细文档+全部资料+优秀项目+源码.zip
- 本科毕设-基于卷积神经网络的红外图像非均匀性校正详细文档+全部资料+优秀项目+源码.zip