Jdbc概述+连接mysql

在面试中经常被问到Jdbc,然后自己也回忆不起来多少了,现在写东西都是直接用的框架,框架自己就帮我们处理好了,我们只是自己用它提供好的方法,今天在这里总结一下。

1.1JDBC概述

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是 Java访问数据库的 标准规范,可以为不同的关系型数据库提供统一访问,
它由一组 Java语言编写的接口和类组成。

jdbc的方式

在这里插入图片描述

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

: DriverManager:用于注册驱动

接口:
Connection: 表示与数据库创建的连接
PreparedStatement : sql语句发射器
ResultSet: 结果集或一张虚拟表

现在我要做的是用我的java代码去连接mysql 数据库

第一步:mysql-connector-java 5.1.47,版本大家随意,但是一般我都不会用最新的,我会用相对来说最稳定的。

在这里插入图片描述

jdbc连接mysql代码

在这里插入图片描述

 @Test
    public void show() throws Exception {
        // 1.注册mysql驱动
        //   Class.forName("com.oracle.jdbc.Driver");
        Class.forName("com.mysql.jdbc.Driver");
        //	2.通过DriverManager获取到onetwo数据库的链接
        //url 用来描述链接到哪个数据库上
        String url = "jdbc:mysql://localhost:3308/onetwo";
        Connection connection = DriverManager.getConnection(url, "root", "root");
        //	3.通过链接获取SQL的发射器
        PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM t_mark ORDER BY score DESC LIMIT 5,5");
        //	4.发射器执行SQL语句得到结果集
        ResultSet resultSet = preparedStatement.executeQuery();
        //	5.处理结果集
        // 先判断它下一个有没有
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            int courseId = resultSet.getInt("courseId");
            int studentId = resultSet.getInt("studentId");
            int score = resultSet.getInt("score");
            System.out.println("id:" + id + " courseId:" + courseId + " studentId:" + studentId + " score:" + score);
            }

        //	6.关闭资源
        resultSet.close();
        preparedStatement.close();
        connection.close();


    }

mysql中的数据
在这里插入图片描述

测试成功

在这里插入图片描述

1.2API详解

1.2.1API详解:注册驱动

语法: Class.forName(“com.mysql.jdbc.Driver”);
固定写法: com.mysql.jdbc.Driver 是MySQL数据库的驱动类
通过反射获取com.mysql.jdbc.Driver对象时底层会直接注册驱动

其他写法:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用
原因是:
导致驱动被注册2次。
强烈依赖数据库的驱动jar

1.2.2API详解:获得链接

接口的实现在数据库驱动中。所有与数据库交互都是基于连接对象的 .

Connection conn = DriverManager.getConnection(url, user, password);

语法:static Connection getConnection(String url, String user, String password)
试图建立到给定数据库 URL 的连接。
参数说明:url 需要连接数据库的位置(网址) user用户名 password 密码
例如:getConnection(“jdbc:mysql://localhost:3306/day06”, “root”, “root”);
URL:SUN公司与数据库厂商之间的一种协议。
jdbc:mysql://localhost:3306/day06
协议:子协议:// IP :端口号/数据库
oracle数据库: jdbc:oracle:thin:@localhost:1521:sid

1.2.3API详解:java.sql.PreparedStatement接口: 操作sql语句,并返回相应结果

String sql = “某SQL语句”;
PreparedStatement pst = conn.prepareStatement(sql);
对象pst就是SQL语句的发射器,可以发射SQL语句,并获取执行结果
常用方法:

  • int executeUpdate(String sql); --执行insert update delete语句.
  • ResultSet executeQuery(String sql); --执行select语句.
  • boolean execute(String sql); --仅当执行select并且有结果时才返回true,执行其他的语句返回false.

1.2.4API详解:处理结果集(注:执行insert、update、delete无需处理)

ResultSet实际上就是一张二维的表格,我们可以调用其boolean next()方法指向某行记录,当第一次调用next()方法时,便指向第一行记录的位置,这时就可以使用ResultSet提供的getXXX(int col)方法(与索引从0开始不同个,列从1开始)来获取指定列的数据:
rs.next();//判断下一行有没有数据,如果有返回true否则返回false
rs.getInt(1);//获取第一行第一列的数据
常用方法:

  • Object getObject(int index) // Object getObject(String name) 获得任意对象
  • String getString(int index)// String getString(String name) 获得字符串
  • int getInt(int index)//int getInt(String name) 获得整型
  • double getDouble(int index)// double getDouble(String name) 获得双精度浮点型

猜你喜欢

转载自blog.csdn.net/fhkkkbfgggjk/article/details/86495780
今日推荐