使用JDBC进行简单连接

学习笔记:JDBC与数据库

集训的有关总结

连接数据库(MySQL)的步骤:

  1. 导入jar包(可以去官网下)
    复制mysql-connector-java-5.1.37-bin.jar到项目libs目录下
    右键–>Add As Library

  2. 注册驱动

  3. 获取数据库连接对象Connection

  4. 定义sql

  5. 获取执行sql语句的对象Statement

  6. 执行sql,接收返回的结果

  7. 处理结果

  8. 释放资源

下面以简单的例子介绍:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 1. JDBC连接数据库
 2. @author MIAO
 3. @date 2020/5/11
 */
public class LoginJDBC {
    public static void main(String[] args) throws Exception {
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","root");
        System.out.println(conn);
        //3.定义sql语句
        String sql = "insert into score(sid,sname,sage) values(99,'李未来',18)";
        //4.获取执行sql语句的对象Statement
        Statement statement = conn.createStatement();
        //5.执行sql语句,接收返回结果
        int i = statement.executeUpdate(sql);
        //6.处理结果
        System.out.println("受影响行数:"+i);
        //7.释放资源
        statement.close();
        conn.close();
    }
}

关于对象的详解:

  1. DriverManager:驱动管理对象
  • 注册驱动:告诉程序应该使用哪一个数据库驱动jar包
    Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","root");
  • url="jdbc:mysql://localhost:3306/test1"指明数据库的连接路径
  • 语法:(jdbc:mysql://ip地址(域名):端口号(这里MySQL默认的端口号是3306)/数据库名称(这里我创建的数据库名称为test1),“user用户名”,“password数据库密码”);
  1. Connection:数据库连接对象

获取执行sql的对象
Statement statement = conn.createStatement();

  1. Statement:执行sql的对象
  • executeUpdate()方法:执行DML(insert,update,delete)和DDL(create,alter,drop)语句
  • 返回值:影响的行数,可以通过这个行数判断所写的sql语句是否执行,返回值>0执行成功,返回值<0执行失败
  1. ResultSet:结果集对象,封装查询结果
  • boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回 false,如果不是则返回 true
  • 使用步骤:
    游标向下移动一行
    判断是否有数据
    获取数据
  1. PreparedStatement:执行sql对象
  • SQL 注入问题:在拼接 sql 时,有一些 sql 的特殊关键字参与字符串的>拼接。会造成安全性问题
  • 输入用户随便,输入密码: a’ or ‘a’ = 'a
  • sql:select * from user where username = ‘fhdsjkf’ and password = ‘a’ or ‘a’ = ‘a’
  • 解决 sql 注入问题:使用 PreparedStatement 对象来解决
  • 预编译的 SQL:参数使用 ? 作为占位符
  • 注意:sql 的参数使用?作为占位符。
    如: select * from user where username = ? and password = ?;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值