jdbc连接数据库实例详解

JDBC简介

JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供填统一的访问。JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API。它是由java语言编写完成,所以具有很好的跨平台特性,使用JDBC编写的数据库应用程序可以在任何支持java的平台上运行,而不必在不同的平台上编写不同的应用程序。

JDBC编程步骤

(1)加载驱动程序:

下载驱动包 : http://dev.mysql.com/downloads/connector/j/

解压,得到 jar文件。将该文件复制到Java工程目录Java Resources/Libraries/ 下,→ buildpath 。

(2)获得数据库连接

(3)创建Statement对象:

(4)向数据库发送SQL命令

(5)处理数据库的返回结果(ResultSet类)

package com.baidu.emp.jdbcTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.mysql.jdbc.Driver;
/**
 * 开始使用jdbc连接数据库
 * @author Admin
 *
 */
public class Test001 {

  public static void main(String[] args) throws Exception {

    /**
     * 加载驱动
     */
    // 方法一:
    /*
     * import java.sql.DriverManager; import com.mysql.jdbc.Driver;
     */
    // Driver driver = new Driver();
    // DriverManager.registerDriver(driver);

    // 方法二:(推荐使用)
    Class.forName("com.mysql.jdbc.Driver");

    /**
     * 创建链接
     */
    String url = "jdbc:mysql://localhost:3306/testjdbc";
    String user = "root";
    String password = "root";
    Connection connection = DriverManager.getConnection(url, user, password);

    // 创建statement对象
    Statement statement = connection.createStatement();

    /**
     * 执行SQL,获取结果集
     */
    String sql = "select * from test01";
    ResultSet result = statement.executeQuery(sql);

    // 遍历结果集
    while (result.next()) {
      String name = result.getString("name");
      int id = result.getInt("id");
      System.out.println(name + "\t" + id);
    }

    /**
     * 关闭链接,释放资源
     */
    result.close();
    statement.close();
    connection.close();
  }
}

防止SQL注入改用prepareStatement

package com.boya.emp.jdbcTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * SQL注入,使用prepareStatement对象进行预编译
 * @author Admin
 *
 */
public class Test002 {

  public static void main(String[] args) throws Exception {

    /**
     * 加载驱动
     */
    Class.forName("com.mysql.jdbc.Driver");

    /**
     * 创建链接
     */
    String url = "jdbc:mysql://localhost:3306/testjdbc";
    String user = "root";
    String password = "root";
    Connection connection = DriverManager.getConnection(url, user, password);

    // 写SQL
    String sql = "select * from test01 where id = ?";
    //创建statement对象,预编译
    PreparedStatement statement = connection.prepareStatement(sql);
    //设置参数
    statement.setInt(1, 2);
    /**
     * 执行SQL,获取结果集
     */
    ResultSet result = statement.executeQuery();

    // 遍历结果集
    while (result.next()) {
      String name = result.getString("name");
      int id = result.getInt("id");
      System.out.println(name + "\t" + id);
    }

    /**
     * 关闭链接,释放资源
     */
    result.close();
    statement.close();
    connection.close();
  }
}

进行代码优化,设置配置文件,工具类,实现增删该查

增加配置文件方便修改数据库,用户登录。。。

jdbc.properties(配置文件名)

driverName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/testjdbc
userName=root
password=root

注意写配置文件时中间不可以有空格,引号之类的

工具类:增强了代码的复用性

package com.baidu.emp.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.Test;

public class JdbcUtils {

  static String driverClassName;
  static String url;
  static String user;
  static String password;

  static {
    // 创建配置文件对象
    Properties properties = new Properties();
    // 加载配置文件输入流
    InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
    // 重新加载配置文件
    try {
      properties.load(inputStream);
      // 获取配置文件的值
      driverClassName = properties.getProperty("driverName");
      url = properties.getProperty("url");
      user = properties.getProperty("userName");
      password = properties.getProperty("password");
      Class.forName(driverClassName);

    } catch (Exception e) {
      // 抛出异常
      throw new RuntimeException(e);
    }
  }

  /**
   * 获取连接
   */
  @Test
  public void testName() throws Exception {

    System.out.println(driverClassName);
  }
  public static Connection getConnection() {
    Connection connection = null;
    try {
      connection = DriverManager.getConnection(url, user, password);
    } catch (SQLException e) {
      // 抛出异常
      throw new RuntimeException(e);
    }
    return connection;
  }

  /**
   * 关闭链接,释放资源
   */
  public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {

    try {
      if (resultSet != null) {
        resultSet.close();
      }
      resultSet = null; // 垃圾及时清除
      //注意,不要弄成死循环
      close(connection, statement);
    } catch (SQLException e) {
      throw new RuntimeException(e);
    }

  }

