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

网站推广的企业销售推广的方法都有哪些

网站推广的企业,销售推广的方法都有哪些,做ppt网站有哪些,怎么创网站赚钱吗文章目录 前言#x1f30d; 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术#x1f341;3.1关键特性#x1f341;3.2配置选项#x1f341;3.3使用示例 ❄️4. 连接池之Druid技术#x1f341; 4.1主要特性#x1f341; 4.2 配置选项… 文章目录 前言 一.连接池❄️1. 传统获取Conntion问题分析❄️2. 数据库连接池❄️3.连接池之C3P0技术3.1关键特性3.2配置选项3.3使用示例 ❄️4. 连接池之Druid技术 4.1主要特性 4.2 配置选项 4.3 使用示例 二.Apache-DBUtil❄️1. 关键特性❄️2. 主要类和方法❄️3. 使用示例 三.BasicDAO❄️1. 引入❄️2. BasicDAO 类通常包含以下功能❄️3. 以下是如何使用 BasicDAO 的示例 ‍♂️ 作者whisperrr.‍♂️ 专栏JDBC 其他专栏零基础学Mysql 标题探索JDBCJava数据库连接的艺术与魅力 ❣️ 寄语比较是偷走幸福的小偷❣️ 前言 在当今信息时代的浪潮中数据库作为信息存储和处理的核心其重要性不言而喻。作为一名普通的软件开发者我在数据库连接与操作的道路上摸索前行积累了一些实践经验。在此与大家分享关于数据库连接池、Apache-DBUtils和BasicDAO这三个技术的一些心得和体会。本文旨在抛砖引玉希望能够为同行们在优化数据库操作、提高系统性能的征途上提供一点参考和帮助。让我们一起学习共同进步。 一.连接池 在学习一个新技术的时候,我们先来看看传统的方式有哪些问题,新技术又能解决什么样的问题,通过什么方式解决问题. ❄️1. 传统获取Conntion问题分析 传统的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将 Connection 加载的内存中,再验证 IP 地址,用户名和密码,频繁的进行数据库的连接将要占用很多的系统资源,任意造成服务器崩溃.每一次数据库连接,都要及时断开,如果程序出现异常而未能及时关闭,将导致数据库内存泄漏,最终将导致重启数据库传统的获取连接的方式,不能控制连接的数量,如果连接过多,也可能导致数据库的内存泄漏 感情的自然流露我们引出数据库连接池。 ❄️2. 数据库连接池 数据库连接池Database Connection Pool是一种用于提高数据库操作性能和资源管理效率的技术。可以很好的解决上面的传统方式带来的问题. 2.1 数据库连接池的基本原理如下 初始化 在系统启动时创建一定数量的数据库连接并将这些连接放入连接池中。使用 当用户请求一个数据库连接时连接池会提供一个空闲的连接。如果连接池中没有空闲连接则会根据最大连接数限制决定是否创建新的连接。释放 当用户完成数据库操作后不会直接关闭数据库连接而是将连接返回给连接池以便其他请求复用。管理 连接池负责维护连接的状态如定期检查连接的有效性根据需要创建或销毁连接保证连接池中的连接数量在一个合理的范围内。 2.2 数据库连接池的优点包括 提高性能 通过复用连接减少建立和关闭连接的次数显著提高系统性能。资源利用 有效管理数据库连接避免连接泄漏节省系统资源。响应速度 减少等待建立连接的时间提高系统的响应速度。可配置性 可以根据系统负载动态调整连接池的大小适应不同的应用场景。 2.3 数据库连接池的技术包括JDBC的数据库连接池使用javax.sql.DataSource来表示DataSource只是一个接口该接口通常由第三方提供实现[提供.jar] C3PO数据库连接池速度相对较慢稳定性不错(hibernate,spring)DBCP数据库连接池速度相对c3p0较快但不稳定Proxool数据库连接池有监控连接池状态的功能稳定性较c3p0差一点BoneCP数据库连接池速度快Druid(德鲁伊)是阿里提供的数据库连接池集DBCP、C3PO、Proxool优点于一身的数据库连接池 ❄️3.连接池之C3P0技术 c3p0 是一个 Java 编程语言中的数据库连接池库它实现了数据源和 JNDI 适配器用于提高数据库操作的效率和性能。c3p0 旨在提供一个高效、可靠的解决方案用于管理数据库连接减少创建和销毁连接的开销。 以下是 c3p0 的一些关键特性和配置选项 3.1关键特性 自动连接池管理 c3p0 能够自动管理数据库连接池无需手动干预。配置灵活 提供了丰富的配置选项可以通过 XML 文件、属性文件或直接在代码中进行配置。支持多种数据库 c3p0 支持多种关系型数据库如 MySQL、PostgreSQL、Oracle、SQL Server 等。数据源和 JNDI 支持 c3p0 可以配置为数据源并且可以与 JNDI 一起使用便于在应用服务器环境中集成。扩展性 c3p0 设计上考虑了扩展性允许开发者根据需要定制连接池的行为。 3.2配置选项 以下是一些常用的 c3p0 配置参数 initialPoolSize 初始化时创建的连接数。maxPoolSize 连接池中保留的最大连接数。minPoolSize 连接池中保留的最小连接数。maxIdleTime 连接的最大空闲时间超过这个时间未使用的连接将被关闭。acquireIncrement 当连接池中的连接耗尽时一次性创建的连接数。idleConnectionTestPeriod 空闲连接测试周期用于验证空闲连接是否仍然有效。checkoutTimeout 当没有可用连接时从连接池中获取连接的最大等待时间。maxStatements 缓存的最大 SQL 语句数。maxStatementsPerConnection 每个连接可以缓存的最大 SQL 语句数。 3.3使用示例 以下是一个简单的 c3p0 配置和使用示例 import com.mchange.v2.c3p0.ComboPooledDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; public class C3P0Example {private static DataSource dataSource;static {ComboPooledDataSource cpds new ComboPooledDataSource();cpds.setJdbcUrl(jdbc:mysql://localhost:3306/mydb);cpds.setUser(username);cpds.setPassword(password);cpds.setInitialPoolSize(5);cpds.setMaxPoolSize(20);// 其他配置...dataSource cpds;}public static Connection getConnection() throws SQLException {return dataSource.getConnection();}public static void main(String[] args) {try (Connection conn getConnection()) {// 使用连接进行数据库操作} catch (SQLException e) {e.printStackTrace();}} }在使用 c3p0 时建议仔细阅读官方文档并根据实际应用场景调整配置参数以达到最佳性能。随着技术的发展新的连接池技术如 HikariCP提供了更好的性能和更简单的配置因此在选择连接池时可以考虑比较不同库的性能和特性。 ❄️4. 连接池之Druid技术 Druid 是一个用于数据库连接池和SQL监控的Java开源库由阿里巴巴开源。它不仅提供了数据库连接池的功能还包含了许多其他特性如数据库加密、SQL执行日志、PSCache、慢SQL记录、SQL注入攻击防护等。Druid 广泛应用于各种需要数据库操作的Java应用程序中特别是在大数据和高并发的场景下。 以下是 Druid 的一些主要特性和优势 4.1主要特性 强大的连接池管理 Druid 提供了高效的连接池管理支持多种数据库并且能够处理大量并发连接。监控功能 Druid 能够监控数据库访问性能包括执行时间、并发数、慢查询等有助于优化数据库性能。SQL防火墙 Druid 可以防止SQL注入攻击确保数据库的安全性。数据库加密 支持对数据库密码进行加密提高安全性。多种配置方式 Druid 支持多种配置方式包括XML、properties文件、编程方式等。扩展性 Druid 设计灵活可以通过编写插件来扩展其功能。 4.2 配置选项 Druid 的配置选项非常丰富以下是一些常用的配置参数 initialSize 初始化时建立物理连接的个数。minIdle 最小连接池数量。maxActive 最大连接池数量。maxWait 获取连接时最大等待时间单位毫秒。timeBetweenEvictionRunsMillis 间隔多久进行一次检测检测需要关闭的空闲连接。minEvictableIdleTimeMillis 连接在池中最小生存的时间。validationQuery 用来检测连接是否有效的SQL语句。testWhileIdle 建议配置为true不影响性能并且保证安全性。estOnBorrow 申请连接时执行validationQuery检测连接是否有效。testOnReturn 归还连接时执行validationQuery检测连接是否有效。 4.3 使用示例 以下是一个简单的 Druid 配置和使用示例 import com.alibaba.druid.pool.DruidDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; public class DruidExample {private static DataSource dataSource;static {DruidDataSource dds new DruidDataSource();dds.setUrl(jdbc:mysql://localhost:3306/mydb);dds.setUsername(username);dds.setPassword(password);dds.setInitialSize(5);dds.setMinIdle(5);dds.setMaxActive(20);// 其他配置...dataSource dds;}public static Connection getConnection() throws SQLException {return dataSource.getConnection();}public static void main(String[] args) {try (Connection conn getConnection()) {// 使用连接进行数据库操作} catch (SQLException e) {e.printStackTrace();}} }在使用 Druid 时可以通过其提供的监控界面来查看数据库连接池的状态、SQL执行情况等这对于诊断和优化数据库性能非常有帮助。Druid 的监控功能是其一大亮点使得它在众多数据库连接池技术中脱颖而出。 二.Apache-DBUtil Apache DBUtils 是 Apache 软件基金会下的一个开源 Java 库它提供了一套简单的 JDBC helper 类用于简化数据库操作。DBUtils 主要包含两个核心类QueryRunner 和 ResultSetHandler。这些类可以帮助开发者执行 SQL 查询和更新并且处理查询结果而无需编写大量的样板代码。 为什么学习这个技术: 1.关闭connection后resultSet结果集无法使用 2.resultSet不利于数据的管理 3.示意图 以下是 Apache DBUtils 的一些关键特性和用法 ❄️1. 关键特性 简化 JDBC 操作 DBUtils 封装了 JDBC 的基本操作使得数据库操作更加简洁。结果集处理 提供了多种 ResultSetHandler 实现来处理查询结果例如将结果集转换为对象列表、单个对象、数组等。批处理支持 支持批处理操作可以一次性执行多个 SQL 语句。异常处理 提供了异常转换功能将 SQLException 转换为未经检查的异常如 java.lang.RuntimeException 的子类简化异常处理。 ❄️2. 主要类和方法 QueryRunner 用于执行 SQL 查询和更新操作。 query(String sql, ResultSetHandler rsh, Object... params)执行查询操作。update(String sql, Object... params)执行更新操作INSERT、UPDATE、DELETE。 ResultSetHandler 接口用于处理 ResultSet 对象。 ArrayHandler将结果集的第一行数据转换为对象数组。BeanHandler将结果集的第一行数据转换为指定的 JavaBean 对象。BeanListHandler将结果集的所有行转换为指定 JavaBean 对象的列表。ScalarHandler用于处理单个值的结果例如 COUNT、MAX、MIN 等。 ❄️3. 使用示例 以下是一个使用 Apache DBUtils 的简单示例 import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; public class DBUtilsExample {public static void main(String[] args) {QueryRunner runner new QueryRunner();Connection conn null;try {conn DriverManager.getConnection(jdbc:mysql://localhost:3306/mydb, username, password);ListUser users runner.query(conn, SELECT * FROM users, new BeanListHandler(User.class));users.forEach(user - System.out.println(user.getUsername()));} catch (SQLException e) {e.printStackTrace();} finally {if (conn ! null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}} } class User {private int id;private String username;// getters and setters }在这个例子中我们使用 QueryRunner 来执行一个查询并将结果集转换为 User 对象的列表。我们使用了 BeanListHandler 来处理结果集。 Apache DBUtils 是一个轻量级的库非常适合于简单的数据库操作特别是当你不想引入更复杂的 ORM 框架时。然而对于更复杂的数据库操作和业务逻辑可能需要考虑使用更全面的 ORM 框架如 Hibernate 或 MyBatis。 三.BasicDAO ❄️1. 引入 apache-dbutilsDruid简化了JDBC开发但还有不足 1.SQL语句是固定不能通过参数传入通用性不好需要进行改进更方便执行增删改查 2.对于select操作如果有返回值返回类型不能固定需要使用泛型 3.将来的表很多业务需求复杂不可能只靠一个Java类完成 4.引出》BasicDAO画出示意图看看在实际开发中应该如何处理 BasicDAO 是一个通用的数据访问对象DAO抽象层的实现它通常用于简化数据库操作。在Java中DAO层的主要目的是将数据库操作代码与业务逻辑代码分离使得业务逻辑更加清晰同时也便于数据库迁移和维护。 ❄️2. BasicDAO 类通常包含以下功能 连接管理 管理数据库连接的创建和关闭。CRUD操作 提供创建Create、读取Read、更新Update和删除Delete操作的通用实现。查询执行 执行各种SQL查询并处理结果集。事务管理 管理事务的开始、提交和回滚。 以下是一个简单的 BasicDAO 类的示例实现它使用了 Apache Commons DBUtils 来简化操作 import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; public abstract class BasicDAOT {private QueryRunner queryRunner new QueryRunner();private ClassT type;public BasicDAO(ClassT type) {this.type type;}protected Connection getConnection() throws SQLException {// 这里应该根据实际情况来获取数据库连接// 例如从数据源DataSource获取连接return DriverManager.getConnection(jdbc:mysql://localhost:3306/mydb, username, password);}public T queryForObject(String sql, Object... params) throws SQLException {try (Connection conn getConnection()) {return queryRunner.query(conn, sql, new BeanHandler(type), params);}}public ListT queryForList(String sql, Object... params) throws SQLException {try (Connection conn getConnection()) {return queryRunner.query(conn, sql, new BeanListHandler(type), params);}}public V V queryForScalar(String sql, Object... params) throws SQLException {try (Connection conn getConnection()) {return queryRunner.query(conn, sql, new ScalarHandlerV(), params);}}public int update(String sql, Object... params) throws SQLException {try (Connection conn getConnection()) {return queryRunner.update(conn, sql, params);}} }在这个 BasicDAO 类中我们定义了几个方法来执行常见的数据库操作。这个类是泛型的可以用于任何类型的实体类。使用时你需要为你的实体类创建一个继承自 BasicDAO 的具体实现。 ❄️3. 以下是如何使用 BasicDAO 的示例 public class UserDao extends BasicDAOUser {public UserDao() {super(User.class);}// 这里可以添加特定于User的数据库操作方法 } // 使用UserDao UserDao userDao new UserDao(); User user userDao.queryForObject(SELECT * FROM users WHERE id ?, 1); ListUser users userDao.queryForList(SELECT * FROM users); int updatedRows userDao.update(UPDATE users SET username ? WHERE id ?, newUsername, 1);在这个例子中UserDao 继承自 BasicDAO 并指定了实体类 User。然后你可以使用 UserDao 来执行针对 User 表的数据库操作。 请注意这个 BasicDAO 示例是一个简化版本实际应用中可能需要更多的功能和错误处理。此外直接使用 JDBC 和 DBUtils 可能不是最佳实践特别是在大型或复杂的项目中通常会使用更高级的框架如 Hibernate、MyBatis 或 Spring Data JPA 来处理数据访问层。
http://www.dnsts.com.cn/news/29469.html

