1.1.1 注册驱动 方法一:
static void registerDriver(Driver driver) 向DriverManger注册给点驱动程序这个方法可以完成驱动的注册,但是实际开发中一般不会使用这个方法完成驱动的注册!!!
原因: 如果需要注册驱动,就会使用DriverManager.registerDriver(new Driver());,但是查看源代码发现,在代码中有一段静态代码块,静态代码块已经调用了注册驱动的方法。
static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } }如果再手动调用该方法注册驱动,就会导致驱动被注册两次,实际开发中一般会采用方法二 方法二:
Class.forName("com.mysql.jdbc.Driver");1.1.2 获得链接
static Connection getConnection(String url) 试图建立到给定数据库 URL 的连接。这个方法就是用来获得与数据库连接的方法:这个方法中有三个参数:
url :与数据库连接的路径 jdbc:mysql://localhost:3306/web_test3 jdbc :连接数据库的协议 mysql :是jdbc的子协议 localhost :连接的MySQL数据库服务器的主机地址。(连接是本机就可以写成localhost),如果连接不是本机的,就需要写上连接主机的IP地址。 3306 :MySQL数据库服务器的端口号 web_test3 :数据库名称 url如果连接的是本机的路径,可以简化为如下格式: jdbc:mysql:///web_test3 user :与数据库连接的用户名 password :与数据库连接的密码
1.2.1 创建执行SQL语句的对象
Statement createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库。 CallableStatement prepareCall(String sql) 创建一个 CallableStatement 对象来调用数据库存储过程。 PreparedStatement prepareStatement(String sql) 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。执行SQL语句对象: Statement :执行SQL CallableStatement :执行数据库中存储过程 PreparedStatement :执行SQL.对SQL进行预处理。解决SQL注入漏洞。 1.2.2 管理事务
void setAutoCommit(boolean autoCommit) 将此连接的自动提交模式设置为给定状态。 void commit() 使所有上一次提交/回滚后进行的更改成为持久更改,并释放此 Connection 对象当前持有的所有数据库锁。 void rollback() 取消在当前事务中进行的所有更改,并释放此 Connection 对象当前持有的所有数据库锁。1.3.1 执行SQL
boolean execute(String sql) 执行给定的 SQL 语句,该语句可能返回多个结果。 ResultSet executeQuery(String sql) 执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 int executeUpdate(String sql) 执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。执行SQL的方法
boolean execute(String sql); 执行查询,修改,添加,删除的SQL语句。 ResultSet executeQuery(String sql); 执行查询(执行select语句)。 int executeUpate(String sql); 执行修改,添加,删除的SQL语句。1.3.2 执行批处理
void addBatch(String sql) 将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 void clearBatch() 清空此 Statement 对象的当前 SQL 命令列表。 int[] executeBatch() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。ResultSet 通过select语句的查询结果。
1.4.1 遍历结果
boolean next() 将光标从当前位置向前移一行。 ResultSet resultSet = statement.executeQuery(sql); while(resultSet.next()){ System.out.print(resultSet.getInt("id")+" "); System.out.print(resultSet.getString("username")+" "); System.out.print(resultSet.getString("password")+" "); System.out.print(resultSet.getString("nickname")+" "); System.out.print(resultSet.getInt("age")+" "); System.out.println(); }1.4.2 结果集的获取 方法摘要 int getInt(int columnIndex) 以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。 long getLong(int columnIndex) 以 Java 编程语言中 long 的形式获取此 ResultSet 对象的当前行中指定列的值。 String getString(int columnIndex) 以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。 结果集获取可以使用结果集中的: getXXX();方法通常都会有一个重载的方法。 getXXX(int columnIndex); getXXX(String columnName)
作者:小熊先生很不开心 链接:https://www.jianshu.com/p/2e1b4a07d64e 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。