  /**
   * 增删改释放资源
   */
  public static void close(Connection connection, PreparedStatement statement) {

    try {
      if (connection != null) {
        connection.close();
      }

      connection = null;
      if (statement != null) {
        statement.close();
      }
      statement = null;

    } catch (SQLException e) {
      throw new RuntimeException(e);
    }

  }

}

测试增删改查:

package com.baidu.emp.jdbcTest;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.baidu.emp.utils.JdbcUtils;

/**
 * 使用jdbcUtils连接数据库进行增删改查
 *
 * @author Admin
 *
 */
public class Test003 {

  // 初始化值
  Connection connection = null;
  PreparedStatement statement = null;
  ResultSet result = null;

  @Before
  public void start() throws Exception {
    // 创建链接
    connection = JdbcUtils.getConnection();
    System.out.println("创建链接");
  }

  @After
  public void end() throws Exception {
    // 关闭链接
    JdbcUtils.close(connection, statement, result);
    System.out.println("关闭链接");
  }

  /**
   *插入数据
   * @throws Exception
   */
  @Test
  public void add() throws Exception {
    String sql = "insert into test01 values(null,?)";
    statement = connection.prepareStatement(sql);
    statement.setString(1, "李四");
    int result = statement.executeUpdate();
    if (result!=0) {
      System.out.println("添加成功");
    }
  }
  /**
   * 删除数据
   * @throws Exception
   */
  @Test
  public void del() throws Exception {
    String sql = "delete from test01 where id =?";
    statement = connection.prepareStatement(sql);
    statement.setInt(1,3);
    int result = statement.executeUpdate();
    if (result!=0) {
      System.out.println("删除成功");
    }
  }
  /**
   * 修改数据
   * @throws Exception
   */
  @Test
  public void change() throws Exception {
    String sql = "update test01 set name = ? where id = ?";
    statement = connection.prepareStatement(sql);
    statement.setString(1, "张飞");
    statement.setInt(2, 2);
    int result = statement.executeUpdate();
    if (result!=0) {
      System.out.println("修改成功");
    }
  }

  /**
   * 查询全部数据
   * @throws Exception
   */
  @Test
  public void findAll() throws Exception {
    String sql = "select id , name from test01";
    statement = connection.prepareStatement(sql);
    result = statement.executeQuery();
    if (result.next()) {
      System.out.println("查询成功");
    }
  }

  /**
   * 条件查询数据
   * @throws Exception
   */
  @Test
  public void findOne() throws Exception {
    String sql = "select id , name from test01 where id = ?";
    statement = connection.prepareStatement(sql);
    statement.setInt(1, 2);
    result = statement.executeQuery();
    if (result.next()) {
      System.out.println("查询成功");
    }
  }

}

以上就是相关知识以及相关代码,感谢大家对我们的支持。

(0)

