JDBC小结 单例模式 静态代码块

            JDBC小结


J2EE:13个技术点:servlet/JSP JDBC。。。
JDBC: Java DataBase Connectivity(Java数据库连接)
是一种技术规范

 

规范=(文档+接口)

容器下servlet-api.jar是容器厂商对servlet(javax.servlet.)技术的实现。(接口+容器厂商实现)

区分:

JDBC的规范的接口已经打到JDK的包中java.sql
数据库厂商对JDBC的实现    ---------> 数据库驱动程序。

JDBC2.0

JDBC4.0  Derby数据库驱动4.0

Oracle10g中的驱动class12.zip(jar)
Oracle11g中的驱动ojdbc5/6.jar

JDBC的实现原理:

class DriverManager
{
   pirvate static java.sql.Driver driver;
   public static Connection getConnection(String url,String userName,String pwd)
   {
       return driver.connect(url,userName,pwd);
   }
   public static void registDriver(Driver d)
   {
     this.driver = d;
   }
}

class OracleDriver implments java.sql.Driver

{

  //静态的代码块,在类加载进内存时就完成对对象的特殊的初始化(这个动作发生在类的构造器执行之前,也就是在没有对象存在的情况下,静态代码

就已经完成了对对象的特殊的处理 ),此处的作用是,当Oracle的驱动器加载时,就自动创建一个自己。

   static

   {
      DriverManager.registDriver(new OracleDriver());
   }

 

Connection connect(String url,String userName,String pwd)

   {
      如何真实的和Oracle数据库连接
   }
}

Class.forName("oracle.jdbc.driver.OracleDriver"); // 运用反射技术,将Oracle的驱动(class文件)加进内

JDBC:是面试重点,通常要你自己徒手写一个JDBC的连接

                   设计模式之单例设计模式

使用单例设计模式设计的类的特点:

1,在内存中的对象只有一个

2,构造函数私有化

3,提供一个静态的方法,便于外界对象的调用

饿汉式单例设计模式

class Singleton
{
   private Singleton()      // 私有化构造器
   {
   }
   private static Singleton s = new Singleton(); //创建一个自己的对象
   public static Singleton getInstance()  
//提供给外界一个访问的方法
   {
      return s;
   }
}

懒汉式单例设计模式

class Singleton
{
   private Singleton()
   {
   }
   private static Singleton s = null; 
//此处没有创建对象 而是在方法中创建的
   public static synchronized Singleton getInstance()
   {
      if(s == null)
      {
         s = new Singleton();
      }
      return s;
   }
}

// 使用单例模式

Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();

时间: 2024-12-03 22:08:41

JDBC小结 单例模式 静态代码块的相关文章

Java 构造函数 静态代码块

问题描述 Java 构造函数 静态代码块 public class 静态 { public static void main(String[] args) { person p=new person(); p.show(); person p1=new person("xixi"); p1.show(); } } class person{ ** 这里显示"person"错误** private String name; { cry(); } { System.ou

线程类中可以用静态代码块做初始化静态变量么?这些静态变量会不会有并发问题呢?

问题描述 线程类中可以用静态代码块做初始化静态变量么?这些静态变量会不会有并发问题呢? public class SalesConfirmationUploadThread extends Thread { private boolean result = false; private final SalesConfirmationPipedInputStream input; private long orderId; private String pin; private JingdongS

静态代码块,构造代码块,局部代码块演示

public class Test{         static int num;    static int numObj;//记录有多少个对象产生!    static{//静态代码块, 是用来给类进行初始化的!        //num = 10;        ++num;        num *=12;//没有进入静态代码块之前,num的初始化值是0        System.out.println(num);        //main(null);//静态代码块中可以调用ma

Java 25天基础-DAY 06-面向对象-静态代码块

/* 静态代码快 格式: static { 静态代码块中的执行语句. } 特点:随着类的加载而执行,只执行一次.优先于主函数执行. 用于给类进行初始化 / / class StaticCode { static { System.out.println("a"); } } */ class StaticCodeDemo { static { System.out.println("b"); } public static void main(String[] arg

java 中的静态方法和静态代码块分别装载到哪个区

问题描述 java中的静态方法和静态代码块分别装载到哪个区 解决方案 解决方案二: 解决方案三:楼主可看看楼上说的挺好学习了顶解决方案四:应该是栈里解决方案五:方法都是在方法区中,无论是不是静态的.方法表中有一个代码属性,代码属性存放方法代码.解决方案六:好,收了解决方案七:谢谢1楼的,学习了!

Tomcat classloader 与 静态代码块 static

问题描述 Tomcat classloader 与 静态代码块 static tomcat在启动时不是加载了classes以及lib目录下的jar 和 class 么,而且在类加载时静态代码块不是会执行的么,为什么没有执行,求解答~

深入浅析Java中普通代码块、构造代码块与静态代码块_java

//执行顺序:(优先级从高到低.) 静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为普通代码块. *普通代码块执行顺序由他们在代码中出现的次序决定--"先出现先执行" * */ { System.out.p

Java中的static静态代码块的使用详解_java

一.与静态方法的比较 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口.两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 二.静态方法注意事项 使用类的静态方法时,注意: a.在静态方法里只能直接调用同类中其他的静态成员(包括变量

java中的静态代码块、构造代码块、构造方法详解_java

运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System.out.println("I'm B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } } cla