01_JDBC

一 JDBC简介

JDBC (Java DataBaseConnectivity java数据库连接)是一种用于执行SQL语句的Java API, 可以为多种关系型数据库提供统一访问, 它是由一组用Java语言编写的类和接口组成的.

二 快速入门

1 搭建环境

导入jar包 (mysql-connector-j-8.0.33.jar)

1. 右键项目, 添加目录libs

2. 把jar包复制到该目录

3. 右键jar包, 添加到库

2 代码

//1. 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");

//2. 获取连接
String username = "root";
String password = "";
String url = "jdbc:mysql://127.0.0.1:3306/test";

Connection connection = DriverManager.getConnection(url, username, password);

//3. 准备SQL语句
String sql = "select * from student";

//4. 获取SQL语句的执行对象
Statement statement = connection.createStatement();

//5. 执行SQL语句
ResultSet resultSet = statement.executeQuery(sql);

//6. 处理结果
while (resultSet.next()){
    String name = resultSet.getString("name");
    int age = resultSet.getInt("age");
    String username1 = resultSet.getString("username");
    String password1 = resultSet.getString("password");

    Student student = new Student();
    student.setName(name);
    student.setAge(age);
    student.setUsername(username1);
    student.setPassword(password1);
    System.out.println(student);
}

//7. 关闭资源
resultSet.close();
statement.close();
connection.close();

三 API

DriverManager (驱动管理类)

1. 注册驱动

        static void registerDriver (Driver driver)

2. 获取连接
        static Connection getConnection (String url, String user, String password)

Connection (数据库连接对象)

1. 获取对象

        1.1 获取普通执行SQL对象
                Statement createStatement ()

        1.2 获取预编译SQL执行对象 (防止SQL注入的问题)
                PreparedStatement prepareStatement (String sql)        //此处的sql须使用占位符

        1.3 获取执行存储过程的对象
                CallableStatement prepareCall (String sql)

2. 事务管理

        2.1 开启事务
                setAutoCommit (boolean autoCommit)

                //true为自动提交, false为手动提交

        2.2 提交事务
                commit ()

        2.3 回滚事务
                rollback ()

Statement (执行对象)

1. 执行DML (返回影响行数) 和 DDL (成功可能返回0)
        int executeUpdate (sql)

2. 执行DQL语句 (返回ResultSet结果集对象)
        ResultSet executeQuery (sql)

ResultSet (结果集对象)

1. 光标移动, 判断当前是否为有效行
        boolean next ()

2. 获取数据

        Xxx getXxx (int 列编号)        //从1开始

        Xxx getXxx (String 列名称)
```

PreparedStatement (预编译执行对象)

预防SQL注入 (通过操作输入来修改事先定义好的SQL语句, 达到执行代码对服务器进行攻击的方法)

实例SQL语句:

        String sql = "select * from user where username = ? and password = ?";

        注意要有?占位符

2. 设置参数值
        setXxx (int 位置, Xxx 值)        //从1开始
 

3. 执行SQL
        executeUpdate ()        //不需要再传递sql

四 数据库连接池

1 简介

数据库连接池是容器, 负责分配、管理和释放数据库连接, 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个.

这项技术能明显提高对数据库操作的性能.

2 使用方式 (alibaba的Druid)

2.1 搭建环境

导入jar包 (druid-1.1.12.jar)

1. 右键项目, 添加目录libs

2. 把jar包复制到该目录

3. 右键jar包, 添加到库

定义配置文件

1. 右键src目录, 新建文件druid.properties

2. 添加如下配置代码

driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/ms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username = root
password = 
initialSize = 5
maxActive = 10
maxWait = 1000

2.2 代码

// 查看当前路径
System.out.println(System.getProperty("user.dir"));

//1. 加载配置文件
Properties prop = new Properties();
prop.load(new FileInputStream("D01_JDBC/src/main/resources/druid.properties"));

//2. 获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

//3. 获取Connection对象
Connection connection1 = dataSource.getConnection();
Connection connection2 = dataSource.getConnection();

//4. 检查Connection对象是否创建成功
System.out.println(connection1);
System.out.println(connection2);

//5. 关闭资源
connection1.close();
connection2.close();

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值