




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 Java发展史 诞生时间:1991 公司 :sun Java之父:James Gosling二、 Java的三个方向 J2ME 面向手机的应用 J2EE 面向企业的应用 J2SE 桌面应用Google Android 面向3G手机开发/智能手机开发三、 Java的类型:编译型和解释型的结合, 硬件OSJVMJava application, 编译依赖 jdk做编译 运行 jre (Java运行时环境)四、 Jdk (Java development kits)Java开发工具集1. 编译与安装所依赖的工具 安装所需注意事项: 安装目录不能有空格和特殊字符 安装目录不能有汉字2. 版本 1.6 开发应用版 1.5 1.4 成熟版本六、 环境变量 Path :指定OS执行指令的路径 Classpath:类文件的路径 Java_homel 环境变量配置过程Path:我的电脑右键高级环境变量 用户级:仅对配置用户生效 系统级:对所有用户生效path编辑jdk安装的bin目录下例如:E:javabinClasspth: 我的电脑右键高级环境变量名称:classpath路径:(2种配置方法)a) 表示编译后class所存放的目录为当前目录b) Dt.jar Tools.jarJava运行环境功能:加载、校验、执行,Path:D:javajdk1.6.0_11bin;Classpath:D:javajdk1.6.0_11jrelibrt.jar;.;l 使用jdk的注意事项版本兼容性 工具与jdk之间的依赖关系 应用服务器与jdk之间关系测试jdk Java 运行Java application 程序命令(基于main方法运行命令) Javac 编译Java 源程序命令 Javadoc 生成Java文档的命令 Jar 生成 jar 包命令 Javah 编译与其他外部程序(c或c+)的命令 Javaw 带参数的编译命令 Java源文件:Java文件严格区分大小写,类名与文件名严格一致(包括大小写)编译源文件:javac Hello.java编译后可见到:Hello.class编译成功NoClassDefFoundError 类文件找不到 类名写错(大小写或字母) Classpath问题 文件后缀名七、 开发工具种类收费开源大小内存占用集成度公司GUI(awt swing)安装JDKEclipseNoYes小小低IBM不支持YesmyeclipseYesNo大大支持(不好)NojbuiderYesNo大大Broland支持较好NoWebSphereYesNo大大IBM支持较好NojcreateNoIntel-idealYesNo小小低Intel不支持YesnetbeanYesNo大大SUN支持No企业里面用的主要用两种工具:Myeclipse=Eclipse+插件八、 Eclipse 工程src :default output folder projectBIN编译生成后的class文件TODO 表示未完成的工作(做了一个标记)1. 语法校验。2. 保存的时候,对源文件进行编译。3. 注释掉的代码不参与编译4. 编译 增量编译过程,5. 重新编译的方法: 删除编译好的class projectbin;然后刷新; 菜单栏projectclean6. 约定俗成 类名首字母大写 类名要有一定的意义 类名可以用汉字命名2009年12月21日0:55:41类类的定义:everything is object;class/ obiect类的组成: 属性(对特征的描述)在代码中对应成员变量 方法(对动作或者是行为的描述)在代码中对应方法Cat 类的名称String Kind类的属性String ColorString SexInt AgeVoid catchMouse();类的方法Void eat();Void sleep();UML (unified modeling language)统一建模语言建模软件IBM Rose 属性:Public String a;修饰符 类型 标识 位置:类里面 方法外面 方法Public void eat()方法的签名或定义/ 修饰符 返回值 名称 (参数列表)/方法体 方法的返回值 Void 表示无返回值 返回值类型 方法名()Return 数据*类型=返回值类型u 如何设计方法 看方法是否需要返回值; 方法是否需要传递参数; 方法粒度问题(粗粒度 细粒度)。一般要求方法细粒度,将动作写成独立的方法(粒度太细,不好抽取)一般要求不超过100行(约定俗称)严格意义来说,所有的方法必须加注释开发角度来看,对比较复杂的或者业务逻辑较强的需要加注释u 方法的抽取 考虑方法的命名,尽量不破坏原方法的名称; 考虑抽取方法的参数,分析原方法得到合适参数; 注意方法的返回值。u 使用方法的优点: 可维护性 封装型 可复用性2. 对象:实际存在的该类的每个个体,又叫实例3. 创建对象:对象通过类来创建(类模板创建具体的个体(实例)通过类的构造器创建对象关键字 new New+构造器创建对象并赋值类名 变量名= new 构造器例如:Cat a = new Cat();4. 构造器修饰符 类名 (参数列表)/TODO 如果无任何参数表示的是默认的参数的构造器 在类中如果不写任何构造器,系统默认提供一个默认的无参的构造器一旦写了有参的构造器,则系统原有的无参构造器会被屏蔽(无参数的默认的构造器将不存在)建议:如果在类中存在有参数的构造器,手动还原无参构造器。 Public 类名();保证类仅需要有参数构造器,不需要提供默认构造器。含有参数的构造器创建对象可以通过参数给成员变量(属性)赋值New Cat(“”);将上述创建的对象赋值给声明的变量Cat c;c = new Cat(“”);2种用法创建对象给变量赋初值 Print 输出 Println 输出并换行从过程到面向对象的方法的应用 过程化特点:将所有操作(动作)都在主函数中执行 面向对象特点:可复用性转变:将过程化程序中的操作(动作)分离出来,形成方法粒度问题(了解)l 当碰见含糊不清的需求时,应该去找客户问清需求2009年12月22日9:01:19一、 1. 包 package 创建包 Ctrl+Npackage选中next输入包名2. 命名规范:与DNS相似,从大到小Example:com.softeem.orderflower.power商业化.公司名称.项目名称.模块名称一般以模块给包命名,以示区分。3. 采用包的优点 代码层次清晰 便于代码维护 访问权限控制4. 注意事项:不允许代码不含任何包结构.5. 导入包:标识引用当前类的路径Import 包路径+类名指定所需要的类所在的位置。包的声明6. Declare 包的全路径二、 信息隐藏与封装 隐藏:不允许通过对象或类直接访问类的成员变量; 封装:将成员变量与方法相结合,通过方法操作成员变量的值;实现思路: 将成员变量的修饰符设定为私有private(私有的成员变量仅在当前类可见), 设计方法,通过方法赋值,方法中需要值的传递,即方法需要参数,无返回值的set含参数方法。通过方法获取成员变量的值,需要返回值,返回值的类型与成员变量的类型一致,不需要参数传递。保留关键字:goto, const;u 数据类型:8种基本类型: boolean,byte,short,char,int,long,float,double引用类型,“”转义字符 n 换行 r 回车 t 制表符 反斜杠u 数据类型的转换,自动转换,(类型的自动提升),不需要显示转换,自动转换,数据不会丢失强制转换,从大到小,语法规则:类型 变量名称 =(类型) 需要转换的数据强制转换会发生数据丢失现象(慎重)。u 引用对象的内存分配Aa;new A();A =new A();(1) 声明的一个A(引用类型的对象),名称为a;在栈内存中分配一个空间,存放a(2) new A();在堆内存中分配空间,创建对象.并初始化成员变量(赋初值)。给成员变量赋值。(3) 通过”=” 进行赋值,将对象的地址空间赋给变量a。静态的方法调用一个变量:通过对象调用;将此变量定义成静态的。2009年12月26日9:01:511. 成员变量:类里面,方法外面;成员变量可以只声明,不赋值。例如:int a; Char c;系统根据不同的类型给赋初始值Char c=”u0000”;Boolean b=false;2. 方法传递参数(值传递) 基本类型:直接传值; 引用类型:传递地址值(传递内存地址)3. 字符串池字符串池,存放多个字符串String s=”abcd”;String s=new String ();s=”abcd”; 到字符串池中去查找,如果查找到相匹配(匹配字符串值)的,则直接赋地址值 如果查询不到,则重新创建字符串对象,并赋值;考试题:28:001010004. 负数十进制取二进制:取绝对值,计算二进制数;取反;+100000000 0000000 00000000 0000000 000001111111111 1111111 1111111 11111111 11111000 +1 1111111 1111111 1111111 11111111 11111001System.out.println(Integer.toBinaryString(-7);System.out.println(Integer.toHexString(-7);System.out.println(Integer.toOctalString(-7);-7(86%32) 整数长度为32位,实际移动的位数=移动位数%32Float 32 double 64-722 正数左移变大,右移变小 赋值左移变小,右移变大5. 表达式 程序块或方法6. 成员变量可以在声明变量的同时并赋值7. 循环或判断 不能超过3层switch(i) case break defaulti 可以为char byte int short 和枚举型2009年12月27日9:16:20一、 数组Type arr_name=new Typeint 非负数;=new Type();初始化:通过数组下表指定数组的元素。a0数组下表从0开始,代表a数组第一个元素;数组最大下标+1=数组长度 a.length获取数组中的数据For ForeachFor (int m:arr)(syso(m);对数组arr进行循环,每次循环得到的值赋给变量m,JDK1.6支持String substring(int i)截取字符串 从指定位置截取到字符串末尾Substring(int begin,int end) 截取begin到end之间的字符串Split (String regex)分隔字符,根据匹配项进行分割,返回数组类型.数组排序:Arrays.sort()根据hashcode排序;数组拷贝:System.arrayCopy(from,fromIndex,to,toindex,count)原数组 起始索引 目标数组 起始索引 拷贝个数二、1. This关键字:表示当前类的对象 调用成员变量 this.age 调用构造器 this 调用构造器的同时,该语句应该放在第一个可执行语句块(放在第一行,同一个构造其中,不能调用多个构造器) 调用方法,调用当前类的方法 this.method()2. 访问控制符Privatedefaultprotectedpublic同一个类同一个包子类全局3. 多态:同一方法不同实现 Overload:方法名相同,参数(个数,顺序,类型)不同Var instanceof type 判断对象与类之间的关系,如果对象属于类或其子类,则返回true,反之falseStatic 变量 方法 内部类Static eye,Static fetchMouse内存D Class Dog Var methodDog Class Dog Var methodStatic 修饰的方法放在内存中的公共区域可以通过对象或者类名直接调用静态方法或者静态变量如果,对静态变量进行赋值,那么因为它在公共区域,其他对象可以直接获取到上一次保存的数据例如: 计数器 说明: 统计Dog被实例化的次数通过构造器进行实例化默认的构造器Public dog()+i;4. 程序块(1) 静态语句块Static(2) 非静态语句块在静态块执行之后,在构造器执行之前被执行(3) 执行构造器。2009-12-28 10:11:341. 继承父类与子类之间有相似度,父类包含子类,又称为子类是父类的一类。语法规则:修饰符 class classname extends FatherClassJava中是单继承,可以通过接口实现多继承。2. 继承是面向对象的方法之一优点: 继承可以避免重复代码。提高开发效率; 层次更加清晰; 提高内聚(在类中方法或变量的相互依存关系);3. 类的转换原则:父类 f=子类;子类向父类转换时自动转换(隐式转化)子类 c=(父类)f父类向子类转换强制转换,直接转换会出现转换异常转换方法:先将子类转换成父类,然后转换成子类父类的对象,子类的方法。Super 关键字:Super 代表父类的对象可以用super调用父类构造器,方法中不能调用构造器。构造器可以调用父类或子类的构造器。Super(),Super(),this (),this ()。可以调用方法super.method();子类里面可以调用父类的方法:父类不能满足子类的需要或者父类的方法初始化数据4. 父类子类加载顺序:子类的初始化依赖于父类的构造器,如果在子类中不显示的调用父类构造器,默认调用父类的无参构造器(默认构造器),如果子类没有显示调用父类构造器,而父类也没有提供默认的无参构造器,则编译出错。子类在初始化过程中,调用父类构造器,先初始化父类。a. 先加载父类的静态块;b. 如果子类有静态块,则加载子类静态块;c. 加载父类的非静态块;d. 执行父类的构造器;e. 初始化子类,加载子类的非静态块;f. 执行子类的构造器父类静态块子类静态块父类非静态块父类构造器子类非静态块子类构造器5. 多态 覆盖(override)发生在父类子类之间,父类的方法与子类的方法前面完全相同(不含访问控制符)Different of Overload and override 子类父类之间存在同名的同类型的成员变量,变量隐藏; 方法的隐藏,在创建子类对象的同时,会将父类同签名的方法覆盖掉; 如果子类对象,调用的是父类的方法,那么方法操作的是父类的变量;调用是的子类的方法,那么操作的是子类的变量 继承的应用,如果一个父类存在多个子类,且子类中的方法相同方法的参数相同,则可以创建一个公共方法,来调用不同子类的方法,在公共方法中以父类作为参数,在实际调用过程中,根据具体的子类对象进行传递即可; 如果在子类中需要对父类的传递参数,可以通过调用父类的构造器传递值2003年12月1日9:29:471. 常量 final +static eg:public static final int I=0;常量的变量名称全部用大写,常量表示不可修改的值;在实际项目中,通常会将常量单独放到一个类中,并加以说明2. Final 修饰的类Public final class A2.1. Final 修饰的类表示最终类,不可以被继承;2.2. 在应用中,一般设计的类完全能够满足要求,并且不希望其他人对该类进行扩展的时候将其设计为最终类;2.3. JDK中String,integer,double,Math为最终类3. Abstract 可以修饰类或方法。修饰类的时候表示是抽象类,抽象类不能实例化;修饰方法表示抽象方法,抽象方法不能有方法体。如果需要实例化抽象类,只能通过其不是抽象类的子类来实例化并使用,抽象方法在子类中实现。接口 interface 接口是抽象的变种。 接口中不能有任何实现的方法,接口中默认的方法都是用public abstract修饰 接口 定义一组规则; 接口不能实例化,如果需要实例化接口,那就必须通过实例化类; 接口可以继承接口,可以实现多个接口; 接口负责对外暴露,具体的实现细节在实现类中。接口中的注释只需要告知用户实现了什么功能。实现类中写具体的实现过程。接口的优点:l 通过接口定义了一组规则;l 接口对外暴露,隐藏实现细节。4. 接口与抽象类的比较:抽象类接口构造方法可有不能有普通成员变量可有无非抽象方法可有不能有访问类型Public protect defaultPublic静态方法可有不能有变量类型任意Public static类与类之间单继承多实现应用代码实现 重用系统架构 协议继承所有抽象方法要被实现普通方法不限所有方法要被实现2009年12月29日10:00:271. 异常 (exception)程序中不正常的执行2. 关键字trycatch() finally捕获异常,并处理,finally修饰的程序块,无论是否出现异常,都将会执行。 throws 在方法上声明异常(向外抛出异常),如果某个方法调用了声明异常的的方法,那么该方法需要处理声明出的异常。 throw 直接在语句后面抛出异常,并未处理异常错误与异常的区别: Error一般不能由应用程序直接处理,必须交由操作系统处理。 Exception 运行时异常RuntimeException的子类异常。Java编译器允许程序不对它们做出处理。 非运行时异常除了运行时异常之外的其他由Exception继承来的异常类。Java编译器要求程序必须捕获或声明这种异常,否则编译就报错。3. 异常的处理顺序所有异常的父类均是exception类。如果方法中出现多个catch块,那么出现异常的语句首先与第一个catch块进行匹配,如果匹配成功。否则寻找下一个catch块进行匹配。4. 自定义异常自定义异常需要继承exception类CTRl+1Iterator (interface)迭代器实现从集合中获取数据Collection(interface),Set和list继承自collection Treeset:元素不能重复,自然排序; Hashset: 元素不能重复,无序l Verctor:利用数组实现,线程安全,效率低,自增长大小为原大小的一倍;l arrayList:利用数组实现,线程非安全,效率高,查找插入效率高,自增长大小为原来的一半;l LinkedList:利用双向链表实现,线程安全,查找效率高,Map(interface):以keyvalue形式存放数据。 Hashmap:key值允许为null,无排序,非线程安全,hashset是hashmap的key实现。 Treemap:带排序存储; Hashtable:无排序,线程安全 Collections java.util collection 集合的工具类 Collection 实现同步方法:collection.synchronized2009年12月31日9:32:49一 属性文件(.properties) 存放数据,以key=value形式。Properties是hashtable的子类; 文件读取,根据key获取value,getProperties(key); 写入文件,p.store(文件输出流); 路径,默认在工程路径下。绝对路径:c:util*.properties 用途:对工程的设置用二 String 与StringBuffer String:定长String a=”a” String a=”ab” 重新创建对象追加的 StringBuffer:变长;StringBuffer sb=new StringBuffer(“ab”); sb.append(“b”)直接在后面追加;的效率问题:l String效率低;l StringBuffer 效率高。用法: String字符串较短,且对字符串的值并不经常改变; StringBuffer 字符串长,且对字符串操作频繁。三 MathAbs()Cos()Sin()Round()Ceil() FileFile().File(“)File.getPath();getLastModify();isFile();isDirectory(); DateJava.util.date new Date(); getTime();getDate();Calendar四 = equals()区别: = :判断基本类型是否相等,或者对象是否相等 Equals:判断对象的值是否相等; Instanceof:判断对象类型;2010年1月4日9:49:321. 字节流字节流可以处理字节型数据和字符型数据;l Inputstream字节型输入流 Inputstream(String path) Inputstream(File file)l Outputstream字节型输出流 Outputstream(File file) Outputstream(String path) Outputstream(File file,Boolean f)常用方法:Ship(Long i)跳过的文件字节数Read(byte buff)进读取的数据放到字节型数组中;字符流 字节流 字符流Inputstream | BufferedInputStream| inputstream reader System.in | Outputstream writerBufferedOutputStreamOutputstream | |2. 序列化将对象转化为流的形式写入到设备中,又称持久化。实现:常用的实现自Serializable接口序列化的时候,不将类的版本信息及作者写入到文件中/java.io.Externalizable; /将类的完整信息写入到文件中/尤其是类的头信息,版本,作者,类的实现功能,方法/ 可以通过反序列进行操作类,带来安全问题/java.io.Serializable; 常用,只序列化类的变量信息3. 封装性高级流(处理流)低级流(节点流) BufferedInputStream带缓冲区的输入流 BufferedOutputStream带缓冲区的输出流Eg:objectinputstream 对象持久化准备一个对象;将对象赋值;以对象流的形式保存在文件中Transient 关键字 ,修饰的变量不会被持久化。BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(“”);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(“”);Scanner sc = new Scanner(System.in);String username = sc.next();2010年1月5日8:34:181. Zip/Gzip压缩 Zip应用于windows系统 GZip应用于非windows系统2. 压缩用到的类过程:文件内存Zipjava.io.File | Zip.OutputStreamjava.io.FileInputSream | ZipEntryeg. 单个文件压缩 压缩文件夹(文件夹遍历)3. Unzip解压缩过程:压缩文件内存文件 ZipInputStream FileOutputstream注意事项:文件的构建缺陷:不支持中文解决方法:采用第三方组件。2010年1月6日8:46:46一、 测试(testing)软件测试:使用人工或者自动手段来运行或测试某个系统的过程。目的:检验它是否满足规定的需求或弄清预期结果与世界结果之间的差别。测试分类:白盒测试与黑盒测试 静态测试与动态测试按照测试过程分类:单元测试(程序员junit);集成测试(专业测试人员);需求测试(专业测试人员);系统测试(专业测试人员);性能测试(专业测试人员Loadrunner,winner);验收测试(项目经理,专业测试人员,客户)。BugBug管理工具:TestDirect JiraAssert(断言)1. JDK1.4支持2. 断言应用:在程序测试阶段应用,在生产阶段应关闭asset,业务逻辑处理过程中尽量不用或少用asser3. Assert 表示在程序中,如果assert的结果为true,则程序正确运行,否则中断运行,throws Exception;4. 常用方法:/assertEquals(expected, actual); 期望值与程序的输入值做比较,是否相等/assertFalse(condition); condition true/assertNotNull(object); 判断object 不为空/assertNotSame(message, expected, actual); expected与actual 不是相同的引用/assertTrue(condition); true5. 与工具相关,如果开启assert,在编译过程中参与编译,否则不参与编译。Runrun as configurationargmjvm ea 表示开启6. gc garbage collection 垃圾回收器System.gc(); 回收没有用的对象,释放内存二、 Debug模式应用1) 作用:调式程序,追踪程序中的数据流走向。分析程序流程。2) 用法:在程序的断点处,暂停运行,等待用户手动操作。3) 断点:在程序中选择某行可执行语句,在可以通过工具添加断点,或者在行标出双击表示设置断点;在此双击则取消断点。4) 选择断点:在程序的出错地方或者在出错行的前几行添加断点;5) Debug常用快捷键: F5 跳入方法执行 F6 跳出方法执行,执行至下一行; F8 跳出当前断点,执行至下一个断点或执行完整个程序 Ctrl+Shift+I 查出变量的值2010年1月14日9:44:33数据库的概念:存储数据仓库常见数据库:MySQLSQL server 2005DB2Oracle(10)市场份额中小中大OS所有Windows所有所有内存256512512512小型中型大型Oracle 启动需要的服务OracleDBConsoleOrcl 必要OracleJobScheduleOrcl OracleSql*PlusOraclelog_honeTNSListender 必要监听OracleServiceOrcl 必要Oracle开发工具:Sql-plus客户端分析工具常用Pl/sql Toad Oracle体系结构数据库表空间用户表表空间(逻辑对象): 包含表、视图、索引;段 : 包含数据段、索引段、回退段、临时段;数据块: 是Oracle中最小的逻辑存储单元。创建表空间:create tablespace rootspacedatafile rootfile size 1000mautoextend on创建用户: create user root (用户名 root)identified by root (密码 root)default tablespace rootspace 默认表空间 rootspacetemporary tablespace temp 临时表空间 tempCREATE USER usernameIDENTIFIED BY passwordDEFAULT TABLESPACE tablespaceTEMPORARY TABLESPACE tablespace;授予用户username【用户名】权限:grant connect to username; CONNECT角色允许用户连接至数据库,并创建数据库对象grant resource to username; RESOURCE角色允许用户使用数据库中的存储空间grant create sequence to username; 此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中撤销用户权限:Revoke connect from username;2010年1月17日9:30:15Eclipse导包方法: 新建lib文件夹jar包复制到该文件夹Build PathAdd To Build Path; 项目propertiesJava Building PathLibrariesAdd JARs注意:l 不允许用system去连接并操作数据库;l 类名后不能有空格;l 注意不同的用户对表的权限;l 对数据进行更改后注意提交;l 操作完成后注意关闭连接;JDBC连接数据库六大步骤:(1) 导包 加载驱动(2) 获取连接(3) 获得statement对象(4) 执行(5) 处理 结果集(6) 关闭资源处理结果集,查询返回结果的结果集处理。JDBC连接代码/ create user hm identified by hm 创建用户/ default tablespace homework 默认表空间/ Temporary TABLESPACE Temp; 临时空间/ grant connect,resource,dba to hm; 授权public java.sql.Connection getConn() java.sql.Connection con = null;/最后两个单词首字母大写,其余为小写/语句后不能有空格。否则会报找不到类String driver = oracle.jdbc.driver.OracleDriver;/反射实现类的加载与实例化String url = jdbc:oracle:thin:localhost:1521:orcl; /Oracle数据库的sidtry /装载SQL驱动Class.forName(driver);/创建数据库连接con = DriverManager.getConnection(url, hm, hm); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return con;查询语句:executeQuery;其余:executeUpdate删除数据 使用Statement对象String sql = str; / delete tb_user where id=4;con = getConn();Statement st = con.createStatement();int count = st.executeUpdate(sql);/ 保存影响行数con.close(); 使用PreparedStatement对象private java.sql.Connection con; public void delete(String tableName,int id)try con = getDS().getConnection(); PreparedStatement pst=con.prepareStatement(delete from ? where id =?); pst.setString(1, tableName); pst.setInt(2, id); pst.execute(); catch (SQLException e) e.printStackTrace();finallycloseCon(con);u Statement 效率低,不安全u Preparedstatement 效率高,安全性高,建议使用此对象查询数据String querySql = select * from tb_user;java.sql.Connection con = getConn();List list = new ArrayList();ResultSet rs;Statement st = con.createStatement();rs = st.executeQuery(querySql);while (rs.next() UserDTO dto = new UserDTO();int id = rs.getInt(id);String name = rs.getString(name);String userinfo = rs.getString(userinfo);/设置参数dto.setId(id);dto.setName(name);dto.setUserinfo(userinfo);list.add(dto);封装DatadtoList解封装ListdtoData封装和解封装时所用的对象类型应该一样。DAO 数据访问对象 用于操作数据库DTO 数据转换成对象 用于封装返回结果集用GetInt(int i) i表示按照数据库中表的字段顺序GetInt(String s) s表示数据库中字段名称ResultSetMentData元数据 表的结构DTODAOConnectionDBDriverDB2010年1月18日9:30:15事物:对数据库操作捆绑成一个可执行的逻辑单元。事务管理:一个事物内的所有逻辑单元,要么全部执行成功,要么回滚即撤销所有执行。连接池:将连接资源放在容器中,需要连接数据库时从中提取连接,用完后放回来。连接池代码private final static String DRIVERCLASSNAME = oracle.jdbc.OracleDriver;private final static String URL = jdbc:oracle:thin:localhost:1521:orcl;private final static String USERNAME = hm;private final static String PASSWORD = hm;private final static int MAXACTIVE = 20;private static BasicDataSource ds;public static BasicDataSource getDs() if (null = ds) ds = new BasicDataSource();ds.setDriverClassName(DRIVERCLASSNAME);ds.setUsername(USERNAME);ds.setPassword(PASSWORD);ds.setMaxActive(MAXACTIVE);return ds;Ctrl+Shift+X/Y 大小写切换2010年1月19日15:41:24线程:多进程:在操作系统中能(同时)运行多个任务(程序);多线程:在同一应用程序中有多个顺序流(同时)执行。线程体:方法run();Start()方法:是线程进入Runnable状态。调用run()方法:使用Thread对象调用,不能直接调用。线程的创建: 直接继承Thread类创建线程:public class TestThread extends Thread/ 1. TestThread实现Thread接口public void run()for(int i = 0; i 100; i+) System.out.println(Count:+i); public static void main(String args)TestThread tt = new TestThread();/ 2.创建实现Runnable接口的对象/注意,不要直接调用run方法tt.start(); 使用Runnable接口创建线程:public class TestThread implements Runnable/ 1. TestThread实现Runnable接 public void run() for(int i = 0; i 100; i+) System.out.println(Count:+i); public static void main(String args)TestThread tt = new TestThread();/ 2.创建实现Runnable接口的对象Thread t = new Thread(tt);/ 3.创建一个Thread类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象字演变课件
- 诺曼底号遇难记课件教学
- 2025版危险货物运输全程监控及追溯服务合同
- 2025年车辆安全检测设备销售与租赁合同范本
- 2025年度化工原料采购合同范本版
- 2025年度高端品牌形象插画设计服务合同
- 2025年度高科技产业园基础配套设施施工合同
- 2025年度电子商务平台入驻服务合同范本
- 2025年度农业科技行业员工标准劳动合同范本
- 2025年地基处理与地下空间利用分包合同样本
- 【MOOC】中国传统艺术-篆刻、书法、水墨画体验与欣赏-哈尔滨工业大学 中国大学慕课MOOC答案
- 2025届湖南省永州市高三年级上册第一次模拟考试物理试题(一模)附答案
- 《汽车发动机构造与检修(第2版)》课件 王雷 项目1、2 汽车发动机基本知识;发动机曲柄连杆机构构造与检修
- 腹腔镜风险评估及应急预案
- 【追星文化对大学生消费行为及观念的影响问卷调研报告(含问卷)(论文)11000字】
- 2025届高三数学一轮复习备考经验交流
- 中核集团中辐院招聘笔试真题2022
- 泡沫箱子合同范本
- 智能制造装备与集成 课件 02 智能制造架构与装备
- 2024-2029全球及中国土豆泥行业市场发展分析及前景趋势与投资发展研究报告
- 新人教版初二上册(八上)数学全册课件
评论
0/150
提交评论