JDBC

JDBC

概述

JDBC是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
一般是Java开发者制定了JDBC规范,数据库开发商实现接口,程序员学习JDBC规范.

API

集成在java.sql包中	
DriverManager类作用:管理各种不同的JDBC驱动
Connection 接口 与特定数据库的连接
Statement 接口  执行sql
PreparedStatement接口   执行sql
ResultSet接口  接收查询结果

搭建步骤

1.导入Mysql数据库驱动包,里面就是具体的实现

File→Project Structure→Libraries→点击"+"号选择java

2.加载数据库驱动

1.Class.forName(“com.mysql.cj.jdbc.Driver”); //反射实现

2.DriverManager.registerDriver(new Driver());

        //Class.forName("com.mysql.jdbc.Driver");  //mysql5驱动
        //加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver"); //利用反射机制记载Driver类
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

3.建立与数据库的连接

这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个物理连接的数据库.

Connection connection = DriverManager.getConnection(url, USER, PASS);
/*URL:jdbc:mysql://ip(127.0.0.1):端口(3306)/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC 
USER:数据库用户名 PASS:数据库密码*/

4.向数据库发送sql语句

//两种方式
Statement st = connection.createStatement(sql语句); //获得Statement,用于向数据库发送sql语句(静态)
PrepareStatement  ps = connection.prepareStatement(sql语句); //将sql语句预先编译到PreparedStatement,?是占位符,表示此处需要传值,并没有向数据库发送
PrepareStatement  ps = connection.prepareStatement("insert into test(id,name) values(?,?)");
pst.setInt(1,id);
pst.setString(2,name);//然后通过指定的方法向sql语句中的占位符赋值,

PreparedStatement和Statement对比:
1.代码的可读性和可维护性.虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次.
2.效率高,最重要的一点是极大地提高了安全性.PreparedStatement可以防止sql注入,通过特定的set方法赋值,在赋值时会进行预处理

5.接收查询的结果

PreparedStatement和Statement中的executeQuery()方法中会返回一个ResultSet对象,查询结果就封装在此对象中.

使用getXXX(String name)方法获得值

ResultSet res = pst.executeQuery();
//从ResultSet 中将数据取出来,res.next()方法表示是否有下一个数据,没有就是false
while(res.next()){
}

6.关闭与数据库的连接通道

pst.close();//通过close方法来关闭
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值