韩顺平.2011最新j2ee视频教程.jdbc新闻管理系统开发文档
- 格式:doc
- 大小:127.50 KB
- 文档页数:4
韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:面向对象编程,图形界面,数据库编程,文件流,网络编程,的多线程2. 历史:1990 启动绿色计划 1992 创建语言—>1994 参加硅谷大会演示功能震惊世界 1995 正式发布第一个版本,目前最新的是7.03. 开发工具:记事本,,,,4. 包括:(运行环境)的工具:编译器解释执行器的类库:3600多个,常用的150多个5. 第一个程序:功能:显示―‖:表示类是公共的,一个文件中只有一个类 :表示这个是一个类:类名(公共类的类名,必须和文件名一样){一个主函数,程序的入口 ( []) {执行语句("!"); } }6. 源程序(文件)——>字节码文件(文件)——>由解释执行器()将字节码文件加载到虚拟机()——>字节码文件()就会在虚拟机中执行); } }第2讲变量.数据类型1. 在里面占4个字节,占8个字节2. 基本数据类型:整数:(一个字节:-128127 四个字节:-247483647两个字节:-3276832767 八个字节:)小数(浮点):布尔:字符:(两个字节,可以存放汉字, 1 ='中';)引申到字符串(类)3.在中对进行运算的时候,直接是当做码对应的整数4.数据不能从高精度到低精度的转换<<<<<3.4;是过不去的,在中小数默认是(双精度)的应该写成是3.4f;不过可以强制转换:()1.2; ()1.95. 1 1.2; a先是往高精度转换,然后赋给b,就报错改成1 1.2; 或者 1 1.2f; 就解决了第4讲流程控制1. 语句中,条件表达式的数据类型应该和后面的类型一致2. 语句中,可用的数据类型主要是:第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义包名;类名父类接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建1;1 ();一步到位 1 ();4. 引用传递类似于指针一样第8讲类变量1. 属于类的对象的而不是属于类的2. 5不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符数据类型变量名3. 9{1;{("");;}会自动执行一次,也只有一次9(){("");;}( []){9 t1 9();(9);9 t2 9();(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5中:类变量()原则上用类方法()去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
顺平j2ee系列教程--玩转oracle10g学习笔记引言:数据保存问题?可使用文件保存和数据库保存。
使用文件保存数据存在几个缺点:1、文本的安全性问题;2、文件不利于查询和对数据的管理;3、文件不利于存放海量数据;4、文件在程序中控制不方便。
为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。
数据库是衡量一个程序员水平的重要指标。
数据库1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据;2、数据存放在数据库中。
数据库服务器、数据库和表的关系所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。
为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如图所示:为什么选择oracle--性能优越概述:目前主流数据库包括微软: sql server和access瑞典MySql: AB公司mysqlibm公司: db2(处理海量)美国Sybase公司: Sybaseibm公司: informix美国oracle公司: oracle做项目时应当如何选择数据库?1、标的(项目预算);2、功能的要求;3、并发数(多少人用);4、安全、稳定性。
5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window)oracle数据库的认证oca(oracle certified associate)初级认证ocp(oracle certified professional)中级认证ocm(oracle certified master)高级认证oracle10g安装步骤:1、安装文件2、把10201_database_win32.zip文件copy到没有中文的路径下3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载4、将压缩包解压后,双击setup.exe文件进行安装。
1.集合框架√2.泛型√3.异常√1.掌握常用的集合类(接口)2.充分理解什么是泛型3.掌握java中的异常■一个问题?前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决?请做一个公司职员薪水管理系统,要求完成如下功能:①当有新员工时,将该员工加入到管理系统①可以根据员工号,显示该员工的信息.②可以显示所有员工信息③可以修改员工的薪水⑤当员工离职时,将该员工从管理系统中删除⑥可以按照薪水从低到高顺序排序【思考题】⑦可以统计员工的平均工资和最低和最高工资.■问题分析当然,我们可以使用数组来解决,可是用数组的话,有什么问题,我们来看看:■解决之道-链表或是集合类我们想,如果有这样一种数组,它可以动态的改变就好了,java的设计者为我们提供了一系列的集合类,我们来看看.■解决之道-链表或是集合类我们想,如果有这样一种数组,它可以动态的改变就好了,java的设计者为我们提供了一系列的集合类,我们来看看.■解决之道-链表或是集合类■使用从上面的图可以看出java集合类主要有以下几种: List结构的集合类ArrayList类, LinkedList类, Vector类,Stack类Map结构的集合类HashMap类,Hashtable类Set结构的集合类HashSet类,TreeSet类Queue结构的集合Queue接口■使用我们给大家举几个案例来看看集合类的常用方法:【Demo6_1.java】和【Demo7_3.java】■具体应用在我们熟悉了一些集合类的基本用法后,我们来解决前面提出的公司职员薪水管理系统。
首先我们使用ArrayList这个集合类.案例【Demo7_2.java】■ArrayList和Vector的区别ArrayList与Vector都是java的集合类,都可以用来存放java对象,这是他们的相同点,但是他们也有区别:一.同步性:Vector是同步的。
JA V A学习记录第一讲//pulic:表示这个类是公共的,一个java文件中只能有一个public类//class :表示这是一个类//Hello:类名(公共类的类名必须和文件名一致)public class Hello{//一个主函数,相当于是程序的入口public static void main (String args[]){/* 多行注释*///System.out.println("hello");int a=10;// 定义一个变量,变量名位a,它的值为10// int为4个字节,long为8个字节int b=20;int result=a+b//输出结果system.out.println("结果是"+result)}}第二讲JA V A基本数据类型四大类型整数类型小数(浮点)类型基本数据类型布尔类型字符类型1.整数类型整数类型表示一个整数,常用的整数类型有:byte, short, int, long范围:byte 一个字节-128 – 127short 两个字节-32768 - 32767int 四个字节-2147483648 – 2147483647long 八个字节一个字节= 八个byte例:一个byte0 0 0 0 0 0 0 1 最高位为符号位0表示正数,1表示负数1 1 1 1 1 1 1 1 – 0 1 1 1 1 1 1 12.小数(浮点)类型常用类型有float, double3.布尔类型可以表示:真或者假,类型是boolean4.字符类型表示单个字符,字符类型是char,chai是两个字节,可以存放汉字。
多个字符称为字符串,在java中用String表示,String属于类。
.在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。
(汉字则是unic码)定义变量int a初始化变量int a = 45给变量赋值int a ; a =45基本数据类型转换int a = 1.2 错误会损失精度double a = 4 正确数据类型可以自动从低精度向高精度转换。
韩顺平Java(持续更新中)原创上课笔记,转载请注明出处第⼀章⾯向对象编程(中级部分) PDF为主1.1 IDEA删除当前⾏,ctrl+y复制当前⾏,ctrl+d补全代码,alt+/添加或者取消注释,ctrl+/导⼊该⾏需要的类,alt+enter快速格式化代码,ctrl+ALT+L快速运⾏程序,alt+r(⾃⼰设置)⽣成构造器等,alt+insert查看⼀个类的层级关系,ctrl+H,继承有⽤(光标放在类名上)快速定位某个⽅法的位置,ctrl+B(ctrl+⿏标点击)⾃动分配变量,main⽅法中,.var,例如new Scanner(System.in).var查看快捷键模板:Live Templates (例如,fori)1.2 Object类详解(equals、==、hashCode等)所有类都实现了Object类,都能使⽤Object类的⽅法。
1.2.1 ==运算符基本类型—>判断值是否相等引⽤类型—>判断地址是否相等指向同⼀个地址,结果为true1.2.2 equals()⽅法1.2.2.1 基本介绍Object的equals()⼀⽬了然,==运算符,⽤来判断地址是否相等⽽String等类的equals()被重写了,⽤来判断内容是否相等(根据需求,判断内容相等的标准也是可能会有所改变的)如何重写equals⽅法:Person person1 = new Person("jack", 10, '男');Person person2 = new Person("jack", 20, '男');System.out.println(person1.equals(person2));//假,如果没有重写Person类的equals⽅法,这⾥的equals⽅法调⽤的Object的(即,判断的是地址)⽰例代码://重写Object 的 equals⽅法public boolean equals(Object obj) {//判断如果⽐较的两个对象是同⼀个对象,则直接返回trueif(this == obj) {return true;}//类型判断if(obj instanceof Person) {//是Person,我们才⽐较//进⾏向下转型, 因为我需要得到obj的各个属性Person p = (Person)obj;return .equals() && this.age == p.age && this.gender == p.gender;}//如果不是Person ,则直接返回falsereturn false;}1.2.2.2 课堂练习第三个输出:因为Person并没有重写equals,所以这⾥调⽤的equals⽅法是Object的,判断地址是否相同的,⽽这两个新的对象肯定不相等,所以返回false 这道题需要注意的是,基本数据类型的==运算符是判断内容的1.2.3 hashCode()⽅法1.2.4 toString()⽅法全类名:包名+类名/**Object的toString() 源码(1)getClass().getName() 类的全类名(包名+类名 )(2)Integer.toHexString(hashCode()) 将对象的hashCode值转成16进制字符串*/public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}1.2.5 finalize()⽅法public class Finalize_ {public static void main(String[] args) {Car bmw = new Car("宝马");//这时 car对象就是⼀个垃圾,垃圾回收器就会回收(销毁)对象, 在销毁对象前,会调⽤该对象的finalize⽅法//,程序员就可以在 finalize中,写⾃⼰的业务逻辑代码(⽐如释放资源:数据库连接,或者打开⽂件..)//,如果程序员不重写 finalize,那么就会调⽤ Object类的 finalize, 即默认处理//,如果程序员重写了finalize, 就可以实现⾃⼰的逻辑bmw = null;System.gc();//主动调⽤垃圾回收器System.out.println("程序退出了....");}}class Car {private String name;//属性, 资源。
1.根据需求分析文档,确定我们要完成的功能
①用户登录
②查询新闻
③添加新闻
④退出系统
2.画出uml图.
①用例图
②时序图
③类图
3.根据分析出的功能,我们设计数据库和表
--插入数据
insert into news values(1,'微软向非洲支援二手电脑',to_date('2008-06-09 15:49:00','yyyy-mm-dd hh24:mi:ss'),'微软在最近宣布它正计划向非洲国家提供技术帮助,以加速该地区的数字化进程。
据悉,微软已经与纳米比亚政府达成了协议,将在两年内向该国13所学校提供从发达国家淘汰的二手电脑,这些电脑将运行Windows系统,可以登录Google、雅虎等热门网站,不过微软并没有透露出售Windows系统给这些学校的价格。
'); insert into news values(2,'韩国失窃手机大量流入中国',to_date('2009-06-09 10:49:44','yyyy-mm-dd hh24:mi:ss'),'据韩国信息部提供的消息称,目前已经发现中国商人在韩国以每部400—500元(人民币)的价格收购被盗或丢失的市价1—2万元(人民币)的手机,然后成批走私到中国,以每部3000元以下的价格出售。
');
insert into news values(3,'明基宣布收购西门子手机',to_date('2009-06-07 16:50:33','yyyy-mm-dd hh24:mi:ss'),'明基7日下午正式对外宣布收购德国西门子手机事业,这起并购将使BenQ成为全球第四大手机品牌、大中华区第一大手机科技公司,合并后公司年营收将超过100亿美元。
');
insert into news values(4,'Google股价飙升',to_date('2009-06-03 11:30:20','yyyy-mm-dd hh24:mi:ss'),'现今的Google已经成为华尔街的宠儿。
上市后的前三个季度里,Google的业绩均超过了分析师的预期。
主要竞争对手雅虎和微软都在广告战中大把烧钱,而Google却毫不费力的依靠人们的口口相传继续保持着搜索市场的领先位置。
与此同时,Google的股价也一路飙升,目前已较发行价上涨226%,达到227美元。
');
创建一个序列:
create sequence news_seq start with1
increment by1
minvalue1
nomaxvalue
nocache
nocycle
界面设计
登录界面
查询页面
查询结果页面
新闻内容页面:
具体新闻
查询失败页面
添加新闻页面:
编码
1.创建java 工程(ecplise /netbean/jbulilder)
2.创建包
3.更加框架设计图,创建相应的类
NewsSystemFrame.java
SqlHelper.java
4.引入需要的jar包及配置文件
ojdbc14.java db..properties
5.具体实现
关键点: 假如同时提出了三个关键字,那么只有在标题或内容中都能够找到这三个查询关键字的条目才会进入查询结果
假设输入的[微软雅虎google]
select * from news
(newstitle like ‘%微软%’ or
newsContent like ‘%微软%’)
and
(newstitle like ‘%雅虎%’ or
newsContent like ‘%雅虎%’)
and
(newstitle like ‘%google%’ or
newsContent like ‘%google%’);
对model1 开发模式思考:
问题:
(1)NewsSystemFrame类是界面,同时又包含业务逻辑,这样代码可读性,可维护性不高,
(2)随着项目变大,这样开发问题多多.
(3)把界面和业务逻辑放在一起写,不利于分工合作,项目开发时间变长.
解决的思想: 把界面和业务逻辑剥离-> 新的开发模式model2 目前使用modle 2模式将上面的系统重新编写.
◆modle 2 模式开发
1.画出model 2 模式的框架图.
◆项目实现
前提: 应该把相关的数据库给编写好
(1)创建项目
使用eclipse 开发.
(2)创建包
(3)导入第三方的jar ,或者需要的配置文件
(4) 编写代码:[可能junit测试]。