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

JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:

try{
 //加载MySql的驱动类
 Class.forName("com.mysql.jdbc.Driver") ;
 }catch(ClassNotFoundException e){
 System.out.println("找不到驱动程序类 ,加载驱动失败!");
 e.printStackTrace() ;
 }

成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

3、创建数据库的连接

•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:

//连接MySql数据库,用户名和密码都是root
  String url = "jdbc:mysql://localhost:3306/test" ;
  String username = "root" ;
  String password = "root" ;
  try{
 Connection con =
    DriverManager.getConnection(url , username , password ) ;
  }catch(SQLException se){
 System.out.println("数据库连接失败!");
 se.printStackTrace() ;
  } 

4、创建一个Statement

•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:

Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
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):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:

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

6、处理结果

两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:

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

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

7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象

 if(rs != null){ // 关闭记录集
 try{
  rs.close() ;
 }catch(SQLException e){
  e.printStackTrace() ;
 }
 }
 if(stmt != null){ // 关闭声明
 try{
  stmt.close() ;
 }catch(SQLException e){
  e.printStackTrace() ;
 }
 }
 if(conn != null){ // 关闭连接对象
 try{
  conn.close() ;
 }catch(SQLException e){
  e.printStackTrace() ;
 }
 }

实例代码:

package com.b510; 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 *
 * @author Hongten</br>
 * @date 2012-7-16
 *
 */
public class JDBCTest {
  public static void main(String[] args) {
    String driver = "com.mysql.jdbc.Driver";
    String dbName = "spring";
    String passwrod = "root";
    String userName = "root";
    String url = "jdbc:mysql://localhost:3308/" + dbName;
    String sql = "select * from users"; 

    try {
      Class.forName(driver);
      Connection conn = DriverManager.getConnection(url, userName,
          passwrod);
      PreparedStatement ps = conn.prepareStatement(sql);
      ResultSet rs = ps.executeQuery();
      while (rs.next()) {
        System.out.println("id : " + rs.getInt(1) + " name : "
            + rs.getString(2) + " password : " + rs.getString(3));
      } 

      // 关闭记录集
      if (rs != null) {
        try {
          rs.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      } 

      // 关闭声明
      if (ps != null) {
        try {
          ps.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      } 

      // 关闭链接对象
      if (conn != null) {
        try {
          conn.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      } 

    } catch (Exception e) {
      e.printStackTrace();
    }
  } 

}

运行效果:

id : 3 name : hongten password : 123

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, jdbc
连接数据库
jdbc连接数据库步骤、jdbc连接数据库的步骤、jdbc操作数据库的步骤、jdbc访问数据库的步骤、jdbc链接数据库步骤,以便于您获取更多的相关知识。

时间: 2024-10-03 18:34:19

完整java开发中JDBC连接数据库代码和步骤_java的相关文章

完整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){ Sys

Java开发中程序和代码性能优化

现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升,在开发中注意这些,更多的是可以保持一种性能优先的意识. 一 条件控制语句中的优化 1.在循环中应该避免使用复杂的表达式. 在循环中,循环条件会被反复计算,应该避免把一些计算放在循环进行的部分中,程序将会运行的更快.比如: for(int i=0;i<list.size();i++) 可以改为 //我的电脑上,测试数量级在10^7,速度提升一倍. for(int i=0,len=li

java开发中如何使用JVisualVM进行性能分析_java

JVisualVM是由Sun提供的性能分析工具,如此强大的后盾怎能不强大?在Jdk6.0以后的版本中是自带的,配置好环境变量然后在运行中输入"JVisualVm"或直接到Jdk的安装目录的Bin目录下找到运行程序即可运行.如果是用Jdk1.5或以前版本的朋友就得要单独安装了. 我觉得其还有一个强大的地方就是不需要用代理启动(即如果要监视某个程序则需要用测试软件来运行程序方便其监视如YourKit这款同类的测试工具)的方式来运行,十分方便,只要是用Jdk环境运行的,打开此测试工具后即能看

java开发中基于JDBC连接数据库实例总结_java

本文实例讲述了java开发中基于JDBC连接数据库的方法.分享给大家供大家参考,具体如下: 创建一个以JDBC连接数据库的程序,包含7个步骤:   1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ;

java开发中通用分页类代码

java开发中通用分页类代码 在java中要分页我们必须要有数据库教程,所以我们先准备下数据库,其数据库脚步如下: --以下是创建数据库和数据库表以及向数据库插入数据   use master  Go  if exists(select * from sysdatabases where name='pagination')  drop database pagination  Go  create database pagination  Go  use pagination  Go  cre

Java开发中的23种设计模式详解(转)

Java开发中的23种设计模式详解(转) 设计模式(Design Patterns)                                   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合

Java开发中异常处理的最佳实践

异常处理是Java 开发中的一个重要部分.它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中.Java 编程语言也允许你创建新的异常,并通过使用 throw 和 throws关键字抛出它们.事实上,在Java编程中,Java的异常处理不单单是知道语法这么简单,它必须遵循标准的JDK库,和几个处理错误和异常的开源代码.这里我们将讨论一些关于异常处

java-jsp中jdbc连接数据库出错

问题描述 jsp中jdbc连接数据库出错 代码如下,错误我不知道如何解决: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitiona

Java开发中使用JVMTI循环类实例教程

今天我想探讨Java的另一面,我们平时不会注意到或者不会使用到的一面.更准确的说是关于底层绑定.本地代码(native code)以及如何实现一些小魔法.虽然我们不会在JVM层面上探究这是怎么实现的,但我们会通过这篇文章展示一些奇迹. 我在ZeroTurnaround的RebelLabs团队中主要工作是做研究.撰文.编程.这个公司主要开发面向Java开发者的工具,大部分以Java插件(javaagent)的方式运行.经常会遇到这种情况,如果你想在不重写JVM的前提下增强JVM或者提高它的性能,你