JDBC连接数据库概述

直接介绍JDBC连接数据库的流程及其原理

创建一个以JDBC连接数据库的程序,包含7个步骤

1、加载JDBC数据库驱动

在连接数据库之前,首先要加载想要连接的数据库的驱动,就是数据库厂商提供的jar包,将它加载到JVM(Java虚拟机)中,这通过java.lang.Class类的静态方法forName(String className)实现。

例如:

01
try{
 

03
//加载MySql的驱动类 
04
//不同的数据库提供的驱动包是不一样的,在下面大家将会看到常用的驱动类。
05
Class.forName("com.mysql.jdbc.Driver") ; 
06
System.out.println("成功加载驱动");
 
 
08
}catch(ClassNotFoundException e){
 
 
10
System.out.println("找不到驱动程序类 ,加载驱动失败!");
 
 
12
e.printStackTrace() ;
 
 
14
}

成功加载后,会将Driver类的实例注册到DriverManager类中,我们在下一步中,就可以直接调用类中的方法。

2、提供JDBC连接的URL

•连接URL定义了连接数据库时的协议、子协议、数据源标识。

•书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

1 String url = "jdbc:mysql://127.0.0.1:3301/shopcar";//数据库连接字符串
2 String usename = "root";
3 String password = "123456";

3、创建数据库的连接

•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

•使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。

1 try{
2 Connection conn = DriverManager.getConnection(url,usename,password);//创建Connection连接
3
4 }catch(SQLException se){
5     System.out.println("数据库连接失败!");
6     se.printStackTrace() ;
7 }

4、创建一个Statement

•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。

具体的实现方式:

1
Statement stmt = con.createStatement() ; 
2
PreparedStatement pstmt = con.prepareStatement(sql) ; 
3
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate

和execute

1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。

2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或

DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。

具体实现的代码:

1
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; 
2
int rows = stmt.executeUpdate("INSERT INTO ...") ; 
3
boolean flag = stmt.execute(String sql) ; 

6、处理结果

两种情况:

1、执行更新返回的是本次操作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。

• 使用结果集(ResultSet)对象的访问方法获取数据:

1 while(rs.next()){
2 String name = rs.getString("name") ;
3 String pass = rs.getString(1) ; // 此方法比较高效
4 }

(列是从左到右编号的,并且从列1开始)

7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

 1 if(rs != null){ // 关闭记录集
 2 try{
 3     rs.close();
 4 }catch(SQLException e){
 5     e.printStackTrace();
 6  }
 7 }
 8
 9 if(srmt != NULL){//关闭申明
10 try{
11   stmt.close();
12 }catch(SQLException e){
13     e.printStackTrace();
14   }
15 }
16
17 if(conn != null){//关闭连接对象
18 try{
19   conn.close();
20 }catch(SQLException e){
21     e.printStackTrace();
22  }
23 }

