返回顶部
首页 > 资讯 > 数据库 >JDBC简介
  • 525
分享到

JDBC简介

javajarmysql数据库 2023-08-20 07:08:41 525人浏览 独家记忆
摘要

文章目录 一、JDBC简介二、JDBC执行步骤三、执行步骤中类的简介1、DriverManager类2.Connection类3、ResultSet类 一、JDBC简介 什么是jdbc JDBC全称:java databas

一、JDBC简介

什么是jdbc
JDBC全称:java database connectivity,简称jdbc, 翻译就是 Java 数据库连接。

jdbc有什么作用:
是一种标准Java应用编程接口( JAVA api),用来连接 Java 编程语言和广泛的数据库。可以通过jdbc代码实现对数据库的操作。包括DDL,DML,DQL等。

二、JDBC执行步骤

1.导入驱动jar包
链接:https://pan.baidu.com/s/1mP3Nb4wKd1VrBrGmbD3QDg
提取码:t0kh
导入jar包步骤

  • 1.在你的WEB-INF目录下创建一个lib包,专门放置jar包
  • 2.将jar包复制到lib路径下
  • 3.右键单击,选择add as library
  • 4.将level改成module library 点击OK

如果你的lib路径下的jar包有以下小箭头,就添加成功了
在这里插入图片描述
2.注册驱动

Class.forName("com.Mysql.jdbc.Driver");

3.获取连接

Connection connection = DriverManager.getConnection(url, username, passWord);

4.定义SQL语句

String sql = "sql语句";

5.获取执行SQl对象

Statement statement = connection.createStatement();

6.执行sql语句

statement.executeUpdate(sql);

7.处理结果

8.释放资源

statement.close();connection.close();
package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {//        1.注册驱动        Class.forName("com.mysql.jdbc.Driver");//        2.获取连接        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);//        3.定义sql语句,这里以创建一个work_user表为例        String sql1 = "use dbcsdn";        String sql2 = "create table work_user(" +                "id int(5) primary key auto_increment," +                "username varchar(20) unique," +                "password varchar(20))";//        4.获取sql对象        Statement statement = connection.createStatement();//        5.执行sql        int l1 = statement.executeUpdate(sql1);        int l2 = statement.executeUpdate(sql2);//        6.处理结果        System.out.println("sql1受影响条数"+l1);        System.out.println("sql2受影响条数"+l2);//        7.释放资源        statement.close();        connection.close();    }}

三、执行步骤中类的简介

1、DriverManager类

DriverManager类下面提供的全是静态方法,只需要用类名点方法就可以调用,不需要实例化。它的作用主要有两个:
1.注册驱动: reGISterDriver()

Class.forName("com.mysql.jdbc.Driver");

其中的Driver类里面有一个静态代码块,有一句DriverManager. registerDriver()完成驱动的注册
在这里插入图片描述

获取连接:getConnection(url, username, password);
这个方法可以通过mysql的URL地址、数据库用户名、密码获取连接。传入的参数就是对应的URL地址:形如jdbc.mysql://ip地址:端口号/数据库名称。如果是本机连接,IP地址可以写成127.0.0.1或者localhost。如果端口号是默认的3306,可以写成缩写格式:jdbc.mysql:///数据库名

Connection connection = DriverManager.getConnection(url, username, password);

2.Connection类

connection类主要有两个作用:一是可以获取执行sql的对象,二是管理事务的功能。我们都知道数据库里面的数据局一旦改变就是永久的,所以需要一个管理事务功能验证sql语句的正确性。在mysql中事务管理通过begin开启事务,rollback回滚事务,commit提交事务。在jdbc里面通过connection类的特定方法也可以实现这三个功能。

  1. 获取执行sql的对象用到的方法。
    第一个就是普通执行sql对象:connection.createStatement()方法,返回一个Statement对象。

    Statement statement = connection.createStatement();

statement类下面有两个对数据进行操作的方法,分别是excuteUpdate(),excuteQuery()。excuteUpdate()这个方法主要是实现DML(操作数据),DDL(操作数据库,操作表)的代码。执行成功之后会返回一个值,这个值就是受影响的行数。但是DDL中就算执行成功之后有可能是0,因为创建一个新的表这样的sql代码受影响行数是0。excuteQuery()主要是实现DQL(查询语句),这个方法会返回一个resultSet对象,这个对象主要用于接受查询到的内容。

演示excuteUpdate()方法。

package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql = "insert  into work_user values " +                "(1,'name1','password1')," +                "(2,'name2','password2');";        Statement statement = connection.createStatement();        int i = statement.executeUpdate(sql);        System.out.println("受影响的行数是:"+i+"行");        statement.close();        connection.close();    }}

第二个是防止sql注入的prepareStatement()方法,其中传入sql语句,可以防止sql注入,最终返回一个PrepareStatement对象。

jdbc事务管理用法举例

package com.example.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql1 = "insert  into work_user values " +                "(5,'name5','password5')," +                "(6,'name6','password6');";        String sql2 = "update work_user set username = 'name002' where id = 2;";        Statement statement = connection.createStatement();        try {            // 开启事务            connection.setAutoCommit(false);            int l1 = statement.executeUpdate(sql1);            System.out.println("sql1受影响的行数是:"+l1+"行");            int l2 = statement.executeUpdate(sql2);            System.out.println("sql2受影响行数是:"+ l2+ "行");            // 提交事务            connection.commit();        } catch (Exception e) {            //回滚事务            connection.rollback();            e.printStackTrace();        }        statement.close();        connection.close();    }}

3、ResultSet类

作用:对DQL查询语句进行封装,返回一个resultset对象,并且可以通过特定方法获取查询结果。

  1. 对DQL查询语句封装

    ResultSet resultSet = statement.executeQuery(sql);
  2. 通过特定方法获取查询结果

next()方法。返回Boolean类型,主要用于判断当前行是否有有效数据,若有就返回true,否则返回false。

getXXX()方法。通过resultSet获取数据,对应数据类型定义对应方法。传参可以为字段名,也可以是列对应的编号。

package com.example.jdbc;import java.sql.*;public class jdbcdemo {    public static void main(String[] args) throws Exception {        String url = "jdbc:mysql://127.0.0.1:3306/dbcsdn";        String username = "root";        String password = "1234";        Connection connection = DriverManager.getConnection(url, username, password);        String sql = "select * from work_user";        Statement statement = connection.createStatement();        ResultSet resultSet = statement.executeQuery(sql);        while (resultSet.next()){            int id = resultSet.getInt("id");            String name = resultSet.getString("username");            String psd = resultSet.getString("password");            System.out.print("id:"+id+"\t");            System.out.print("username:"+name+"\t");            System.out.println("password:"+psd);            System.out.println("---------------");        }        resultSet.close();        statement.close();        connection.close();    }}

来源地址:https://blog.csdn.net/chenxingxingxing/article/details/123462544

您可能感兴趣的文档:

--结束END--

本文标题: JDBC简介

本文链接: https://www.lsjlt.com/news/376188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作