从JDBC到JPA (1)

JDBC基础

什么是JDBC?

Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。

简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库(Mysql、Oracle、SQL Server)进行操作。


废话不多说,直接开始使用

  1. 准备工作:数据库安装配置(Mysql、Oracle、SQL Server)
  2. 下载数据库对应的jar包
  3. JDBC基本操作

首先了解操作流程:
在这里插入图片描述

  • DriverManager:这个类管理数据库驱动程序的列表,查看加载的驱动是否符合JAVA Driver API的规范。
  • Connection:用于联系数据库的所有方法。与数据库中的所有的通信是通过唯一的连接对象(Connection)。
  • Statement:把创建的SQL对象,转而存储到数据库当中。
  • ResultSet:它是一个迭代器,用于检索查询数据。
  • SQLException:此类处理数据库应用程序中发生的任何错误。

建立连接代码示范

String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/student";
String userName = "root";//将要连接数据库的账户
String password = "123456";//将要连接数据库的密码
Connection conn = null;
try {
        Class.forName(driver); //classLoader,注册JDBC驱动程序
        conn = (Connection) DriverManager.getConnection(url, userName, password);//打开连接
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;

获得执行sql语句的对象

接口名描述
StatementSQL语句不带参数时使用。用于对数据库进行通用访问,在运行时使用静态SQL语句时很有用。
PreparedStatementSQL语句带参数时使用,当计划要多次使用SQL语句时使用。
  1. 在遇到要执行的SQL语句是带可变参数的时候,就用PreparedStatement对象:
String sql = "insert into user(sno,name,age)values(?,?,?)";//定义一个要执行的SQL语句
PreparedStatement ps = (PreparedStatement)conn.prepareStatement(sql);
ps.setString(1,student.getSno());//设置SQL语句的第一个参数
ps.setString(2,student.getName());//设置SQL语句的第二个参数
ps.setInt(3,student.getAge());//设置SQL语句的第三个参数
int i = ps.executeUpdate();//执行SQL语句
  1. 当要执行的SQL语句的是不带可变参数的时:
String sql = "SELECT * FROM user";
Statement statement = conn.createStatement(sql);//sql语句的执行对象
ResultSet row = statement.executeQuery();//执行SQL语句
while (row.next()){
            String loginName=row.getString("loginName");
            String userName=row.getString("userName");
            String password=row.getString("password");
            int sex=resultSet.getInt("sex");
            System.out.println(loginName+"-"+userName+"-"+password+"-"+sex);
        }

执行sql语句

(1)增,删,改: exexuteUpdate() 方法 : 返回一个整形(对数据库影响的行数)

(2) 查: exexuteQuery() 方法 : 返回一个结果集对象(Resultest 在数据库中查到的一条数据)

读取返回对象集中的数据的方法:

Resultest.next(): 能够返回给你还有没有记录,

getObjeck方法: 读取一条记录里面字段所对应的值


释放资源

最后将用到的传输有关的对象使用完成后统统释放

        try {
            if(rs !=null)rs.close();
        } catch (Exception e) {
            logger.error(e.getMessage());
        }

        try {
            if(sta !=null)sta.close();
        } catch (Exception e) {
            logger.error(e.getMessage());
        }

        try {
            if(conn !=null)conn.close();
        } catch (Exception e) {
            logger.error(e.getMessage());
        }

使用规范

  • 导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用import java.sql.*就足够了。
  • 注册JDBC驱动程序:需要初始化驱动程序,以便可以打开与数据库的通信通道。
  • 打开连接:需要使用DriverManager.getConnection()方法创建一个Connection对象,它表示与数据库的物理连接。
  • 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句到数据库。
  • 从结果集中提取数据:需要使用相应的ResultSet.getXXX()方法从结果集中检索数据。
  • 清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值