总结:在此,完整的演示一个连接数据库的实例

 1 try{
 2     Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,注册到驱动管理器
 3     String url = "jdbc:mysql://127.0.0.1:3301/shopcar";//数据库连接字符串
 4     String usename = "root";
 5     String password = "123456";
 6     Connection conn = DriverManager.getConnection(url,usename,password);//创建Connection连接
 7     // statement用来执行SQL语句
 8     Statement stmt = conn.createStatement();
 9     // 结果集
10     ResultSet rs = stmt.executeQuery("select * from `goods1`");
11     // student 为你表的名称
12     while (rs.next()) {
13         application.setAttribute("id", rs.getString("id"));
14         application.setAttribute("goods_name", rs.getString("goods_name"));
15         application.setAttribute("goodspic", rs.getString("goodspic"));
16         application.setAttribute("goods_pri", rs.getString("goods_pri"));
17         application.setAttribute("goods_name_en", rs.getString("goods_name_en"));
18         /* String id = (rs.getString("id"));
19         String goods_name = (rs.getString("goods_name"));
20         String goodspic = (rs.getString("goodspic"));
21         String goods_pri = (rs.getString("goods_pri"));
22         String goods_name_en = (rs.getString("goods_name_en")); */
23 %>
24         <tr>
25             <td><%=application.getAttribute("id") %></td>
26             <td><img src="<%=application.getAttribute("goodspic") %>"><%=application.getAttribute("goods_name") %></td>
27             <td>¥<%=application.getAttribute("goods_pri") %></td>
28             <td><input type="text" name="<%=application.getAttribute("goods_name_en") %>" id="" value="" placeholder="0"></td>
29         </tr>
30 <%
31
32         }
33
34     }catch(ClassNotFoundException e){
35         e.printStackTrace();
36     }catch(SQLException e){
37         e.printStackTrace();
38     }
 1     <%
 2         try {
 3             Class.forName("com.mysql.jdbc.Driver");
 4             String url = "jdbc:mysql://127.0.0.1:3301/test";
 5             String username = "root";
 6             String password = "123456";
 7             Connection conn = DriverManager.getConnection(url, username,
 8                     password);
 9
10             PreparedStatement preStmt = conn
11                     .prepareStatement("SELECT name,password FROM user WHERE name like ? ");
12
13             String pram = request.getParameter("parm");
14             preStmt.setString(1, "%"+pram+"%");//给参数(?)赋值
15             ResultSet rs = preStmt.executeQuery();//执行SQL语句
16     %>
17     <label>顾客信息</label>
18     <table border="1">
19         <tr>
20             <td>姓名:</td>
21             <td>密码:</td>
22         </tr>
23
24         <%
25             while (rs.next()) {
26                      String name = new String(rs.getString("name").getBytes(
27                             "iso-8859-1"));
28                     name += new String(rs.getString("password").getBytes(
29                             "iso-8859-1"));
30         %>
31         <tr>
32         <%--     <td><%=new String(rs.getString("name")).getBytes("iso-8859-1")%></td> --%>
33             <td><%=rs.getString("name")    %></td>
34             <td><%=rs.getString("password") %></td>
35         </tr>
36         <%
37             }
38         %>
39     </table>
40
41     <%
42         } catch (SQLException e) {
43             e.toString();
44         } finally {
45             if (rs != null)
46                 try {
47                     rs.close();
48                 } catch (SQLException e) {
49                     out.print(e.toString());
50                 } finally {
51                     try {
52                         if (preStmt != null)
53                             preStmt.close();
54                     } catch (SQLException e) {
55                         e.toString();
56                     } finally {
57                         try {
58                             if (conn != null)
59                                 conn.close();
60                         } catch (SQLException e) {
61                             e.toString();
62                         }
63                     }
64                 }
65         }
66     %>
				
时间: 2024-08-14 00:12:25

JDBC连接数据库概述的相关文章

9.1(JDBC概述)、(JDBC连接数据库),(JDBC查询数据)

2:JDBC的配置 下载地址:https://dev.mysql.com/downloads/file/?id=470333 这里下载到了C:\Users\王家丰\AppData\Local\Microsoft\Windows\INetCache\IE\Z2F72PPH\mysql-connector-java-5.1.42 3:JDBC连接数据库的步骤 一:注册mysql驱动:两种方式 项目中用的方式:Class.forName("com.masql.jdbc.Driver"); 二

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

【转】Java开发中JDBC连接数据库代码和步骤总结

(转自:http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html) JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("co

JDBC连接数据库

JDBC连接数据库一般分为3个步骤: (1)注册数据库驱动 (2)创建数据库连接URL (3)获取Connection连接对象 这三个步骤,具体代码实现如下: 1 try{ 2 //加载数据库驱动,注册到驱动管理器 3 Class.forName("com.mysql.jdbc.Driver"); 4 //数据库连接字符串 5 String url = "jdbc:mysql://localhost:3306/mysqltest"; 6 //数据库用户名 7 Str

Java 用jdbc连接数据库

Java 用jdbc连接数据库 准备 安装mysql 下载 mysql-connector-java-5.1.40-bin.jar驱动包 步骤 创建jdbc项目 导入mysql-connector-java-5.1.40-bin.ja包 创建配置文件 jdbc.properties user=root password=1230 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql:///atguigu 代码 import java.io.IO

完整java开发中JDBC连接数据库代码和步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(Class

Java开发中JDBC连接数据库代码和步骤

JDBC连接数据库:创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ Syste

jdbc连接数据库工具包模板

jdbc连接数据库操作 jdbc连接数据库模板,收藏可做模板使用(小型工程,一般大工程都会用框架,c3p0等连接,不考虑此种方法!). 配置文件的使用(使用配置文件可以使我们后期的修改更加方便,当然,也可以使用java中的枚举效果也是相同的,不过在这里推荐大家使用配置文件) 在这里使用mysql做类子: 1 #db.properties 2 #一般放在src下 3 4 5 6 driver=com.mysql.jdbc.Driver 7 url=jdbc:mysql://127.0.0.1:33

(转) Spring Boot JDBC 连接数据库

文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. 1 JDBC 连接数据库 1.1 属性配置文件(application.properties) spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 s