当前位置: 首页 > ds >正文

JDBC入门

1.概述

概念:JDBC(Java DataBase Connectivity) 是使用Java语言操作关系型数据库的一套API,

其目的是使用Java的代码来操作数据库,但是每一种数据库底层细节不同, 需要使用JDBC规范来操作数据。

JDBC是一套接口,那么接口要怎么操作数据库呢?

每个数据库生产商都提供了对于JDBC的实现类,从而可以操作数据库,这些实现类也叫做驱动。

需要来使用实现类,需要导入MySQL提交的驱动的jar包

需要导入mysql‐connector‐java‐5.1.5‐bin.jar


2.代码示例

创建一个项目JDBCdemo,创建lib目录,将数据库连接的jar包放入

代码如下:

package demo;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class Demo1 {public static void main(String[] args) throws Exception {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取连接String url="jdbc:mysql://localhost:3306/mybatis";String user="root";String password="root";Connection conn=DriverManager.getConnection(url,user,password);//3.拼接sqlString sql="update class set class_name='666' where id=1";//4.获取sql的对象StatementStatement stmt=conn.createStatement();//5.执行sqlint res=stmt.executeUpdate(sql);//6.处理结果System.out.println(res);//7.关闭资源stmt.close();conn.close();}
}

各个类的作用:

注册驱动

DriverManager:使用DriverManager来管理JDBC的驱动的实现类

获取连接

getConnection:即static Connection getConnection(String url, String user, String password)

这个方法当中有3个参数:

第一个参数:jdbc:mysql://localhost:3306/yourDataBase               

jdbc‐‐ 代表的主协议

mysql‐‐ 子协议(有可能变化的)

localhost‐‐ 主机

3306‐‐ 默认的端口号 

yourDataBase‐‐数据库名称 

如果访问的是本地的自己的数据库,那么localhost:3306就可以省略不写 

mysql的命令 ‐uroot ‐proot

JDBC简写:jdbc:mysql:///yourDatabase

第二个参数:root(用户名)

第三个参数:root(密码)

Connection接口(链接)

1.Connection:代表的数据库的连接,非常重要,并且连接比较稀有,用完一定要释放它

2.作用:能获取到执行SQL语句的对象(获取Statement接口)

Statement createStatement() ‐‐ 获取到Statement接口                                       PreparedStatement prepareStatement(String sql) ‐‐ 获取到PreparedStatement 接口,对象非常重要的,防止SQL注入的漏洞。

管理事务:void setAutoCommit(boolean autoCommit) ‐‐ 开启事务                            void commit() ‐‐ 提交事务      void rollback() ‐‐ 回滚事务                                                    

3.总结:获取能执行SQL语句对象的方法Statement createStatement()PreparedStatement prepareStatement(String sql)

可以管理事务

Statement接口

1.Statement接口,能执行Sql语句的对象

2.作用:能执行Sql语句,能执行批处理

ResultSet接口(代表结果集)

1.ResultSet接口:代表的是结果集。执行的是查询的SQL语句,把查询的数据表格封装到ResultSet接口中,通过遍历该接口,获取到查询的结果。

2.总结:

封装数据

ResultSet接口使用表格的方式来封装数据。内部维护一个游标,默认指向的是第一行数据之前,调用next()方法来向下移动游标,移动到某一行,获取该行的数据。

注意:游标默认只能向下移动          

获取值 :根据字段的类型,调用不同的方法。

例如 :如果字段是int或者bigint--->getInt()或者getLong() 

如果字段是varchar char类--->getString()

使用getObject()获取任何类型的数据,自己强转

获取数据的方法都是重载的 

getInt(int index)‐‐ 通过下标值来取值,默认从1开始

getInt(String s)‐‐ 通过字段的名称来取值,比较常用的

释放资源

sql语句注入问题:可见【JAVA】如何解决SQL注入?-CSDN博客(转载)

http://www.xdnf.cn/news/18802.html

相关文章:

  • DAY 55 序列预测任务介绍
  • 小红书自动评论插件
  • JUC之并发容器
  • 深度学习与自动驾驶中的一些技术
  • Java基础(十四)分布式
  • KingBase数据库迁移利器:KDTS工具深度解析与实战指南
  • golang6 条件循环
  • 01-鸿蒙系统概览与发展历程
  • Android面试指南(五)
  • 青少年机器人技术(二级)等级考试试卷-实操题(2024年9月)
  • C语言文件操作精讲:从格式化读写到随机访问
  • GOLANG 接口
  • Axure:如何打开自定义操作界面
  • loj数列分块入门2-3
  • c++string
  • crypto.randomUUID is not a function
  • 拓扑排序|hash
  • frp+go-mmproxy 实现透明代理的内网穿透
  • Qt5 高级功能
  • 关于说明锂电池充电芯片实际应用
  • 曲面方程的三维可视化:从数学解析到Python实现
  • 从罗永浩访谈李想中学习现代家庭教育智慧
  • 定时器互补PWM输出和死区
  • 54.Redis持久化-AOF
  • JEI(Journal of Electronic lmaging)SCI四区期刊
  • 控制建模matlab练习16:线性状态反馈控制器-⑤轨迹追踪
  • Linux内核进程管理子系统有什么第三十三回 —— 进程主结构详解(29)
  • 【KO】前端面试四
  • Java八股文-java基础面试题
  • 9.Shell脚本修炼手册---数值计算实践