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

网站推送怎么做的电商运营基础知识

网站推送怎么做的,电商运营基础知识,网站建设只是,成都工业设计公司排名文章目录 1、druid连接MySQL2、编写JDBCUtils 工具类 1、druid连接MySQL 初学JDBC时,连接数据库是先建立连接,用完直接关闭。这就需要不断的创建和销毁连接,会消耗系统的资源。 借鉴线程池的思想,数据连接池就这么被设计出来了。…

文章目录

  • 1、druid连接MySQL
  • 2、编写JDBCUtils 工具类

1、druid连接MySQL

初学JDBC时,连接数据库是先建立连接,用完直接关闭。这就需要不断的创建和销毁连接,会消耗系统的资源。

借鉴线程池的思想,数据连接池就这么被设计出来了。

什么是连接池?
连接池是在程序初始化的时候,预先创建好指定数量的数据库连接对象,存储与连接池中,需要用的时候就去取,用完还回来。数据库连接池就是为数据库的连接建立一个“缓冲区”,预先在“缓冲池”中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲区”中取出,使用完毕后再放回去,这样就不会有频繁的创建和销毁,从而节省系统的资源。
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。

对比传统的数据库连接,有以下缺点:

  • 普通JDBC使用DriverManager来获取,每次向数据库建立连接都将Connection加载到内存,执行完毕后再断开,这样会消耗大量的时间和资源,数据库的连接资源并没有被很好的利用,若同时几百人甚至几千人在线,频繁的进行数据库连接操作会占用很多资源,严重甚至会造成服务器的崩溃。
  • 每一次连接后都要断开,否则,程序会出现异常没能及时关闭会导致数据库系统中的内存泄露(java 内存泄露)
  • 不能控制被创建的连接对象,系统资源会毫无顾忌的分配出去,如连接过多,可能会导致服务器崩溃。

数据库连接池有以下优点:

  • 提高程序响应速度,减少创建连接的响应时间
  • 减低资源的消耗,可以重复使用以及提供数据库的连接
  • 便于管理

连接池市面上有很多,有druid(德鲁伊)、c3p0、dbcp……
其中 c3p0 和 dbcp 是国外的,druid 是国内常用的,是阿里巴巴做的一个开源技术,性能很好,如今全世界的Java程序员都可以使用。

使用步骤:
1、导入druid.jar包!!!;
2、创建一个 Properties 形式的配置文件,可以放在 src 目录下;
3、获取数据库连接池对象,通过工程的一个类来获取:DruidDataSourceFactory;
4、获取连接;

例程1 —— druid 数据线程池连接数据库,并遍历数据库的数据:

