MySQL的JDBC

文章目录

    • 概念
    • 四个核心的对象
    • 使用步骤
    • sql注入
    • 工具类
    • 案例

一、概念

  • Java DataBase Connectivity,简称JDBC

  • JDBC:sun公司定义的一套操作数据库的规范,就是接口

  • 驱动:

二、四个核心的对象

  • DriverManager:依据数据库的不同,管理JDBC驱动

  • Connection: 负责连接数据库并担任传送数据的任务

  • Statement: 由 Connection 产生、负责执行SQL语句

  • ResultSet:负责保存Statement执行后所产生的查询结果

三、使用步骤

  • 注册驱动

  • 获取数据库连接对象 Connection

  • 定义sql

  • 获取执行sql语句的对象 Statement

  • 执行sql,接受返回结果

  • 处理结果

  • 释放资源

    # 注册驱动
        Class.forName("com.mysql.jdbc.Driver");
    # 获取数据库连接对象 Connection
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/xinzhi666", "root", "root");
    # 定义sql语句。
         String sql = "update person set name='小韩' where id=1";
    # 获取执行sql语句的对象 Statement
        Statement statement = connection.createStatement();
    # 执行sql,
        - 1.查询executeQuery(SQL),会有返回值ResultSet,保存了查询的结果
        - 2.增删改executeUpdate(增删改SQL),返回一个数据,表示数据库中受影响的行数
    # 处理结果 
        - ResultSet,可以把ResultSet看成我们java里的set,迭代的时候用next()方法
        - 获取每一列resultSet.getString(),括号中的参数可以是数字,从1开始,表示第几列,也可以是字符串,列名的字符串。
    # 释放资源
        调用close()的方法

    四、sql注入

    # statement执行sql语句的时候会有sql注入的风险,所以推荐使用PreparedStatemen
    	PreparedStatement ps = con.prepareStatement(sql);
    	sql语句中的参数可以使用?代替
    	statement.setInt(索引,值); 索引从1开始的
    	setXXX  XXX代表数据类型
    # 查询使用executeQuery(); 增删改使用executeUpdate();

    五、工具类

public class JDBCUtils {
    private JDBCUtils(){}
    private static String url = "jdbc:mysql://localhost:3306/xinzhi666"
    private static String user="root";
    private static String password="root";
    private static String driver="com.mysql.jdbc.Driver";
    static {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection(){
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static void release(Connection connection, Statement statement, ResultSet resultSet){
        if(resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

六、案例

1、创建jdbc项目,并且导入资料中的jar包
2、创建JDBC工具类

3、加密工具

4、实体类
5、dao层代码
6、测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值