JDBC基础流程

JDBC 由Java接口和数据库厂商提供的jar包(各种类和方法打包成的压缩文件)组成,java;

核心API DriverEngine,connection,statement,resultset;

步骤:

1 .注册驱动 导入jar包 安装jar包

2.建立连接connection

3.创建statement

4.使用statement对象发送sql语句,接受resultset

5.使用resultset对象解析数据

6.销毁资源(释放connection,statement,resultset)

步骤一:

注册驱动

class.forName("com.mysql.cj.jdbc.Driver");

步骤二:

创建连接

Connection connection = DriverManager.getConnection(DB_URL,USER,PASS);

//url构成:"jdbc:mysql://localhost:3306/demo01"

jdbc:数据库名://ip地址(数据库服务软件在本机可以用localhost代替):端口号/数据库名+可选条件

步骤三:

创建Statement对象

Statement statement = connection.createStatement();

步骤四:

创建结果集

ResultSet resultset = statement.executeQuery(sql);

sql为要执行的sql语句;

Statement API的使用:

int excuteUpdate(String sql):
 执行非查询语句
ResultSet executeQuery(String sql):
执行查询操作,返回结果集对象
    ResultSet.next()控制指向行数据的光标向下移一位,一般配合while循环获取全部数据:
    while(ResultSet.next()){
    获取数据:
        ResultSet.getString/ResultSet.getInt(列名(有别名写别名)|列的下角标);
    }

Statement的问题:

字符串拼接比较麻烦

字符串拼接实现sql语句可能影响查询结果,导致sql注入攻击

preparement为statement的子接口

preparestatement使用预编译的sql语句,sql语句中的动态语句用占位符?代替

使用流程:

1 注册驱动

2 获取链接

3 编写SQL语句,动态值部分用?代替

4 占位符赋值

5 发送SQL语句

6 解析结果集

7 关闭资源(从内到外)



import java.sql.*;

public class ConnectDemo {
    public static void main(String[] args) throws Exception{
        Class.forName("com.mysql.cj.jdbc.Driver");//反射触犯类的静态代码块,避免驱动的反复注册

        System.out.println("数据库链接");
        Connection connection =
                DriverManager.getConnection("jdbc:mysql:///demo01","root","123456");
        String sql = "select * from student";

        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        ResultSet resultSet = preparedStatement.executeQuery();

        while (resultSet.next()){
            System.out.println("id: "+resultSet.getInt("id")+"  ");
            System.out.println("number:  "+resultSet.getInt("number")+"  ");
            System.out.println("name: "+resultSet.getString("name")+"  ");
            System.out.println("gender: "+resultSet.getString("gender")+"  ");

        }
        System.out.println("数据库关闭");
        resultSet.close();
        preparedStatement.close();
        connection.close();

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值