企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### DriverManager:驱动管理对象 注册驱动 ``` Class.forName("com.mysql.jdbc.Driver"); 查看com.mysql.jdbc.Driver源码存在以下静态代码块: static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } ``` ### Connection:数据库连接对象 获取数据库连接 ``` static Connection getConnection(String url, String user, String password) 参数: url:指定连接的路径 user:用户名 password:密码 ``` ### Statement:执行sql的对象 获取执行sql的对象 ``` Statement createStatement() PreparedStatement prepareStatement(String sql) ``` 管理事务 ``` 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务 提交事务:commit() 回滚事务:rollback() ``` ``` 1. boolean execute(String sql) :可以执行任意的sql 了解 2. int executeUpdate(String sql) :执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。 3. ResultSet executeQuery(String sql) :执行DQL(select)语句 ``` ### PreparedStatement:执行sql的对象 ``` 1. 使用PreparedStatement对象来解决sql注入问题 2. 预编译的SQL:参数使用?作为占位符 ``` ``` 1.定义sql String sql = "select * from user where username = ? and password = ?"; 2.获取执行sql的对象 pstmt = conn.prepareStatement(sql); 3. 给?赋值 pstmt.setString(1,username); pstmt.setString(2,password); ``` ### ResultSet:结果集对象,封装查询结果 ``` boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true ``` ``` getXxx(参数):获取数据 xx:代表数据类型 如: int getInt() , String getString() 参数: 1. int:代表列的编号,从1开始 如: getString(1) 2. String:代表列名称。 如: getDouble("balance") ``` ``` 使用步骤: 1. 游标向下移动一行 2. 判断是否有数据 3. 获取数据 //循环判断游标是否是最后一行末尾。 while(rs.next()){ //获取数据 int id = rs.getInt(1); String name = rs.getString("name"); double balance = rs.getDouble(3); System.out.println(id + "---" + name + "---" + balance); } ```