理解JDBC相关类和接口

1. Driver 类

Driver是Mysql定义的类,下面代码用反射的方式把Driver加载到内存,从而该类就可以使用了。

Class.forName( “com.mysql.jdbc.Driver”);

**注: Mysql到5版本之后,这条语句可以省略不写 **

2. DriverManager类

Driver加载到内存后,会注册到DriverManager中。当DriverManager调用getConnection方法时,就建立起了驱动程序和数据库之间的连接。并且返回链接对象Connection给用户。

获取链接对象时,需要提供一些参数,mysql的用户名,密码,还有就是url地址,格式如下:

jdbc:mysql://ip地址:端口号/数据库名?参数键值对1&参数键值对2

注:Driver类有一段静态代码,有这样一条语句

DriverManager.registerDriver(new Driver());

​ Driver用反射加载到内存时,会自动执行静态代码块,从而这条语句被执行,生成Driver对象,并注册到DriverManager中。

3. Connection接口

Connection对象代表与数据库的链接,也就是已经加载的Driver和数据库之间的链接。得到Connection链接说明Java程序和Mysql数据库已经建立起了链接,接下来就可以通过代码操作数据库了。

  • 使用Connection对象可以得到sql执行对象statement,分为两种情况:
    • 普通sql——Statement:
      conn.createStatement();
    • 预编译sql——prepareStatement:
      conn.prepareStatement(sql);

使用Connection还可以管理事务(后续补上)

4. Statement

这两个都用来执行sql语句,主要有以下几个形式

  • executeUpdate(sql)方法:
    用来执行DDL和DML(增删改)类的sql语句,返回值是0表示执行成功,或者数字表示本次执行影响了多少行。
    String sql = "update student set name='王五' where id=3";
    int count = sm.executeUpdate(sql);
    if(count>0){
        System.out.println("修改成功!");
    }else{
        System.out.println("修改失败!");
    }
  • executeQuery(sql)方法:
    用来查询数据,返回一个结果集
String sql = "select * from student";
ResultSet rs = sm.executeQuery(sql);
sm.executeUpdate(sql);
while(rs.next()){
    System.out.println(rs.getInt(1)+":"+rs.getString("name"));
}

5. 查询结果接口:ResultSet

Statement执行SQL语句后,有时会返回结果集ResultSet。结果集通常是一张表,其中有查询所返回的标题及数据值

完善上个任务,补全增删改查全部代码,如下

package com.qiu.jdbc;
import java.sql.*;

public class test3 {
    private static Connection conn;
    private static Statement stmt;
    private static ResultSet rs;
    private static String sql;

    public static Connection getConnection() throws SQLException {
        String url = "jdbc:mysql://localhost:3306/ideaone";
        String userName = "root";
        String password = "root";
        Connection con = DriverManager.getConnection(url,userName,password);
        return con;
    }

    public static void insertSql() throws Exception {
        conn = getConnection();
        stmt = conn.createStatement();
        sql = "insert into student (name, age, class)\n" +
                "values (\"赵六地\",23,\"二班\")";
        int n = stmt.executeUpdate(sql);
        if(n>0)
            System.out.println("插入成功");
        else
            System.out.println("插入失败");
        stmt.close();
        conn.close();
    }

    public static void deleteSql() throws SQLException {
        conn = getConnection();
        stmt = conn.createStatement();
        sql ="delete from student where class='一班'";
        int n = stmt.executeUpdate(sql);
        if(n>0)
            System.out.println("删除成功,删掉了"+n+"行数据");
        else
            System.out.println("删除失败");
        stmt.close();
        conn.close();
    }

    public static void updataSql() throws SQLException {
        conn = getConnection();
        stmt = conn.createStatement();       String sql = "update student set name='王五' where id=3";
        int count = stmt.executeUpdate(sql);
        if(count>0){
            System.out.println("修改成功!");
        }else{
            System.out.println("修改失败!");
        }
        stmt.close();
        conn.close();
    }
    public static void querySql() throws Exception {
        conn = getConnection();
        stmt = conn.createStatement();
        sql = "select * from student where class='二班'";
        rs = stmt.executeQuery(sql);
        while(rs.next()){
            System.out.println(rs.getInt(1)+":"+rs.getString("name"));
        }
        stmt.close();
        conn.close();
    }
    public static void main(String[] args) throws Exception {
       querySql();
    }
}

可以看出,使用Java语言访问操作数据库,基本步骤比较固定,加载驱动——得到链接——创建statement语句——写sql语句——执行——结果。这里面除了写sql语句,其余都是固定模式。Sql语句可以在idea中写,有提示功能

\6. 在Idea中配置Mysql

数据库我们一直是通过sqlyog来操作mysql的。在idea中,也可以建立和mysql的连接,不仅可以查看数据库操作的sql代码,还可以快速写出sql语句,因为idea提供了强大的代码提示补全功能。在Idea中配置mysql方法如下:

l 在idea最右侧点击database,然后点击加号,选择data source—mysql

Host一般默认是localhost,指的是要链接哪个主机的mysql数据库

填好mysql的用户名,密码,要链接的数据库名字

注意一定要选好Driver,mysql驱动

l 添加成功后,可以在idea中查看数据库信息,表等

l 单击编辑按钮,还可以在idea中编辑执行sql语句,有自动提示功能,敲入几个字母回车即可自动填充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值