Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 一.连接池概述 1>.什么是连接池 用池来管理Connection,这样可以重复使用Connection.有了池,所以我们就不用自己来创建Conn…
Java基础-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类加载器 1>.JVM 类加载机制  如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程.(下图引用自:http://www.importnew.com/25295.html) 加载过程 答:就是指将class文件读入内存(JVM的方法区),并在堆内存中为之创建一个Class对象.任何类被使用时系统都会自动建立一个Class字…
Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Oracle官方对反射的解释是 Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fi…
Java基础-变量的定义以及作用域详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字面量 常量(字面量)表示不能改变的数值(程序中直接出现的值).字面量有时也称为直接量,包括所有的整数,所有的小数,所有的字符,布尔值,null.Java中常量(字面量)的分类: 1>.整数常量: 直接出现的整数,如:1,2,3,4,.....等等. 2>.小数常量: 直接出现的小数,如:3.14,9.8等等. 3>.布尔(boolean)型常量: 只有两个值:true 和 fa…
1.说明 java中有个扩展包 javax下面有个DataResource的接口  javax.sql.DataResource 该接口定义了连接池的方法规范 而DBCP框架有apache公司开发,他实现了接口DataResource定义的方法 他的实现类是BasicDataResorce    org.apache.commons.dbcp.BasicDataSource; 2.写定义连接池的类 package demo; /* * 使用DBCP实现数据库的连接池 * 连接池配置,自定义类,…
String 类详解   StringBuilder与StringBuffer的功能基本相同,不同之处在于StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此效率上StringBuilder类更高,但是在多线程环境中则应该使用StringBuffer,String类是final的,所有改变String对象的操作都会生成一个新的String对象(通过调用StringBuilder类完成) public class LearnString { public stat…
Java线程池使用说明 一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用.为我们在开发中处理线程的问题提供了非常大的帮助. 二:线程池 线程池的作用: 线程池作用就是限制系统中执行线程的数量.     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪…
java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘.接下来本教程就说一下druid的简单使用. 首先从 http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包.如果想使用最新的源码编译,可以从 https://github.com/alibaba/druid 下载源码…
有点笨,参考了好几篇大佬们写的文章才整理出来的笔记.... 字面意思上解释,线程池就是装有线程的池,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用. 好处 多线程产生的问题 一般我们使用到多线程的编程的时候,需要通过new Thread(xxRunnable).start()创建并开启线程,我们可以使用多线程来达到最优效率(如多线程下载). 但是,线程不是越多就越好,线程过多,创建和销毁就会消耗系统的资源,也不方便管理. 除此之外,多线…
单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * Redis操作接口 * * @author NiceCui * @version 1.0 2017-6-14 上午08:54:14 */ public class RedisAPI { privat…
<!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property n…
package ${enclosing_package}; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class ${primar…
1.JDBC介绍 JDBC的全称是Java Data Base Connectivity(Java数据库连接).是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问(例如MySQL,Oracle等),它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,JDBC实现了所有这些面向标准的目标并且具有简单.严格类型定义且高性能实现的接口. JDBC给数据库的连接搭建了桥梁,然后再根据不同的数据…
继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我们编写的类没有手动指定父类,系统会自动继承objet(Java继承体系中最顶层的类)为父类 关键字: 成员方法关键字区分: this.方法名()当前类方法 super.方法名()父类方法 this.当前类的成员变量 super.父类成员变量 final修饰变量: 基本数据类型:其值不能被改变 引用数…
本文将从线程的使用方式.源码.synchronized关键字的使用方式和陷阱以及一些例子展开java线程和synchronized关键字的内容. 一.线程的概念 线程就是程序中单独顺序的流控制.线程本 身不能运行,它只能用于程序中. 二.线程的实现 线程的实现有两种方式: 1.继承Thread类并重写run方法 2.通过定义实现Runnable接口的类进而实现run方法 当用第一种方式时我们需要重写run方法因为Thread类里的run方法什么也不做(见下边的源码),当用第二种方式时我们需要实现…
在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用.   No. 内置对象 类型 描述 1 pageContext javax.servlet.jsp.PageContext JSP的页面容器 2 request javax.servlet.http.HttpServletRequest 得到用户的请求信息 3 response javax.servlet.http…
序列化的作用:为了不同jvm之间共享实例对象的一种解决方案.由java提供此机制. 序列化应用场景: 1. 分布式传递对象. 2. 网络传递对象. 3. tomcat关闭以后会把session对象序列化到SESSIONS.ser文件中,等下次启动的时候就把这些session再加载到内存中. 完整案例: import java.io.Serializable; public class Box implements Serializable { public Box(){ System.out.p…
一.单选题 (题数:30,共 150.0 分) 1.下列选项不可作为Java语言变量名的是(    ).(5.0分) A.a1            B.$1           C._1           D.21 分析: 知识点回顾: 声明变量:数据类型 变量名: 例:int age; 在Java语言中,变量命名要符合一定的规则: 1. 标识符必须以字母.下划线"_"或" $ "符号开头. 2. 标识符可以包括数字,但不能以数字开头.  3. 除了 "…
由于在Java中System.arraycopy()方法在一维数组和二维数组中的表现不同,所以做了一个测试 public static void main(String[] args) { int[] a = new int[] { 1, 2, 3, 4, 5, 6 }; int[] b = new int[8]; //System.arraycopy(原数组, 原数组起始位置, 目标数组, 目标数组起始位置, 复制长度); System.arraycopy(a, 0, b, 0, 3); b[…
HelloWorld 1.新建一个java文件 文件后缀名为.java Hello.java [注意点]系统可能没有显示文件后缀名,我们需要手动打开 2.编写代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!"); } } 3.编译 javac java文件,会生成一个class文件 4.运行class文件 java class文件 可能会遇到的问题…
obj instanceof class 也就是说这个对象是不是这种类型, 1.一个对象是本身类的一个对象 2.一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象 3.所有对象都是Object 4.凡是null有关的都是false ** null instanceof class ** class.isInstance(obj) 这个对象能不能被转化为这个类 1.一个对象是本身类的一个对象 2.一个对象能被转化为本身类所继承类(父类的父类等)和实现的接口(接口的父接口)强转 3.所…
http://blog.csdn.net/hj7jay/article/details/51686418 http://lj6684.iteye.com/blog/1770093 http://www.iteye.com/magazines/90…
配置文件 db_dbcp.properites driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/db?useSSL=true username=root password=123456 DBCP连接池工具类 DBCPUtils.java package top.try51.utils; import java.io.InputStream; import java.sql.Connection; import j…
今日内容介绍 1.DBUtils2.处理结果集的八种方式3.连接池4.连接池的用法1 PrepareStatement接口预编译SQL语句 1.1 预处理对象 * 使用PreparedStatement预处理对象时,建议每条sql语句所有的实际参数,都使用逗号分隔. * String sql = "insert into sort(sid,sname) values(?,?)";; * PreparedStatement预处理对象代码: * PreparedStatement psmt…
package cn.sasa.demo1; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; public class DBUtils { private static BasicDataSource datasource = new BasicDataSource(); static { /** * 连接池: * 存放连接的容器 * 不需要每次都创建连接.释放连接 * * DataSou…
Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程.线程是程序执行任务的最小单位. 1>.进程的概念: 进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 2>.线程的概念: 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有…
DBCP连接池简介 1.数据库连接基础 数据库连接池基础主要包括以下三个方面的内容:数据库连接池的基本概念.数据库连接池的工作原理.Java开源的连接池.下面将从这三个方面一一介绍: (1)数据库连接池的基本概念 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的Web应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.因此,数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用…
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 错误描述 报错日志 原因分析 解决方案解决这个问题的办法有三种推荐第二种 增加 MySQL 的 wait_timeout 属性的值 减少连接池内连接的生存周期 定期使用连接池内的连接 知识扩展 C3P0 使用DBCP连接池时出现MySql 8小时断开连接的解决方法 回顾 本文提供了对c3p0与DBC…
本文提供了对c3p0与DBCP连接池连接MySql数据库时. 8小时内无请求自己主动断开连接的解决方式.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方式. 基本问题解决 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,公布环境为Tomcat 7 错误描写叙述: 项目执行一段时间(大概几个小时)之后訪问时会出现第一次訪问报错,再次訪问正常的现象.且多次出现此问题. 报错日志: org.springframework…
一般常用的连接池是DBCP和C3P0. package cn.itcast.spring3.demo1; import java.sql.DriverManager; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annota…