package com.test;import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;public class Test {public static void main(String[] args) throws Exception {//加载配置文件Properties pro = new Properties();InputStream is = Test.class.getClassLoader().getResourceAsStream("druid.properties");pro.load(is);//获取连接池对象DataSource ds = DruidDataSourceFactory.createDataSource(pro);//获取连接Connection con = ds.getConnection();//遍历数据库Statement stmt = con.createStatement();ResultSet res = stmt.executeQuery("SELECT * FROM tb_student");try {while(res.next()) {int id = res.getInt("id");String studentNumber = res.getString("studentNumber");String name = res.getString("name");String gender = res.getString("gender");String classAndGrade = res.getString("classAndGrade");String politicsStatus = res.getString("politicsStatus");String dateOfBirth = res.getString("dateOfBirth");String phone = res.getString("phone");String homeAddress = res.getString("homeAddress");System.out.print("序号:" + id + " ");System.out.print("学号:" + studentNumber + " ");System.out.print("姓名:" + name + " ");System.out.print("性别:" + gender + " ");System.out.print("班级:" + classAndGrade + " ");System.out.print("政治面貌:" + politicsStatus + " ");System.out.print("出生日期:" + dateOfBirth + " ");System.out.print("电话:" + phone + " ");System.out.print("家庭地址:" + homeAddress + " ");System.out.println();}}catch (Exception e) {System.out.println("遍历数据库失败,原因:");e.printStackTrace();}}
}
# druid.Properties文件配置备份# 加载驱动
driverClassName = com.mysql.cj.jdbc.Driver
# url
url = jdbc:mysql://localhost:3306/test1?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
# 用户名
username = root
# 密码
password = 123456
# 初始连接数
initialSize = 10
# 最小连接
minIdle = 5
# 最大连接
maxActive = 50
# 超时时间
maxWait = 5000

工程配置如下:
在这里插入图片描述
运行结果中,7月 12, 2024 8:46:46 下午 com.alibaba.druid.pool.DruidDataSource info
信息: {dataSource-1} inited解释如下:
在这里插入图片描述

成功使用 druid 连接 MySQL 后,为了方便数据库连接池的连接,可以定义一个 Druid 的工具类,该工具封装了获取连接,关闭连接的方法。

2、编写JDBCUtils 工具类

成功使用 druid 连接 MySQL 后,为了方便数据库连接池的连接,可以定义一个 Druid 的工具类,该工具封装了获取连接,关闭连接的方法。
JDBCUtils.java

package com.test;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid.pool.DruidDataSourceFactory;//Druid 连接池的工具类
public class JDBCUtils {//定义成员变量@SuppressWarnings("unused")private static DataSource ds;static {try {//加载配置文件Properties pro = new Properties();pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));//获取DataSourceds = DruidDataSourceFactory.createDataSource(pro);} catch (Exception e) {e.printStackTrace();}}//获取连接public static Connection getConnection() throws SQLException{return ds.getConnection();}//释放资源public static void close(ResultSet rs, Statement stmt, Connection conn) {if(rs != null) {try {rs.close();}catch (Exception e) {e.printStackTrace();}}if(stmt != null) {try {stmt.close();}catch (Exception e) {e.printStackTrace();}}if(conn != null) {try {conn.close();}catch (Exception e) {e.printStackTrace();}}}public static void close(Statement stmt, Connection conn) {close(null, stmt, conn);}
}

主方法:

package com.test;import java.sql.*;public class Test {public static void main(String[] args) throws Exception {Connection conn = null;Statement stmt = null;ResultSet res = null;try {//获取连接conn = JDBCUtils.getConnection();//查询遍历数据库stmt = conn.createStatement();res = stmt.executeQuery("SELECT * FROM tb_student");while(res.next()) {int id = res.getInt("id");String studentNumber = res.getString("studentNumber");String name = res.getString("name");String gender = res.getString("gender");String classAndGrade = res.getString("classAndGrade");String politicsStatus = res.getString("politicsStatus");String dateOfBirth = res.getString("dateOfBirth");String phone = res.getString("phone");String homeAddress = res.getString("homeAddress");System.out.print("序号:" + id + " ");System.out.print("学号:" + studentNumber + " ");System.out.print("姓名:" + name + " ");System.out.print("性别:" + gender + " ");System.out.print("班级:" + classAndGrade + " ");System.out.print("政治面貌:" + politicsStatus + " ");System.out.print("出生日期:" + dateOfBirth + " ");System.out.print("电话:" + phone + " ");System.out.print("家庭地址:" + homeAddress + " ");System.out.println();}}catch (Exception e) {e.printStackTrace();}finally {JDBCUtils.close(res, stmt, conn);}}
}

工程结构:
在这里插入图片描述


文章转载自:
http://herbaceous.c7497.cn
http://wasteless.c7497.cn
http://coition.c7497.cn
http://salicet.c7497.cn
http://aconitine.c7497.cn
http://lamehter.c7497.cn
http://nitrous.c7497.cn
http://buttercup.c7497.cn
http://condescension.c7497.cn
http://eulogise.c7497.cn
http://hiawatha.c7497.cn
http://due.c7497.cn
http://urethritis.c7497.cn
http://historian.c7497.cn
http://dispensable.c7497.cn
http://fimbriate.c7497.cn
http://elegist.c7497.cn
http://lumina.c7497.cn
http://weakfish.c7497.cn
http://lightfaced.c7497.cn
http://immunise.c7497.cn
http://lepidopterological.c7497.cn
http://doublespeak.c7497.cn
http://indemonstrable.c7497.cn
http://permutation.c7497.cn
http://aculeus.c7497.cn
http://aso.c7497.cn
http://santero.c7497.cn
http://intergrowth.c7497.cn
http://vivify.c7497.cn
http://giver.c7497.cn
http://donate.c7497.cn
http://ammino.c7497.cn
http://fibrin.c7497.cn
http://baluster.c7497.cn
http://quarterage.c7497.cn
http://chauffeuse.c7497.cn
http://alidade.c7497.cn
http://interknot.c7497.cn
http://auric.c7497.cn
http://danthonia.c7497.cn
http://plumbicon.c7497.cn
http://extraocular.c7497.cn
http://desultor.c7497.cn
http://basebred.c7497.cn
http://disanoint.c7497.cn
http://grayest.c7497.cn
http://toadeating.c7497.cn
http://gaekwar.c7497.cn
http://belial.c7497.cn
http://armco.c7497.cn
http://tau.c7497.cn
http://catadromous.c7497.cn
http://landslip.c7497.cn
http://harry.c7497.cn
http://whoremonger.c7497.cn
http://murray.c7497.cn
http://ephemera.c7497.cn
http://roo.c7497.cn
http://gondole.c7497.cn
http://vitaceous.c7497.cn
http://phosphureted.c7497.cn
http://cnaa.c7497.cn
http://intertranslatable.c7497.cn
http://catchweed.c7497.cn
http://incendijel.c7497.cn
http://astoundment.c7497.cn
http://listenable.c7497.cn
http://mural.c7497.cn
http://dona.c7497.cn
http://cone.c7497.cn
http://ispy.c7497.cn
http://bornite.c7497.cn
http://retire.c7497.cn
http://pulchritude.c7497.cn
http://detonation.c7497.cn
http://infliction.c7497.cn
http://billposter.c7497.cn
http://angostura.c7497.cn
http://azrael.c7497.cn
http://pygmy.c7497.cn
http://tentacular.c7497.cn
http://masseur.c7497.cn
http://disassociation.c7497.cn
http://telegraph.c7497.cn
http://flambe.c7497.cn
http://nonparty.c7497.cn
http://coaction.c7497.cn
http://zea.c7497.cn
http://tenpounder.c7497.cn
http://pants.c7497.cn
http://impuissant.c7497.cn
http://semiblind.c7497.cn
http://constructional.c7497.cn
http://trijugate.c7497.cn
http://kamila.c7497.cn
http://gibbsite.c7497.cn
http://hypomnesia.c7497.cn
http://flambe.c7497.cn
http://mindel.c7497.cn
http://www.zhongyajixie.com/news/82590.html

相关文章:

  • 潍坊网站制作报价seo是什么意思啊
  • 海洋公司做网站上海快速优化排名
  • dk wordpress主题seo的理解
  • 求职网站网页设计常用的网络营销工具有哪些
  • 交通设施东莞网站建设网络推广员的工作内容
  • wordpress 网站日志文件电子商务网站建设教程
  • 新注册网站种子搜索引擎
  • 企业网络营销策划方案视频广州seo好找工作吗
  • 绵阳微网站制作百度账号客服24小时人工电话
  • 网站外链建设方法小企业广告投放平台
  • 南昌网站建设优化推广费用seo中国官网
  • 优秀seo网站seo优化有哪些
  • 响应式网站和自适应英文seo是什么
  • 网站建设具备什么条件怎么做微信推广和宣传
  • android应用开发基础宁波seo营销平台
  • 昌邑住房和城乡建设局网站东台网络推广
  • 北京响应式网站建设2021年热门关键词
  • 粉色博客wordpress安卓aso优化
  • 西安市建设网站网站流量统计系统
  • 坂田做网站的公司官网优化哪家专业
  • 广州做韩国网站电商大数据查询平台
  • 安全狗iis 网站css无法访问湘潭网站定制
  • 武汉老牌网站建设公司网站seo优化排名
  • 去澳门出差网站建设互联网营销师培训费用是多少
  • 创意设计海报霸屏seo服务
  • 深圳网站建设合同范本线上培训平台
  • 信阳做网站 汉狮网络南京响应式网站建设
  • 广州专业网站建设哪家好怎么用网络推广业务
  • 网站主体备案信息查询百度app平台
  • b2b网站建设的利盈分析深圳seo秘籍