java JDBC入门及案例演示

113 篇文章 2 订阅

概念

JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。
JDBC与数据库驱动的关系:接口与实现的关系。

JDBC规范(掌握四个核心对象):

DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表

在这里插入图片描述
案例

import java.sql.*;
import java.util.Properties;

//原生JDBC demo
public class JDBC_Demo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        Properties properties = new Properties();
        properties.setProperty("user", "root");
        properties.setProperty("password", "123456");
        //创建连接对象,第一个参数数据库的url,第二个参数账号密码等
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2", properties);
        //创建一个Statement对象,用于将SQL语句发送到数据库
        Statement statement = connection.createStatement();
        String sql = "select empno,ename,job from emp";
        //执行给定的SQL语句,该语句返回一个ResultSet对象。
        //注意:不能在PreparedStatement或CallableStatement上调用此方法。
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()) {
            System.out.println(resultSet.getString("empno"));
        }
    }
}

方法解析

createStatement()
创建一个Statement对象,用于将SQL语句发送到数据库。 不带参数的SQL语句通常使用Statement对象执行。 如果多次执行同一条SQL语句,则使用PreparedStatement对象可能会更有效。
默认情况下,使用返回的Statement对象创建的结果集的类型为TYPE_FORWARD_ONLY,并发级别为CONCUR_READ_ONLY。 可以通过调用确定所创建结果集的可保存性.

resultSet.next()
将光标从当前位置向前移动一行。 ResultSet游标最初位于第一行之前; 对该方法的第一次调用next使第一行成为当前行; 第二个调用使第二行成为当前行,依此类推。
当对next方法的调用返回false时,光标将位于最后一行之后。 任何需要当前行的ResultSet方法的调用都会导致抛出SQLException。 如果结果集类型为TYPE_FORWARD_ONLY,则由供应商指定其JDBC驱动程序实现将返回false还是在后续对next的调用上引发SQLException。
如果为当前行打开了输入流,则对next方法的调用将隐式将其关闭。 读取新行时,将清除ResultSet对象的警告链。

总结

由于原生jdbc用起来比较繁琐,一般使用三方库进行简化,比如连接池C3P0库以及方便处理查询结果的DButils库.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值