JDBC入门案例及相关API概述

1 JDBC概念

问题:JDBC的本质是什么,解决了什么问题?
在这里插入图片描述

2.API讲解

<1> DriverManager的作用

问题:DriverManager有什么作用?

作用一:注册驱动

DriverManager.registerDriver(new Driver()),但是我们不使用,我们使用Class.forName(“com.mysql.jdbc.Driver”)。

作用二:获取连接

​ Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db14”, “root”, “root”);

参数1:连接的URL地址,如果是本机并且端口号是3306,那么localhost:3306可以省略不写,也就是jdbc:mysql:///db14。

参数2:用户名

参数3:密码

<2> Connection的作用

问题:Connection对象有什么作用?

作用一:创建执行SQL语句的执行者对象

​ Statement对象:Statement statement = conn.createStatement();

​ PreparedStatement预编译对象:PreparedStatement pstmt=conn.prepareStatement("")

作用二:事务管理
conn.setAutoCommit(false);  //设置自动提交为false就表示开启事务
conn.commit(); //提交事务
conn.rollback();//回滚事务

<3> Statement的作用

问题:Statement对象有什么作用?

作用:执行SQL语句

执行DQL语句(查询):ResultSet executeQuery(SQL);

​ 参数:传递要执行的查询语句

​ 返回值:封装查询结果的结果集对象。

执行DML语句(增删改):int executeUpdate(SQL);

​ 参数:要执行的增删改语句

​ 返回值:影响的行数,可以通过影响的行数判断是否执行成功。

<4> ResultSet的作用

问题:ResultSet对象有什么作用?

作用一:判断是否有下一行数据:boolean next()

作用二:获取该行的数据: Xxx getXxx(“列名”);

​ Xxx表示不同的数据类型,例如:int getInt(“sid”); String getString(“name”)

3.JDBC入门案例

jdbc表:
在这里插入图片描述

<1>入门案例步骤

【前提】:导入mysql的驱动jar包
【第一步】:注册驱动,告诉程序使用哪种数据库
【第二步】:获取连接,需要传递url、用户名、密码参数
【第三步】:获取执行SQL的对象,负责CRUD
【第四步】:执行查询操作,获取结果
【第五步】:处理结果
【第六步】:释放资源

<2>代码实现

public class JdbcDemo1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //【前提】:导入mysql的驱动jar包
        //1.注册驱动,告诉程序使用哪种数据
        //不需要我们自己调用registerDriver方法注册驱动
        //Driver中有静态代码块,只要我们加载它,就能注册驱动
        Class.forName("com.mysql.jdbc.Driver");//mysql5之后在配置文件中配置,可省略不写
        //2.获取连接,需要传递url、用户名、密码参数
        //连接本机localhost:3306可以不写
        Connection conn = DriverManager.getConnection("jdbc:mysql:///jdbc", "root", "123456");
       // Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "123456");
        //3.获取执行SQL的对象,负责CRUD[增查改删]
        Statement statement = conn.createStatement();
        //4.执行sql语句,并返回结果
        ResultSet rs = statement.executeQuery("select * from student;");
        //5.处理结果
        while(rs.next()){//如果返回true表示有下一行元素
            //获取并打印
            int sid = rs.getInt("sid");
            String name = rs.getString("name");//不区分大小写
            int age = rs.getInt("age");
            String birthday = rs.getString("birthday");
            //Date birthday1 = rs.getDate("birthday"); //两种获取方法都行
            System.out.println(sid +"\t"+name+"\t"+age +"\t"+birthday);
        }
        //6.释放资源
        rs.close();
        statement.close();
        conn.close();
    }
}

注:URL参数jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf8&usesSL=true
mysql5.0之后可省略不写
useUnicode:支持中文编码
characterEncoding=utf8:字符集设为utf8
utf8&usesSL=true:使用安全的连接(防止乱七八糟的错误)

mysql的驱动jar包资源下载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陪雨岁岁年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值