相关推荐

  • JDBC连接数据库的方法汇总

    本文实例总结了JDBC连接数据库的方法.分享给大家供大家参考,具体如下: 1. MySQL(http://www.mysql.com) Class.forName( "org.gjt.mm.mysql.Driver" ); cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd ); 2. PostgreSQL(http

  • Java使用JDBC连接数据库的实现方法

    本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧.分享给大家供大家参考.具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC.使用JDBC连接数据库一般步骤有: 1.加载驱动程序 Class.forName(driver); 2.创建连接对象 Connection con = DriverManager.getConnection(ur

  • java使用jdbc连接数据库工具类和jdbc连接mysql数据示例

    这个工具类使用简单,实例化直接调用就可以了,大家还可以方便的根据自己的需要在里面增加自己的功能 复制代码 代码如下: package com.lanp.ajax.db; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; /** * 连接数据库的工具类,被定

  • Jdbc连接数据库基本步骤详解

    Jdbc连接数据库的基本步骤,供大家参考,具体内容如下 package demo.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcConn { /** *JDBC (Java Data Base Connectivi

  • Java中JDBC连接数据库详解

    一.概念 1. 为了能让程序操作数据库,对数据库中的表进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动,而且每种数据库的驱动都各不相同,例如mysql数据库使用mysql驱动,oracle数据库使用oracle驱动,这样假如我们编写的程序哪一天想要换数据库,那样就会很不方便,因为所有连接数据库的代码都要从新编写.SUN公司为了简化.统一对数据库的操作,定义了一套java操作数据库的标准或者规范,这个规范就是JDBC. 2.JDBC全称为:Java Data Base Connectiv

  • jdbc连接数据库实例详解

    JDBC简介 JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供填统一的访问.JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API.它是由java语言编写完成,所以具有很好的跨平台特性,使用JDBC编写的数据库应用程序可以在任何支持java的平台上运行,而不必在不同的平台上编写不同的应用程序. JDBC编程步骤 (1)加载驱动程序: 下载驱动包 : http://dev.mysql.com/downloads/co

  • centos7安装mysql并jdbc测试实例详解

    centos7安装mysql并jdbc测试实例详解 前言: 之前用rpm安装方式安装不成功,换成yum安装之后安装ok了,在网上搜索到很多的rmp安装和tar包安装的方式,但是是centos7.x与centos6.x做了很大的改变,可能别人的6.x不适合7.x的安装,尤其是对于像博主一样的新人来说,照搬教程可能导致安装不成功,如果你rmp安装失败,那么尝试跟着本教程来吧. 先卸载已经存在的MySQL. [root@shizongger bin]# rpm -qa|grep mysql [root

  • Java加载JDBC驱动程序实例详解

    本文实例说明了Java加载JDBC驱动程序的方法,运行本文实例代码后,如果连接成功就会显示如下一条语句:sun.jdbc.odbc.JdbcOdbcDriver@6ec12,如果连接不成功,则显示加载数据库驱动程序出现异常. Java加载JDBC的实现方法: 通过调用Class.forName()方法可以显式地加载一个驱动程序.该方法的入口参数为要加载的驱动程序.例如:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")语句加载了SUN 公司开发的

  • php mysql操作mysql_connect连接数据库实例详解

    mysql_connect介绍 php mysql_connect用于连接mysql服务器,该函数有多个参数,但我们一般只需要了解以下三个参数即可: mysql_connect(server,user,pwd) 参数介绍: server -- mysql服务器地址 user -- 服务器用户名 pwd -- 服务器登录密码 如果连接成功,则返回一个 MySQL 连接标识,如果连接失败则返回 FALSE.  mysql_connect实例 <?php $host="mysql153.secu

  • PowerDesigner连接数据库的实例详解

    PowerDesigner连接数据库的实例详解 PowerDesigner连接数据库 大致如下列图所示: 选择需要连接的数据库类型: 有两个选择,一.导入Sql脚本文件:二.连接数据源 选择连接数据源: 在弹出的对话框中选择相应的连接类型:方式有很多种,这里我们采用jdbc连接所以选择第三项:Connection profile-->Configure... 在接下来的对话框中选择Add Data Source的选项: 选择好相应的数据库连接方式以及数据库类型: 点击Test Connectio

  • JDBC中resutset接口操作实例详解

    本文主要向大家展示JDBC接口中resutset接口的用法实例,下面我们看看具体内容. 1. ResultSet细节1 功能:封锁结果集数据 操作:如何获得(取出)结果 package com.sjx.a; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; //1. next方

  • Spring jdbc中数据库操作对象化模型的实例详解

    Spring jdbc中数据库操作对象化模型的实例详解 Spring Jdbc数据库操作对象化 使用面向对象方式表示关系数据库的操作,实现一个线程安全可复用的对象模型,其顶级父类接口RdbmsOperation. SqlOperation继承该接口,实现数据库的select, update, call等操作. 1.查询接口:SqlQuery 1) GenericSqlQuery, UpdatableSqlQuery, MappingSqlQueryWithParameter 2) SqlUpda

  • spring对JDBC和orm的支持实例详解

    简介 Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术,如JDBC,Hibernate或者JDO等.它不仅可以让你方便地在这些持久化技术间切换, 而且让你在编码的时候不用考虑处理各种技术中特定的异常. 一致的异常层次 Spring提供了一种方便的方法,把特定于某种技术的异常,如SQLException, 转化为自己的异常,这种异常属于以 DataAccessException 为根的异常层次.这些异常封装了原始异常对象,这样就不会有丢失任何错误信息的

  • Java与Oracle实现事务(JDBC事务)实例详解

    Java与Oracle实现事务(JDBC事务)实例详解 J2EE支持JDBC事务.JTA事务和容器事务事务,这里说一下怎样实现JDBC事务. JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自己主动提交和手动提交,默认是自己主动提交. 自己主动提交就是:在JDBC中.在一个连接对象Connection中.默认把每一个SQL语句的运行都当做是一个事务(即每次运行完SQL语句都会马上将操作更新到数据库). 手动提交就是:当须要一次性运行多个SQL语句,将多个SQL语句组成一个

  • Java中JDBC实现动态查询的实例详解

    一 概述 1.什么是动态查询? 从多个查询条件中随机选择若干个组合成一个DQL语句进行查询,这一过程叫做动态查询. 2.动态查询的难点 可供选择的查询条件多,组合情况多,难以一一列举. 3.最终查询语句的构成 一旦用户向查询条件中输入数据,该查询条件就成为最终条件的一部分. 二 基本原理 1.SQL基本框架 无论查询条件如何,查询字段与数据库是固定不变的,这些固定不变的内容构成SQL语句的基本框架,如 select column... from table. 2.StringBuilder形成D

随机推荐