相关文章:

  • 沈阳网站建设哪里的公司比较好关于做ppt的网站有哪些
  • 营销型网站建设制作推广购物网站哪个质量好
  • 网站建设与维护模拟一如何选择做pc端网站
  • 怎么做属于自己的音乐网站莱芜找工作网站
  • 公司网站要多少钱重庆定制网站开发
  • 请简述网站制作流程wordpress ent主题
  • yes风淘宝网站图片展示网页设计
  • 没有域名的网站需要备案吗网络商城建设费用
  • 一个网站大概多少页面只有后端可以做网站吗
  • 上海迈诺网站建设专业生产佛山网站建设
  • 高清素材网站无水印杭州公司注册地址租赁
  • 苏州网站推广哪家好美食网站设计规划书
  • 百度站点宁波网站seo报价
  • asp网站数据库扫描网上商城搭建
  • 360云盘做 网站图片服务器个人域名备案查询
  • 响应式网站好还是自适应网站好海外推广
  • 如何建设网站教程视屏哈尔滨专业网站制作
  • 建设一个外贸网站需要多少钱简单静态网页制作代码
  • 朝阳双桥网站建设什么是域名
  • 绵阳网站建设工作室苗木企业网站建设源代码 园林网站源码程序 苗圃花卉网站制作源码
  • 网站建设放什么会计科目网站推广怎么做 知乎
  • wordpress修复数据库网络推广与seo的区别在哪里
  • 海尔网站推广方法杭州淘宝代运营公司十大排名
  • 青岛做视频的网站做公司网站合同
  • 安卓毕业设计代做网站PS网站设计
  • 做网站建设公司排名织梦cms通用蓝白简介大气企业网站环保科技公司源码
  • 广东省路桥建设有限公司网站用手机可以做网站
  • 哈尔滨市建设安全监察网站网站建设用php建设优点
  • 什么软件可以做动画视频网站找马云做网站
  • 太原制作网站的公司苏州网站seo