您的位置: 首页 - 站长

seo整站优化方法摄影赚钱的网站

当前位置: 首页 > news >正文

seo整站优化方法,摄影赚钱的网站,贷款客户大数据精准获客,竞价推广开户提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 JDBC回顾 前言一、JDBC1.JDBC是什么#xff1f;2.如何使用#xff1f;#xff08;1#xff09;注册驱动#xff08;2#xff09;获取连接#xff08;3#xff09;操作… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 JDBC回顾 前言一、JDBC1.JDBC是什么2.如何使用1注册驱动2获取连接3操作数据表 3、ResultSet与ResultSetMetaData1ResultSet2ResultSetMetaData 前言 前段时间看到有关JDBC的一篇文章颇有感触闲来无事回顾总结一下有关JDBC的知识点。 提示以下是本篇文章正文内容下面案例可供参考 一、JDBC 1.JDBC是什么 我们在未使用JDBC之前连接不同的数据库就像如下图例一样使用那个数据库就使用对应的连接方法数据库一多不同的连接方法就显得杂乱不整齐无规矩。 有了 JDBC之后 总结来说 JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口一组API定义了用来访问数据库的标准Java类库java.sql,javax.sql使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC为访问不同的数据库提供了一种统一的途径为开发者屏蔽了一些细节问题。JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统这样就使得程序员无需对特定的数据库系统的特点有过多的了解从而大大简化和加快了开发过程。 2.如何使用 使用JDBC主要从以下入手 1、注册驱动 2、获取连接 3、创建statement对象 4、发送SQL语句 5、结果集解析 6、关闭资源 【先开后关】 举例 public static void main(String[] args) throws SQLException {//1.注册驱动/*** TODO: 注意* Driver -5.8及其以上 com.mysql.cj.jdbc.Driver* 5.8以下 com.mysql.jdbc.Driver/DriverManager.registerDriver(new Driver());//2.获取连接/** TODO: 注意* 面向接口编程* java.sql 接口 实现类* connection 使用java.sql.Connection接口接收*/Connection connection DriverManager.getConnection(jdbc:mysql://192.168.31.19:3306/atguigu, root, root);//3.创建小车Statement statement connection.createStatement();//4.发送SQL语句String sql select id,account,password,nickname from t_user ;;ResultSet resultSet statement.executeQuery(sql);//5.结果集解析while (resultSet.next()){int id resultSet.getInt(id);String account resultSet.getString(account);String password resultSet.getString(password);String nickname resultSet.getString(nickname);System.out.println(id::account::password::nickname);}//6.关闭资源 【先开后关】resultSet.close();statement.close();connection.close();}1注册驱动 ① /** *加载 JDBC 驱动需调用 Class 类的静态方法 forName()向其传 *递要加载的 JDBC 驱动的类名 / Class.forName(“com.mysql.jdbc.Driver”);② //1.加载配置文件InputStream is ConnectionTest.class.getClassLoader().getResourceAsStream(jdbc.properties);Properties pros new Properties();pros.load(is);//2.读取配置信息String user pros.getProperty(user);String password pros.getProperty(password);String url pros.getProperty(url);String driverClass pros.getProperty(driverClass);//3.加载驱动Class.forName(driverClass);其中配置文件声明在工程的src目录下【jdbc.properties】 userroot passwordabc123 urljdbc:mysql://localhost:3306/test driverClasscom.mysql.jdbc.Driver说明使用配置文件的方式保存配置信息在代码中加载配置文件 使用配置文件的好处 ①实现了代码和数据的分离如果需要修改配置信息直接在配置文件中修改不需要深入代码 ②如果修改了配置信息省去重新编译的过程。 2获取连接 可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接  User,password可以用“属性名属性值”方式告诉数据库  JDBC URL 用于标识一个被注册的驱动程序驱动程序管理器通过这个 URL 选择正确的 驱动程序从而建立到数据库的连接。 3操作数据表 ①使用Statement操作数据表 通过调用 Connection 对象的 createStatement() 方法创建该对象。该对象用于执行静态的 SQL 语句并且返回执行结果。Statement 接口中定义了下列方法用于执行 SQL 语句 /** SQL分类DDL(容器创建、修改、删除) DML(插入、修改、删除) DQL(查询) TPL(事务控制语言)* 方式一* int i statement.executeUpdate(sql);* 参数sql 非DQL* 返回 int* 情况1DML 返回影响行数例如删除了三条数据 return 3 插入了两条 return 2* 情况2 非DML return 0* 方式二* ResultSet resultSet statement.executeQuery(sql);* 参数sql DQL* 返回 resultSet 结果封装对象/ int excuteUpdate(String sql)执行更新操作INSERT、UPDATE、DELETE ResultSet executeQuery(String sql)执行查询操作SELECT但是使用Statement操作数据表存在弊端 问题一存在拼串操作繁琐问题二存在SQL注入问题 SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查而在用户输入数据中注入非法的 SQL 语句段或命令(如SELECT user, password FROM user_table WHERE user‘a’ OR 1 ’ AND password ’ OR ‘1’ ‘1’) 从而利用系统的 SQL 引擎完成恶意行为的做法。 对于 Java 而言要防范 SQL 注入只要用 PreparedStatement(从Statement扩展而来) 取代 Statement 就可以了。
②PreparedStatement 可以通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象 PreparedStatement 接口是 Statement 的子接口它表示一条预编译过的 SQL 语句 PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示调 用 PreparedStatement 对象的 setXxx() 方法来设置这些参数. setXxx() 方 法有两个参数第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开 始)第二个是设置的 SQL 语句中的参数的值 举例 Testpublic void test() throws ClassNotFoundException, SQLException {Class.forName(com.mysql.cj.jdbc.Driver);Connection connection DriverManager.getConnection(URL, USER, PS);String sql insert into t_user(account,password,nickname) values (?,?,?);;PreparedStatement preparedStatement connection.prepareStatement(sql);preparedStatement.setString(1,test);preparedStatement.setString(2,1243);preparedStatement.setString(3,user);int i preparedStatement.executeUpdate();System.out.println(i);preparedStatement.close();connection.close(); }3、ResultSet与ResultSetMetaData 1ResultSet 查询需要调用PreparedStatement 的 executeQuery() 方法查询结果是一个ResultSet 对象 ResultSet 对象以逻辑表格的形式封装了执行数据库操作的结果集ResultSet 接口由数据库厂商提供实现 ResultSet 返回的实际上就是一张数据表。有一个指针指向数据表的第一条记录的前面。 ResultSet 对象维护了一个指向当前数据行的游标初始的时候游标在第一行之前可以通过 ResultSet 对象的 next() 方法移动到下一行。调用 next()方法检测下一行是否有效。若有效该方法返回 true且指针下移。相当于Iterator对象的 hasNext() 和 next() 方法的结合体。 当指针指向一行时, 可以通过调用 getXxx(int index) 或 getXxx(int columnName) 获取每一列的值。 例如: getInt(1), getString(“name”)注意Java与数据库交互涉及到的相关Java API中的索引都从1开始。 ResultSet 接口的常用方法 boolean next()getString()…
2ResultSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象 ResultSetMetaData meta rs.getMetaData(); getColumnName(int column)获取指定列的名称getColumnLabel(int column)获取指定列的别名getColumnCount()返回当前 ResultSet 对象中的列数。getColumnTypeName(int column)检索指定列的数据库特定的类型名称。getColumnDisplaySize(int column)指示指定列的最大标准宽度以字符为单位。isNullable(int column)指示指定列中的值是否可以为 null。isAutoIncrement(int column)指示是否自动为指定列进行编号这样这些列仍然是只读的。
关于ResultSetMetaData
如何获取 ResultSetMetaData 调用 ResultSet 的 getMetaData() 方法即可获取 ResultSet 中有多少列调用 ResultSetMetaData 的 getColumnCount() 方法获取 ResultSet 每一列的列的别名是什么调用 ResultSetMetaData 的getColumnLabel() 方法