Jdbc

本文介绍了Java数据库连接(JDBC)的基本概念与使用方法,包括如何注册驱动、建立数据库连接、执行SQL语句及处理结果集等核心步骤,并提供了一些实用的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JDBC概述
1、Java Data Base Connectivity(java数据库连接)
2、组成包:java.sql.;javax.sql.;这两个包都包含在了JDK中。
3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现
二、JDBC的编码步骤
1、把数据库的驱动加入到classpath中 (方法是拷贝mysql-connector-java-5.0.8-bin.jar 到工程下然后buildpath)
2、开发步骤:
1、注册驱动
2、获取与数据库的链接 .properties
3、得到代表SQL语句的对象
4、执行语句
5、如果执行的是查询语句,就会有结果集,处理
6、释放占用的资源

package com.zh.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo1 
{
    public static void main(String[] args) throws ClassNotFoundException, SQLException 
    {
        Class.forName("com.mysql.jdbc.Driver");  //注册驱动       驱动包名 com.mysql.jdbc   Driver 类
        //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root");   //注意这种办法url后面添加参数注意不要随意添加空格
       Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root");  
       //  url中mysql的位置可以是sqlservice  根据是数据库的类型定
       Statement stmt = conn.createStatement(); 
       ResultSet  rs = stmt.executeQuery("select * from  stu");  // 执行sql语句
       while(rs.next())
       {
           System.out.println(rs.getInt("id")+":"+rs.getString("name")+":"+ rs.getString("address"));
       }
       //关闭链接,关闭命令对象,关闭结果集。
       rs.close();
       stmt.close();
       conn.close();
    }
}

JDBC的增删改查:
创建sql语句示例:
String sql = “insert into stu(id,name,sex) values(12,’东东’,’男’)”;
1、Statement 命令对象 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:
就是执行sql语句的;
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
2、ResultSet
Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
ResultSet还提供了对结果集进行滚动的方法:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。

package com.zh.jdbc;

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

public class JdbcDemo4 {
    public static void main(String[] args) throws ClassNotFoundException,
            SQLException {
        Class.forName("com.mysql.jdbc.Driver"); // 注册驱动 包名 com.mysql.jdbc Driver
                                                // 类
    Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/mydb", "root", "root");  //创建的是连接对象
        Statement stmt = conn.createStatement();    // 创建执行sql语句的命令对象  Statement
        // 创建一个sql语句
        //
        // String sql
        // ="insert into stu(id,name,age,address,sex) values(12,'东方不败',20,'湖南','男')";//      添加
        // int n = stmt.executeUpdate(sql); //返回一整型 就是执行结果影响的记录数。
        // String sql = "update stu set name='张刘子'where id=12"; //    改 修改 update tablename set 字段名where 
        String sql = "delete from stu where id =12";   // 删除  delete from tablename where 字段名
        int n = stmt.executeUpdate(sql);

        System.out.println(n);   // 需要注意的是这如果是增加的sql语句结果第一次是1,对于第二次就会因为主键的原因执行会抛出                                                 
                                                                               异常报出错误。
        // 关闭链接,关闭命令对象,

        stmt.close();
        conn.close();
    }
}

结果集 ResultSet 用while循环的原因是 游标在第一条记录的前面。//Before start of result set
url的写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/test ?参数名=参数值
协议 子协议 主机端口号 数据库
常用数据库URL地址的写法:
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的简写形式: jdbc:mysql:///sid 这个省略的只能是本机的 localhost:3306
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

常用数据类型转换:
sql类型                          Jdbc对应方法                              返回类型
Text(clob)  Blob               getClob getBlob()                         Clob  Blob
DATE                             getDate()                               java.sql.Date
TIMESTAMP                      getTimestamp()                             java.sql.Timestamp 
CHAR,VARCHAR,LONGVARCHAR       getString()                                String
BIGINT                         getLong()                                   Long
SMALLINT                      getShort()                                  Short
Int                            getInt()                                    Int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值