jdbc与数据库的连接

本文介绍了JDBC(Java数据库连接)的基本概念和使用,包括如何加载数据库驱动、提供JDBC连接参数以及创建数据库连接。详细讲解了通过java.sql.DriverManager获取Connection对象的过程,并概述了数据库操作,特别是PreparedStatement接口用于执行预编译SQL语句的方法,以及添加数据的静态和动态方式。
摘要由CSDN通过智能技术生成

JDBC

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC为我们提供了java连接数据库的驱动。而这个驱动也是由Java开发出来的,我们只需要将这个驱动放进项目中,通过这个驱动,我们就可以用Java连接数据库,进行数据库的管理操作。

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类中。

1.1 提供JDBC连接的参数

连接数据库时,需要下面几个参数
url=jdbc:mysql://localhost:3306/database_name
username=root
password=1111

这个可以解决中文乱码,在最后面可以设置编码,这里设的是utf-8
url = “jdbc:mysql://localhost:3306/yunlian??autoReconnect=true&autoReconnectForPools=true&useUnicode=true&characterEncoding=utf-8”;

其中,username和password是连接数据库的用户名和密码,一般默认的用户名是root,密码是安装MySQL时的密码。url是连接数据库的地址。

当我们访问的是本机的数据库的时候,url的值也可以为“jdbc:mysql:///database_name”

1.2 创建数据库的连接

通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBC Connection 对象。

    try {
//试图建立到给定数据库 URL 的连接
       Connection con = DriverManager.getConnection(url,username,
       password);
     } catch (SQLExceptione) {
       System.out.println("数据库连接失败!");
       e.printStackTrace();
     }

上面需要导入的包都是java.sql的包,如下所示:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

数据库操作

我们想要执行SQL语句,就必须要创建一个java.sql.Statement对象,Statement对象可以将SQL语句发送到数据库,并返回一个执行结果(如:添加数据时会返回数据库的影响行数)。

  1. 执行静态SQL语句。通常通过Statement实例实现
  2. 执行动态SQL语句。通常通过PreparedStatement实例实现
  3. 执行数据库存储过程。通常通过CallableStatement实例实现(Oracle会讲)

1. PreparedStatement

PreparedStatement接口继承自Statement。PreparedStatement在sql语句中通过使用占位符?来代替常量字段值,setXXX方法来填充字段值,取代掉占位符,形成完整的可执行的sql语句。

2. 添加数据

静态SQL添加:

     // connection.createStatement():
     // 创建一个 Statement对象来将 SQL语句发送到数据库。
     statement =connection.createStatement();
     // executeUpdate(String sql):执行给定 SQL语句,该语句可能为 INSERT、UPDATE或
     // DELETE 语句,或者不返回任何内容的 SQL语句(如 SQL DDL语句)。
     // 添加数据
     String sql = "insert into test(id,username,birthday)
     values('15','张三','1999-09-09')";
     int rows = statement.executeUpdate(sql);//返回的结果是受影响的行数
     System.out.println(rows+"行");

动态SQL添加:

String sql = "insert into user(username,password) values(?,?)";
            ps = connection.prepareStatement(sql);
//          //给占位符赋值
//          //setNString(int parameterIndex, String value)
//            //将指定参数设置为给定 String对象。
//          //位置编号从 1开始,不是从零开始
            ps.setString(1, "王五");//setString表示的是该位置的参数需要字符串,对应数据库字段类型
            ps.setString(2, "我是密码");
//          //执行SQL
            int 
            rows = ps.executeUpdate();
            System.out.println(rows+"行");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值