【JDBC】一篇文章帮你弄清楚Java程序如何连接数据库

目录

一、什么是JDBC?

二、JDBC体系结构

三、JDBC连接数据库编写步骤

个人理解:

获取Connection相当于是建立一座桥通往Mysql数据库;

创建Statement对象相当于建造一辆车通过桥前往MySQL数据库去获取资源;

SQL语句呢?相当于车上挂着一个“牌”:写着我需要什么资源,MySQL会根据我的“牌”上的去给我拿资源;

四、如何读取配置文件里的信息?

五、使用PreparedStatement实现CRUD的操作

(Statement VS PreparedStatement)


一、什么是JDBC?

简单来说,JDBC是Sun公司提供的一个标准API,用于在Java程序中与关系数据库进行交互的一组规范(接口),通过注册对应数据库提供的驱动,调用API来操作数据库。

二、JDBC体系结构

1.面向应用API:javaAPI,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。

2.面向数据库API:Java Driver API,供开发商开发数据库驱动程序使用。


三、JDBC连接数据库编写步骤

个人理解:

  • 获取Connection相当于是建立一座桥通往Mysql数据库;
  • 创建Statement对象相当于建造一辆车通过桥前往MySQL数据库去获取资源;
  • SQL语句呢?相当于车上挂着一个“牌”:写着我需要什么资源,MySQL会根据我的“牌”上的去给我拿资源;

(Maven项目推荐导入依赖)

1.①导包(Java连接数据库的驱动jar包【可以上网查】),在工程文件目录下建立一个lib文件夹存放jar包;

②把connector-jar包copy进入lib文件夹里。

2.加载和注册JDBC驱动和获取连接

/**
*以下为伪代码
*/
Class.forName(driverClass);  //使用反射,driverClass为驱动路径
Connection connection = DriverManager.getConnection(url, user, password); //获取连接
String sql =".........";
//使用Statement
Statement st=connection.creatStatement();   //"造车"
st.excuteQuery(sql)  //挂一个“牌”给车并且返回资源

3.建议把驱动路径、url、user、password写在jdbc.properties配置文件里
其中,配置文件声明在工程的src目录下:【jdbc.properties】

user=root
password=root
url=jdbc:mysql://localhost:3306/xxxxx
driverClass=com.mysql.cj.jdbc.Driver

使用配置文件的好处👍:①实现了代码和数据的分离,如果需要修改配置信息,直接在配置文件中修改,不需要深入代码。

②如果修改了配置信息,省去重新编译的过程。


四、如何读取配置文件里的信息?

InputStream is=ConnectionTest.class
                             .getClassLoader()
                             .getResourceAsStream("jdbc.properties");
//ConnectionTest是当前类,使用反射获取类的加载器,再调用getResourceAsStream()传入配置文件的路径,返回一个输入字节流
Properties pros = new properties();pros.load(is)  //加载配置文件
String user = pros.getProperty("user");  //获取user
String password =pros,getProperty("password");  //获取password
String url = pros.getProperty("url");  //获取url
String driverClass = pros.getProperty("driverClass");  //获取driverClass
class.forname(driverClass);  //注册驱动
Connection conn = DriverManager.getConnection(url,user,password);  //获取连接

五、使用PreparedStatement实现CRUD的操作

Statement VS PreparedStatement

使用Statement操作数据表存在弊端:

  • 问题一:存在拼串操作,繁琐
  • 问题二:存在SQL注入问题

推荐使用PreparedStatement进行预编译,避免了Sql语句拼串的操作👍

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值