JDBC-MySQL

作者 : admin 本文共1839个字,预计阅读时间需要5分钟 发布时间: 2024-06-4 共1人阅读

JDBC-MySQL

  • 1.JDBC 操作步骤
    • 1.1 DriverManager
    • 1.2.Connection对象
    • 1.3 Statement
    • 1.4 PreparedStatement

1.JDBC 操作步骤

JDBC-MySQL插图

public  void quickStart() throws ClassNotFoundException, SQLException {
        //1、注册驱动 (确认要使用哪个数据库
        Class.forName("com.mysql.jdbc.Driver"); //加载Driver类
        
        //2、连接数据库 (获取到一个数据库连接对象)
        String url ="jdbc:mysql://127.0.0.1:3306/db1";
        //String url ="jdbc:mysql://127.0.0.1:3306/db5?useUnicode=true&characterEncoding=utf8";//解决中文乱码
        Connection conn = DriverManager.getConnection(url, "root", "");
        
        //3、编写SQL语句
        String sql="select id,name  from user";

        //4、把SQL语句发送给数据库 (数据库执行SQL代码,并返回执行结果)
        Statement stmt = conn.createStatement();//基于数据库连接对象,创建一个操作数据库的对象
        ResultSet rs = stmt.executeQuery(sql);//把sql代码发给数据库

        //5、处理SQL的执行结果
        while(rs != null && rs.next()){
            System.out.print(rs.getInt("id")+"	");
            System.out.print(rs.getString("name")+"	");
            System.out.println("=======================================");
        }

        //6、释放资源(断开和数据库的连接)
        rs.close();
        stmt.close();
        conn.close();
    }

1.1 DriverManager

Driver Manager(驱动管理类)作用:
1.注册驱动
2.获取数据库连接
//注册驱动
MySQL 5之后的驱动包,可以省略注册驱动的步骤
自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类
Class.forName("com.mysql.jdbc.Driver");

//获取数据库连接
Connection conn = DriverManager.getConnection(连接路径, 用户名, 密码);

1.2.Connection对象

Connection(数据库连接对象)作用:
1.获取执行 SQL 的对象
2.管理事务
//Connection是一个接口
//作为数据库连接对象
//作用:  1、创建数据库操作对象    2、管理事务
   conn.setAutoCommit(false); //相当于MySQL中的 : start transaction;
   conn.commit();             //相当于mysql中的: commit
   conn.rollback();            // rollback

1.3 Statement

Statement作用:
执行SQL语句
int    executeUpdate(sql):执行DMLDDL语句
//返回值:(1) DML语句影响的行数 (2) DDL语句执行后,执行成功返回 0
ResultSet    executeQuery(sql):执行DQL 语句
//返回值: ResultSet 结果集对象

ResultSet使用步骤:
游标向下移动一行,并判断该行否有数据:next()
获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
    //获取数据
    rs.getXxx(参数);
}

1.4 PreparedStatement

解决Statement对象中存在的SQL注入风险

//创建PreparedStatement对象   【预编译SQL对象】
PreparedStatement  pstmt = 数据库连接对象.prepareStatement( sql语句 );
String sql="select * from user where username=? and pasword=?";//?是占位符(先占个位置,没有值)
  把sql语句先发给数据库
  给?占位符,赋值:   1,"aaa"     2,"aaa"
本站无任何商业行为
个人在线分享 » JDBC-MySQL
E-->