DriverManager(驱动管理类)
1.注册驱动
2.获取数据库连接
Connection
1.获取执行SQL的对象
2.管理事务
Statement
ResultSet
ResultSet(结果集对象)作用:
获取查询结果
PreparedStatement
DriverManager(驱动管理类)
1.注册驱动
<h1> Class.forName("com.mysql.jdbc.Driver"); </h1>
(MySql5之后的驱动包可省略注册驱动的步骤)
2.获取数据库连接
<h1> static Connection getConnection(String url,String user,String password)
</h1>
获取链接:如果连接的是本机mysql并且端口号为默认的 3306 可以简化书写 String url = "jdbc:mysql:///student_course";
Connection
1.获取执行SQL的对象
普通执行SQL对象
<h1> Statement createStatement() </h1>
预编译SQL的执行SQL对象:防止SQL注入
PreparedStatement prepareStatement(sql)
执行储存过程的对象
<h1> CallableStatement prepareCall(sql) </h1>
2.管理事务
MySql事务管理
开启事务:BEGN;/START TRANSACTION; 提交事务:COMMIT; 回滚事务:ROLLBACK;
JDBC 事务管理:Connection接口中定义了3个对应的方法
<h4> 开启事务:setAutoCommit(boolean autoCommit): true为自动提交事务,false为手动提交事务,即为开启事务 提交事务:commit() 回滚事务:rollback() </h4>
Statement
Startment作用
执行SQL语句
<h4> int execyteUpdate(sql):执行DML(数据的增 删 改),DDL(表和数据库的增 删 改 查)语句 返回值:(1)DML语句影响的行数 (2)DDL语句执行后,执行成功也可能返回0 ResultSet executeQuery(sql):执行DQL(数据的查询)语句 返回值: Result 结果集对象 </h4>
ResultSet
ResultSet(结果集对象)作用:
1.封装了DQL查询语句的结果
<h4> ResultSet stmt.executeQuery(sql):执行 DQL 语句,返回ResultSet对象 </h4>
获取查询结果
<h4> boolean next(): (1)将光标从当前位置向下移动一行 (2)判断当前行是否为有效行 返回值: true: 有效行,当前行有数据 false: 无效行,当前行无数据 </h4> <h4> xxx getXxx(参数):获取数据 xxx:数据类型;如 int getInt(参数);String getString(参数) 参数: int: 列的编号,从1开始 String: 列的名称 </h4>
使用步骤:
1.游标向下移动一行,并判断改行是否有数据:next()
2.获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾 while(rs.nest()){ //获取数据 rs.getXxx(参数); }
PreparedStatement
作用:
1.获取PrepareStatement对象
//SQL语句中的参数值,占用符代替 String sql = "select * from tb_userwhere username = ? and password = ?";
//通过Connection对象获取,并传入对应的sql语句 PrepareStatement pstmt = conn.prepareStatement(sql);
</h4>
2.设置参数值
PrepareStatement对象: setXxx(参数1,参数2):给?赋值 Xxx:数据类型; 如setInt(参数1,参数2) 参数: 参数1:?的位置编号,从1开始 参数2:?的值
</h4>
3.执行SQL
executeUpdate();/executeQuery(); :不需要在传递sql