JAVA之JDBC的使用

您所在的位置:网站首页 jdbc的包叫什么 JAVA之JDBC的使用

JAVA之JDBC的使用

2023-06-02 17:38| 来源: 网络整理| 查看: 265

初识JDBC

JDBC(Java Database )是java提供的访问数据库的解决方案

提供这种方案是希望用相同的方式访问不同的数据库,以实现与具体数据库无关的java操作界面

JDBC定义了一套标准接口,即访问数据库的通用API ,不同的数据库厂商根据各自数据库的特点实现这些接口,然而在JDBC这些接口的实现类不叫实现类,叫驱动

接口里的内容

DriverManager 驱动管理

Connection DatabaseMataData 连接接口

Statment PreparedStatement 语句对象接口 CallableStatement

ResultSet 结果集接口 ResultSetMetaData

JDBC的工作原理 1.通过Connection进行连接数据库 2.通过Statement进行传输sql语句 3.数据库将结果返回给ResultSet 加载驱动,建立连接 创建语句对象 执行sql语句 处理结果集 关闭连接 操作

使用JDBC必须需要导入JDBC驱动可以手动导入也可以通过MAVEN进行导入

放入对应数据库的驱动程序

使用java代码进行数据库操作 1.注册驱动类 2.创建数据库连接 3.创建Statement对象 4.执行sql语句 5.处理结果 6.关闭连接

```java /*注册驱动 */ //通过反射注册驱动 Class.froName(驱动包); /***注意区分驱动包

驱动如果是8.0以后的版本使用 8.0版本的jdk必须是1.8以上的版本 com.mysql.cj.jdbc.Driver 5.0 版本使用这个 com.mysql.jdbc.Driver / /*创建连接* */ Connection connection=DriverManager.getConnection("jdbc:mysql://HOST:PORT/数据库名","用户名", "密码"); /创建Statement对象(数据和sql的搬运工)* */ Statement statement= connection.createStatement();

/***执行sql语句 */ String sql= "SELECT * FROM 表名";

//execute方法如果是查询语句返回ture否则false; statement.execute(sql);

//执行增删改语句,返回值是int(表示影响几行数据) int i =statemenct.executeUpdate(sql);

//excuteUpdate执行修改语句,就是增删改

//excuteQuery执行查询语句

/处理结果 */

ResultSet

/*关闭连接,释放资源 */ statement.close(); connection.close(); ```

管理数据库连接

在软件中数据库来凝结使用非常频繁,如果每次都创建连接会造成大量的数据冗余常规的做法是建立数据库连接工具类,封装数据库连接过程

实现步骤: 1.创建数据库连接参数文件 db.properties 2.创建DcUtils,java封装数据库连接 利用Propertiew读取配置文件夹中的数据库连接参数 PrepareStatement

java里提供了PrepareStatement解决拼接字符串造成的sql注入

```java /** 创建数据连接省略 */

//获取prepareStatement String sql="SELECT * FROM users WHERE username=? AND password=?" PrepareStatement p=connection.prepareStatement(sql);

//给?赋值 p.setString(?下标(从1开始),value) || p.setObject(?下标(从1开始),value)

//执行sql语句(调用无参方法) p.excuteQuery();

//Util类 package com.yh.util;

import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.sql.; import java.util.;

public class JdbcUtil { private static String url; private static String userName; private static String passWord; private Connection connection; //连接 private PreparedStatement preparedStatement; //执行sql private ResultSet resultSet;//数据 static { try { /** * * 注册驱动,使用配置文件 */ Properties properties=new Properties(); properties.load(new FileReader("src/main/java/jdbc.properties")); String className=properties.getProperty("driverClass"); url= properties.getProperty("url"); userName= properties.getProperty("userName"); passWord=properties.getProperty("passWord"); Class.forName(className); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } }

/** * 创建连接 * @param sql sql语句 * @param values 值 */ public void getConnection(String sql ,Object[] values){ try { this.connection= DriverManager.getConnection(url,userName,passWord); this.preparedStatement=connection.prepareStatement(sql); if(values != null){ for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3