入门了解JDBC

我是刚入门java的菜鸟,到CSDN膜拜大佬。下面分享一下JDBC,初来乍到多多关照,对于学习Java干完事!

sun公司设定的一套数据库标准,标准就是JDBC(Java Database Connectivity)。
但它只是规范,不做具体实现。于是数据库厂商又根据JDBC标准,实现自家的驱动Driver
如:mysql驱动com.mysql.cj.jdbc.Driver,Oracle的驱动oracle.jdbc.OracleDriver。有了这套解决方案,java就可以访问数据库中的数据了。
Java中提倡面向接口开发,而最经典的接口设计莫过于JDBC数据库接口。
Connection链接、Statement语句、PreparedStatement预处理语句、CallableStatement存储过程、ResultSet结果集。

调用方式有三种:
(1)Statement语句、
(2)PreparedStatement预处理语句、
(3)CallableStatement存储过程,
推荐使用第二种PreparedStatement,防止SQL注入,其也是预编译性能高。

执行流程:

  1. 注册数据库驱动
Class.forName(driverClass)
//加载MySql驱动
Class.forName("com.mysql.jdbc.Driver")
//加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver")
  1. 获取数据库连接
Connection conn = DriverManger.getConnection(URL,"数据库用户名","数据库密码");
URL:"jdbc:mysql://localhost:3306/数据库库名"
DriverManger.getConnection() 用于获取数据库连接  
  1. 传输器(statement/PreparedStatement)
Statement stat = conn.CreateStatement();

conn.createStatement();
conn.prepareStatement(sql);
  1. 结果集对象(ResultSet)
    ResultSet对象用于封装SQL语句查询的结果,提供了遍历数据及获取数据的方法
ResultSet rs = stat.executeQuery(sql) //执行SQL语句返回结果集
    executeQuery(String sql);
用于向数据库发送查询类的SQL语句,返回一个ResultSet对象中
	executeUpdate(String sql);
用于向数据库发送更新(增删改)类型的语句,返回一个int,表示影响的行数
package cn.tedu.jdbc;

import java.sql.*;

public class Testjdbc {
    public static void main(String[] args) throws Exception{
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/mall";		//注意SID
        String sql = "select * from item";

        String user = "root";
        String password = "root";

        Class.forName(driver);
        Connection cn = DriverManager.getConnection(url, user, password);

        PreparedStatement stat = cn.prepareStatement(sql);

        ResultSet rs = stat.executeQuery(sql);	//执行SQL语句返回结果集
        ResultSetMetaData md = rs.getMetaData();	//获取表结构信息

        //获取列数
        int cols = rs.getMetaData().getColumnCount();

        //打印列名
        for(int i=1; i<=cols; i++) {
            System.out.print(md.getColumnName(i)+"\t");
        }

        //打印数据
        while(rs.next()) {
            System.out.println();
            for(int i=1; i<=cols; i++) {
                System.out.print(rs.getString(i)+"\t\t");
            }
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值