韩顺平.2011版.spring视频教程第02讲
韩顺平.2011最新j2ee视频教程.jdbc 之 mysql
◆mysql 介绍(1)mysql数据库是瑞典AB 开发(2)mysql->sun->oracle(3)mysql数据库的特点1.开源2.免费3.跨平台(windows / linux /unix /苹果)4.处理并发性(13000个)/安全/稳定5.该数据库轻(对资源要求不高.) 安装文件37.7m ,而且对cpu / 内存要求不高.◆安装和配置1.一般说,一台机器装一个mysql.2.安装和配置过程见mysql安装图解◆mysql 使用1.可以使用window dos 登录到mysql数据库.基本语法在dos 下输入mysql –u 用户名-p密码特别说明: -p 后面的密码不要有空格/ 使用该命令的时候,需要配置一下环境变量.2.mysql数据库也提供图形化界面来登录mysql数据库演示:3.如何在mysql中创建数据库基本语法create database 数据库名•创建一个名称为mydb1的数据库。
create database mydb1; 【sql】•创建一个使用utf-8字符集的mydb2数据库。
create database mydb2 character set utf8•创建一个使用utf-8字符集,并带校对规则的mydb3数据库create database mydb3 character set utf8 collate utf8_general_ci;◆mysql的一些常用指令①如何查看,创建数据库的指令:show create databse 数据库名;②显示数据库指令show databases;③查看创建数据库的指令show create database 数据名;④删除数据库:drop database 数据库名⑤如何指定使用某个数据库use 数据库名;⑥如何备份和恢复数据库.mysqldump –u 用户名–p密码数据名> 存放路径该指令,需要在dos控制台下直接执行恢复数据库:1.创建一个数据库mydb2 ,但是这个数据库目前是空.e 数据名3.在mysql 控制台下使用source 备份文件路径◆创建表基本语法案例 :创建一张用户表create table users (id int ,name varchar(64),pwd varchar(64),birthday date)◆mysql数据类型(重点)①数值型:1. bit(m) m默认为1 最大64案例create table test1 (id bit(1)); ---//这里显示乱码?2. tinyint [unsigned] 如果是有符号则表示-128 到127 ,如果是无符号0-255案例create table test3(num tinyint) -- -128 到127create table test4(num tinyint unsigned)0 --- 2554.smallintsamllint 是两个字节表示的.带符号是负的2的15次方到2的15次方-1 ,无符号2的16方-1其它的数值类型,见下图即可6.floatFLOAT[(M,D)] [UNSIGNED] 是定长m :表示有效位d: 表示小数点有几位案例:create table test5( num float);create table test6(num float(5,1));7. double其用法和float 类似,只是表示的范围更大,也是定长8. numeric(m,d)用于表示小数,或者整数create table test7 (num numeric); //这样其实就是可以存放整数.create table test8 (num numeric(5,2));//这样就可以表示有效为5,小数点有两位的数②字串类型一览图:常用的有(1)char(m)m 范围是0-255, 定长.char(20) 如果你存放‘abc’字串,实际在表‘abc ’;案例:create table test11 (name char(20));☞小技巧:mysql 自带的client 默认支持utf8 码,所有我们在添加中文的时候,需要设置让client支持gbk* show variables like ‘char%’; //显示关于字符的设置参数* set character_set_client=gbk; //可以存中文* set character_set_results=gbk; //可以看中文(2)varchar(m)m 表示大小,范围0-65535,变长varchar(20) 如果你存放‘abc’字串,实际在表‘abc’;案例省略...建议: 如果表的某列长度固定,比如产品编号..学号. .. 而且在255内,我们应当使用char ,如果长度不能取得,或者长度大于255 小于65535 则使用varchar(3)text该类型,可以表示更大的字串.③日期类型(1)date日期(年-月-日)create table test12(birthday date);对于date 只保存年-月-日(2)datetime日期时间类型create table test13(hiredate datetime);(3)timestamp邮戳:该类型可以保存年-月-日: 时:分:秒它和datetime 最大的区别是,当你update 某条记录的时候,该列值,最自动更新create table test14 (name varchar(64) , sal float, hiredate1 timestamp, hiredate2 datetime);建议: 如果不知道该不该用timestamp ,就不要用.创建表综合案例create table emp(id int,name varchar(64),sex char(2),birthday date,Entry_date date,job varchar(32),salary float,resume text)修改表结构案例:•在上面员工表的基本上增加一个image列。
韩顺平玩转oracle课件
//对权限的维护。 * 希望 xiaoming 用户可以去查询 scott 的 emp 表/还希望 xiaoming 可以把这个 权限继续给别人。 --如果是对象权限,就加入 with grant option
grant select on emp to xiaoming with grant option 我的操作过程: SQL> conn scott/tiger; 已连接。 SQL> grant select on scott.emp to xiaoming with grant option;
2.给账户(用户)解锁
SQL> alter user tea account unlock;
3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要 dba 的身份来操作。 例子:给前面创建的用户 tea 创建一个 profile 文件,要求该用户每隔 10 天要 修改自己的登陆密码,宽限期为 2 天。看看怎么做。 SQL> create profile myprofile limit password_life_time 10 password_grace_time 2; SQL> alter user tea profile myprofile;
oracle 的表的管理 表名和列的命名规则
必须以字母开头 长度不能超过 30 个字符 不能使用 oracle 的保留字 只能使用如下字符 A-Z,a-z,0-9,$,#等
概述:profile 是口令限制,资源限制的命令集合,当建立数据库的,oracle 会自动建立名称为 default 的 profile。当建立用户没有指定 profile 选项,那 么 oracle 就会将 default 分配给用户。
Unit-3-Lesson-1-Spring-Festival高中英语北师大版(2019)必修第一册
Lesson1 Spring Festival
P52 1
What does
mean to you?
What words immediately come to your mind for
describing its meaning?
the beginning of a new year China's biggest festival a day for family reunion
For Li Yan, Spring Festival is family time.
Read again. Find out each person's
Task 2 experience of Spring Festival in the
three accounts. Take notes.
P54 4
Activities during setting off and watching Spring Festival fireworks, enjoying a big dinner
Read Xu Gang's account and complete the chart.
Where and with whom
been kept.
Analyze the key points of the text
编者寄语
Notes from the editor: Spring Festival is an important
tradition in China. It has unique meanings. However, people may
韩顺平循序渐进学java从入门到精通(全知识点笔记整理)
Java韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程2. Java历史:1990 sun 启动绿色计划 1992 创建 oak语言—> java1994 gosling 参加硅谷大会演示java功能震惊世界 1995 sun 正式发布java第一个版本,目前最新的是jdk7.03. java开发工具:记事本,jcreator,jbuilder,netbean,eclipse4. jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exe java的类库:3600多个,常用的150多个5. 第一个程序://功能:显示―HelloWorld‖//public:表示类是公共的,一个文件中只有一个public类 //class:表示这个是一个类//HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld {//一个主函数,程序的入口 public static void main (String args[]) { //执行语句System.out.println("helloWorld!"); } }6. Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行l,average); } }第2讲变量.数据类型1. 在java里面int占4个字节,long占8个字节2. Java基本数据类型:整数:(byte一个字节:-128---127 int四个字节:-2147483648---+2147483647short两个字节:-32768---+32767 long八个字节:)小数(浮点):float double布尔:boolean字符:char(两个字节,可以存放汉字, char test1 ='中';)引申到字符串(类)3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数4.数据不能从高精度到低精度的转换Byte<short<int<long<float<doublefloat a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; intb=(int)1.95. int a=1;int b=a+1.2; a先是往高精度转换,然后赋给b,就报错改成int a=1;double b=a+1.2; 或者int a=1;float b=a+1.2f; 就解决了第4讲流程控制1. switch case语句中,switch条件表达式的数据类型应该和后面case的类型一致2. switch case语句中,可用的数据类型主要是:byte short int char enum第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义package 包名;class 类名extends 父类implements接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建Cat cat1;cat1=new Cat();一步到位Cat cat1 =new Cat();4. 引用传递类似于指针一样第8讲this 类变量1. this属于类的对象的而不是属于类的2. 5this不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符static 数据类型变量名3. public class Demo9{static int i=1;static{System.out.println("zhixingyicile");i++;}//会自动执行一次,也只有一次public Demo9(){System.out.println("ffffffff");i++;}public static void main(String args[]){Demo9 t1=new Demo9();System.out.println(Demo9.i);Demo9 t2=new Demo9();System.out.println(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5.Java中:类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7.Java面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
韩顺平 hibernate 第3讲
<property name="hbm2ddl.auto">create</property> hbm2ddl.auto其中有四个属性分别有validate,update,create,create-drop。 在sessionFactory 建立的时候自动检查数据库表结构,或者将数据库schema的DDL导到数据库中, 使用create-drop时,在显示关闭 sessionFactory时,将drop掉数据库的schema, create顾名思义,每次都会根据映射文件创建新表. update是数据库中表已经存在了,如果配置文件改变了(增加了一个属性,相当于再数据库中加了一个字 段)那么update会自动在数据库中加上这个字段, validate相当于每次插入数据之前都会验证数据库中的表结构和hbm文件的结构是否一致
hibernate从入门到精通
主讲 韩顺平
主讲:韩顺平 email:hanshunping@
hibernate从入门到精通
主讲 韩顺平
HQL和Criteria
HQL(Hibernate Query Language)-官方推荐
面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类 和属性其他部分不区分大小写);HQL中查的是对象而不是表,并且支持多态;HQL 主要通过Query来操作,Query的创建方式: Query q = session.createQuery(hql); from Person from User user where =:name from User user where =:name and user.birthday < :birthday
韩顺平 2011版 spring视频教程 PPT详述
二、装配Bean
2.1 容纳你的bean
• 2.1.2 使用应用上下文(续)
三种经常用到的实现: 1.ClassPathXmlApplicationContext:从类路径中加载。 2.FileSystemXmlApplicationContext:从文件系统加载。 3.XmlWebApplicationContext:从web系统中加载。
二、装配Bean
2.2 基本装配 2.2.3 通过set方法注入依赖(续) 装配集合 若bean的属性是集合类型,按如下处理: 装配List和数组: <property name="barlist"> <list> <value>bar1</value> <ref bean="bar2"/> </list> </property>
()方法传递bean的ID。 4.若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory()
方法传入工厂自身。 5.若BeanPostProcessor(bean后置处理器)和bean关联,则它们的
postProcessBeforeInitialization()方法被调用。 [过滤器举例理解] 6.若bean指定了od方法、,它将被调用。 7.最后,若有BeanPostProcessor和bean关联,则它们的
容器关闭 调用DisposableBean的 destory()方法
调用定制的销毁方法
二、装配Bean
2.1 容纳你的bean
Bean在Spring Bean工厂中的生命周期
• 2.1.3 bean的生命周期(续)
韩顺平玩转oracle视频教程笔记
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二:Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
韩顺平Java(持续更新中)
韩顺平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;//属性, 资源。
韩顺平 jdbc 2
主讲:韩顺平 email:hanshunping@
主讲 韩顺平
jdbc 开发 之 mysql
主讲 韩顺平
一个问题
①淘宝网,天涯网,校友网..都有各自的功能,那么当我们关闭 系统的时候,下次再访问这些网站时,为什么他们各自的信 息还存在? ②再比如c/s的软件,比如网游、qq、他们又是怎样保存数据 的? a.游戏积分 b.qq聊天记录..
CHARACTER
SET:指定数据库采用的字符集 COLLATE:指定数据库字符集的比较方式 练习:
•创建一个名称为mydb1的数据库。 •创建一个使用utf-8字符集的mydb2数据库。
•创建一个使用utf-8字符集除数据库
显示数据库语句: SHOW DATABASES
显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE [IF EXISTS] db_name
练习:
•查看当前数据库服务器中的所有数据库 •查看前面创建的mydb2数据库的定义信息 •删除前面创建的mydb1数据库
主讲 韩顺平
修改、备份、恢复数据库
ALTER DATABASE [IF EXISTS] db_name [alter_specification [, alter_specification] ...] alter_specification: [DEFAULT] CHARACTER SET charset_name | [DEFAULT] COLLATE collation_name
•alter table user change column name username varchar(20);
主讲 韩顺平
韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)
java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。
不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件 (.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释//单行注释/* */多行注释java内容介绍java编程可以分成三个方向:1、java se (j2se)桌面开发 java中的基础中的基础2、java ee (j2ee)web开发3、java me (j2me)手机开发java se课程介绍java面向对象编程(基础)java图开界面开发java数据库编程java文件io流编程java网络编程java多线程编程java ee基础1java面向对象编程--数据库编程-->java sejava 基础2html--css--javascript-->div+cssjava ee中级部分Servlet--Jsp-->mvc模式java ee高级部分Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架java之父gosling1990 sun启动绿色计划1 | 4451992 创建oak语言-->java1994 gosling参加硅谷大会演示java功能,震惊世界1995 sun正式发布java第一个版本,目前最新是jdk7.0java开发工具记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse如何选择开发工具先选择记事本,对java有一定了解后再使用eclipse高级开发工具为什么呢?1、更深刻的理解java技术,培养代码感2、有利于公司面试java语言的特点1、java语言是简单的2、java语言是面向对象的3、java语言是跨平台(操作系统)的[即一次编译,到处运行]4、java是高性能的java第一个程序hello.java运行java程序要安装和配置jdkjdk是什么?1、jdk全称java dvevlopment kit中文java开发工具包2、jdk是sun公司开发的3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)4、可以在下载**开发安装jdk,用户执行需要安装jre配置JDK添加环境变量即可windows下配置jdk在计算机属性--高级设置--环境变量--添加PATH将JDK所在路径指定即可。
韩顺平Spring笔记之图解
习各个配置.
税务,证券, 石油, 财务,政务系 ,编程粒度变大( 汇编 指令,c 语句 组件)
icationConTexte.xml
Context ac=new lApplicationContext("com/hsp/ioc/beans.xml");
反射
beans.xml/applicationcontext.xml
配置bean ,
ApplicationContext ac=new ClassPathXmlApplicationContext
applicationContext上下文容器 创建 student
bean工厂.
bean工厂.
我们理解 BeanPostProcessor ,有点类似我们的web filter
Employee.java
EmployeeServiceInt er
实现
@Transactional EmployeeService.j va[业务操作
hibernate
事情管理器
sessionfactory
struts-config.xml <action path="/login" parameter="fla type="com.hsp.web.action.LoginAction
☞ 学习框架,最重要的就是学习各个配置.
☞ 学习框架,最重要的就是学习各个配置.
bean bean bean
大的项目(税务,证券, 统,oa,erp,。。),编程粒度变大 java对象,spring,组件
applicationConTexte.xml 自己bean <bean>
韩顺平_轻松搞定网页设计html+(DIV+CSS)+javascript视频笔记(全)
韩顺平html第二讲<html><head><title>第一个网页</title></head><body><!-1-><font color=red>hello world</font><!--使用<font color=red></font>来调整字体颜色--></br><!-2-><font size=7 color=blue>hello world1</font><!--使用<font size=7></font>来调整字体大小,但是size里面的取值是1—7--></br><!-3-><font style="font-size:150px" color=yellow>hello world2</font><!--使用CSS中<font style="font-size:40px"></font>将字体调整更大--></br><!-4-><p><font color=cyan>为字体更换颜色4</font></p><b><font color="red">hhhhh</font></b><!-5-></body></html>韩顺平html第三讲Html的超链接:例子:<html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><!--*****************html超链接案例***************--><!--*****************html超链接默认格式***************--><a href="">超链接</a> </br> <!--超链接基本格式--><!--**target常见的两个属性-blank(表示在新页面打开文件).-self(表示替换当前页面)**--><a href=""target= "-blank">在新窗口打开</a><!--超链接在新窗口下打开文件--></br><a href=""target= "-self">在本页面打开</a> <!--超链接在本页面打开文件--></br><ahref="mailto:**************************">给自己写信</a></body></html>Html图片元素(标记):<img src ="图片路径" width="宽度" height=”高度” ></img>案例:(网页上显示图片)<html xmlns="/1999/xhtml"><head><title>无标题文档</title></head><body><!--*****************图片元素***************--><img src ="a.jpg" width="100" > <!--***********插入图片************--><a href=""><img src ="a.jpg" width="100" ></a> <!--***********图片链接************--> <img src ="/photo/OqCsSUr6ytmOilpU0_1VaA==/4023121842125901437.jpg" width="400" ><img src ="a.jpg" width="100" border="10" > </img> <!--*******border表示为插入的图片加上边框********--></body></html>Table表格:<!--<table border=”边框宽度“cellspacing”两个列行间的距离大小”cellpadding”各行列间的内容被填充" align="表格的位置" bgcolor="设置表格背景颜色"></table <!--**tr表示行,td表示列,<tr align="设置字体对齐方式</tr>"***-->案例:<html xmlns="/1999/xhtml"><head><title>无标题文档</title></head><body>******************表格,为表格添加背景****************</br><!--<table border=”边框宽度”cellspacing”空隙大小”cellpadding”填充大小" align="表格的位置" bgcolor="设置表格背景颜色"></table>--><table border="15" height="1" cellpadding="20" cellspacing="0" width="477" align="center" bgcolor="cyan"> <tr align="center"><td >1</td><td>2</td><td>3</td></tr> <!--**tr表示行,td表示列,<tr align="设置字体对齐方式</tr>"***--></table></body></html>韩顺平html第四讲合并单元格:colspan=跨行列数roespan=跨列行数<head><title> 表格</title>***********菜谱***********<table border=1 bordercolor=red cellspacing=0 align="center" width=500px cellpadding="0" height=180> <tr align=center><td colspan=3>周一菜谱</td>></tr><tr align=center><td rowspan=2>素菜</td>><td>青菜</td>><td>土豆</td></tr><tr align=center><td>豆腐</td>><td>白菜</td></tr><tr align=center><td rowspan=2>荤菜</td>><td>肉丝</td>><td>大虾</td></tr><tr align=center><td>海参<img src="a.jpg" width=70></img></td>><td>鲍鱼</td>></tr></head><body></body></html>注释:<tr align=center></tr>在此处表示字体的对齐方式韩顺平html第五讲无序列表(html常用标记/元素-ui/li)格式: Html列表——无序列表<ul type=”属性值”><li>列表内容</li></ul><ul>的属性设定(常用):例如:<ul tyre=”square”>Type=”squre”设定符号款式,其值有三种,如下,默认为Typr=”disc”Type=”disc”时的列项符号是实心圆点Type=”circle”时的列项符号为空心圆Type=”square”时的列项符号为空心正方形************无序列表代码例子*********<html><body><ul type="circle"><li>1</li><li>1</li><li>1</li></ul></body></html>Html列表——有序列表ol称顺序列表标记<ol type=”属性值” start=”起始值”><li>列表内容</li></ol>的属性设定(常用):例如:<ol type=”i” start=”4”></ol>type=”i”设定数目款式的值有5种:阿拉伯数字,a小写字母,A大写字母,i小写罗马数字,I大写罗马数字************有序列表代码例子*********<html><body><ol type="1"><li>1</li><li>1</li><li>1</li></ol><ol type="1" start=”5”><li>1</li><li>1</li><li>1</li></ol></body></html>Html框架标记(元素)frameset/frame<Frameset frameborder=”边框大小”cols=”按照列的百分比,隔开”>rows=”按照行的百分比><Frame name=”给frame取名” src=”html路径” noresize></frameset>实例:qq.html<html><body bgcolor=blue>歌词</body></html>ee.html<html><body bgcolor=red>费玉清</body></html>All.html<html><frameset cols="20%,*" frameborder=100><frame src="qq.html" noresise name=”song” /><frame src="ee.html" noresise name=”jun” / ></frameset></html>注释:all.html中不能带body标记综合案例:all.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><title> New Document </title></head><frameset rows="30%,*" border="0"><frame src="top.html"noresize/><frameset cols="20%,*"><frame src="left.html" border=0 noresize/><!--frame元素中有一个属性,相当于给该frame取名--><frame src="right1.html"name="right"/></frameset></frameset></html>top.html<html><head><title> New Document </title></head><body ><img src="logo1.jpg" ></img></body></html>Left.html<html><head><title> New Document </title></head><body bgcolor=pink><a href="right1.html"target="right">青花瓷1</a></br><a href="right2.html"target="right">青花瓷2</a></br></body></html>Right1.html<html><head><title> New Document </title></head><body bgcolor=blue><p>right1.html</p></body></html>Right2.html<html><head><title> New Document </title></head><body bgcolor=yellow><p>right2.html</p></body></html>韩顺平html第六讲html表单form:介绍:html的表单元素,主要用于让客户输入数据,并提交给服务器语法格式:<form action=”url” method=“提交方法(get,post)默认是get方法”> 各种元素(输入框,下拉列表,文本域,密码框)<input type=submit><input type=reset></form>代码:提交界面.html<html><head><title> 登陆界面</title></head><body><h1>登陆界面</h1><form action="ok.html" method="get" align=center>用户名:<input type="text" name="username"/></br>密 码:<input type="password" name="pwd"/></br><input type="submit" value="登录"/><input type="reset" value="重新填写"/></form></body></html>Ok.html<html><head></head><body>ok</body></html>表单中提供给用户的输入形式有:<input type=* name=**>*=text文本框, password密码框, checkbox复选框, radio单选框, image图片按钮, hidden , submit提交按钮, reset重置按钮name是你给表单元素取的名子**=Symbolic Name for CGI scriptAction:指定把请求交给那个界面其他:<html><head><title> New Document </title></head><body>1****************复选框*******************</br><form action="" method="post" ><input type="checkbox" name="1"/>苹果<p><input type="checkbox" name="1"/>香蕉<p><p ><font color=red>*****************单选框******************</font></p></br><input type="radio" name="1"/>苹果<p><input type="radio" name="1" checked/>香蕉<p>2******隐藏一个表单元素****用处是可提交数据,同时不影响界面**********</br><input type="hidden" name="add" value="a.jpg">这里有一个隐藏的表单元素<p><p ><font*****************图片按钮******************</font></p></br> <input type="image" name="submit" src="a.jpg" width=30 align="top"/>苹果<p> *****************下拉列表******************</br><select name="like"><option valu= select>--请选择--</option><option valu=网游select>网游</option><option valu=足球select>足球</option><option valu=游泳select>游泳</option></select></br>*******文本区**<!--cols表示行,rows表示列-->*******</br><textarea name="comment" rows="4" cols="25">请输入文本</textarea></select></br>************请选择要上传的文件*************</br><input type="file" name="myfile">请选择文件</br>************按钮*************</br><input type="button" value="点击一下吧"/></input></form></body></html>韩顺平html第二讲<html><head><title>第一个网页</title></head><body><!-1-><font color=red>hello world</font><!--使用<font color=red></font>来调整字体颜色--></br><!-2-><font size=7 color=blue>hello world1</font><!--使用<font size=7></font>来调整字体大小,但是size里面的取值是1—7--></br><!-3-><font style="font-size:150px" color=yellow>hello world2</font><!--使用CSS中<font style="font-size:40px"></font>将字体调整更大--></br><!-4-><p><font color=cyan>为字体更换颜色4</font></p><b><font color="red">hhhhh</font></b><!-5-></body></html>韩顺平html第三讲Html的超链接:例子:<html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body><!--*****************html超链接案例***************--><!--*****************html超链接默认格式***************--><a href="">超链接</a> </br> <!--超链接基本格式--><!--**target常见的两个属性-blank(表示在新页面打开文件).-self(表示替换当前页面)**--><a href=""target= "-blank">在新窗口打开</a><!--超链接在新窗口下打开文件--></br><a href=""target= "-self">在本页面打开</a> <!--超链接在本页面打开文件--></br><ahref="mailto:**************************">给自己写信</a></body></html>Html图片元素(标记):<img src ="图片路径" width="宽度" height=”高度” ></img>案例:(网页上显示图片)<html xmlns="/1999/xhtml"><head><title>无标题文档</title></head><body><!--*****************图片元素***************--><img src ="a.jpg" width="100" > <!--***********插入图片************--><a href=""><img src ="a.jpg" width="100" ></a> <!--***********图片链接************--> <img src ="/photo/OqCsSUr6ytmOilpU0_1VaA==/4023121842125901437.jpg" width="400" ><img src ="a.jpg" width="100" border="10" > </img> <!--*******border表示为插入的图片加上边框********--></body></html>Table表格:<!--<table border=”边框宽度“cellspacing”两个列行间的距离大小”cellpadding”各行列间的内容被填充" align="表格的位置" bgcolor="设置表格背景颜色"></table <!--**tr表示行,td表示列,<tr align="设置字体对齐方式</tr>"***-->案例:<html xmlns="/1999/xhtml"><head><title>无标题文档</title></head><body>******************表格,为表格添加背景****************</br><!--<table border=”边框宽度”cellspacing”空隙大小”cellpadding”填充大小" align="表格的位置" bgcolor="设置表格背景颜色"></table>--><table border="15" height="1" cellpadding="20" cellspacing="0" width="477" align="center" bgcolor="cyan"> <tr align="center"><td >1</td><td>2</td><td>3</td></tr> <!--**tr表示行,td表示列,<tr align="设置字体对齐方式</tr>"***--></table></body></html>韩顺平html第四讲合并单元格:colspan=跨行列数roespan=跨列行数<head><title> 表格</title>***********菜谱***********<table border=1 bordercolor=red cellspacing=0 align="center" width=500px cellpadding="0" height=180> <tr align=center><td colspan=3>周一菜谱</td>></tr><tr align=center><td rowspan=2>素菜</td>><td>青菜</td>><td>土豆</td></tr><tr align=center><td>豆腐</td>><td>白菜</td></tr><tr align=center><td rowspan=2>荤菜</td>><td>肉丝</td>><td>大虾</td></tr><tr align=center><td>海参<img src="a.jpg" width=70></img></td>><td>鲍鱼</td>></tr></head><body></body></html>注释:<tr align=center></tr>在此处表示字体的对齐方式韩顺平html第五讲无序列表(html常用标记/元素-ui/li)格式: Html列表——无序列表<ul type=”属性值”><li>列表内容</li></ul><ul>的属性设定(常用):例如:<ul tyre=”square”>Type=”squre”设定符号款式,其值有三种,如下,默认为Typr=”disc”Type=”disc”时的列项符号是实心圆点Type=”circle”时的列项符号为空心圆Type=”square”时的列项符号为空心正方形************无序列表代码例子*********<html><body><ul type="circle"><li>1</li><li>1</li><li>1</li></ul></body></html>Html列表——有序列表ol称顺序列表标记<ol type=”属性值” start=”起始值”><li>列表内容</li></ol>的属性设定(常用):例如:<ol type=”i” start=”4”></ol>type=”i”设定数目款式的值有5种:阿拉伯数字,a小写字母,A大写字母,i小写罗马数字,I大写罗马数字************有序列表代码例子*********<html><body><ol type="1"><li>1</li><li>1</li><li>1</li></ol><ol type="1" start=”5”><li>1</li><li>1</li><li>1</li></ol></body></html>Html框架标记(元素)frameset/frame<Frameset frameborder=”边框大小”cols=”按照列的百分比,隔开”>rows=”按照行的百分比><Frame name=”给frame取名” src=”html路径” noresize></frameset>实例:qq.html<html><body bgcolor=blue>歌词</body></html>ee.html<html><body bgcolor=red>费玉清</body></html>All.html<html><frameset cols="20%,*" frameborder=100><frame src="qq.html" noresise name=”song” /><fram e src="ee.html" noresise name=”jun” / ></frameset></html>注释:all.html中不能带body标记综合案例:all.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><title> New Document </title></head><frameset rows="30%,*" border="0"><frame src="top.html"noresize/><frameset cols="20%,*"><frame src="left.html" border=0 noresize/><!--frame元素中有一个属性,相当于给该frame取名--><frame src="right1.html"name="right"/></frameset></frameset></html>top.html<html><head><title> New Document </title></head><body ><img src="logo1.jpg" ></img></body></html>Left.html<html><head><title> New Document </title></head><body bgcolor=pink><a href="right1.html"target="right">青花瓷1</a></br><a href="right2.html"target="right">青花瓷2</a></br></body></html>Right1.html<html><head><title> New Document </title></head><body bgcolor=blue><p>right1.html</p></body></html>Right2.html<html><head><title> New Document </title></head><body bgcolor=yellow><p>right2.html</p></body></html>韩顺平html第六讲html表单form:介绍:html的表单元素,主要用于让客户输入数据,并提交给服务器语法格式:<form action=”url” method=“提交方法(get,post)默认是get方法”> 各种元素(输入框,下拉列表,文本域,密码框)<input type=submit><input type=reset></form>代码:提交界面.html<html><head><title> 登陆界面</title></head><body><h1>登陆界面</h1><form action="ok.html" method="get" align=center>用户名:<input type="text" name="username"/></br>密 码:<input type="password" name="pwd"/></br><input type="submit" value="登录"/><input type="reset" value="重新填写"/></form></body></html>Ok.html<html><head></head><body>ok</body></html>表单中提供给用户的输入形式有:<input type=* name=**>*=text文本框, password密码框, checkbox复选框, radio单选框, image图片按钮, hidden , submit提交按钮, reset重置按钮name是你给表单元素取的名子**=Symbolic Name for CGI scriptAction:指定把请求交给那个界面其他:<html><head><title> New Document </title></head><body>1****************复选框*******************</br><form action="" method="post" ><input type="checkbox" name="1"/>苹果<p><input type="checkbox" name="1"/>香蕉<p><p ><font color=red>*****************单选框******************</font></p></br><input type="radio" name="1"/>苹果<p><input type="radio" name="1" checked/>香蕉<p>2******隐藏一个表单元素****用处是可提交数据,同时不影响界面**********</br><input type="hidden" name="add" value="a.jpg">这里有一个隐藏的表单元素<p><p ><font*****************图片按钮******************</font></p></br> <input type="image" name="submit" src="a.jpg" width=30 align="top"/>苹果<p> *****************下拉列表******************</br><select name="like"><option valu= select>--请选择--</option><option valu=网游select>网游</option><option valu=足球select>足球</option><option valu=游泳select>游泳</option></select></br>*******文本区**<!--cols表示行,rows表示列-->*******</br><textarea name="comment" rows="4" cols="25">请输入文本</textarea></select></br>************请选择要上传的文件*************</br><input type="file" name="myfile">请选择文件</br>************按钮*************</br><input type="button" value="点击一下吧"/></input></form></body></html>DIV+CSS部分笔记当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的元素不被float(浮动)所影响,这个时候我们就需要用clear:both;来清除。
韩顺平.2011最新j2ee视频教程.jdbc笔记1
jdbc 详解+学生选课项目jdbc 介绍jdbc 是sun 公司定义的一套访问数据库的规范( 接口+ 类),主要是放在java.sql 包javax.sql 包. 原理图:做jdbc开发的几个前提1.import java.sql.* 有时import javax.sql.*;2.把jar 包导入到你的java项目昨天还是用jdbc 写了一个简单java程序,完成添加一条记录到oracle 数据库中.Connection接口面试题: 什么时候,需要把setAtuoCommit设为false?答:当有多个dml 同时执行,将其看做一个整体提交,则使用事务管理,则需要把setAutoCommit 设为false;具体使用方法:package cn.sp.test;import java.sql.*;import oracle.jdbc.driver.OracleDriver;public class TestJdbc {//使用jdbc去操作oracle 数据库public static void main(String[] args) {// TODO Auto-generated method stubConnection ct=null;Statement statement=null;try {//1加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//DriverManager.registerDriver(new OracleDriver());//2得到连接ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orclhsp", "scott", "tiger");//把事务设为不自动提交ct.setAutoCommit(false);//3.创建sql对象(Statement / PreparedStatement /CallableStatement)statement=ct.createStatement();//4.通过statement向数据库发出sql 指令./* int n=statement.executeUpdate("insert into user1 values(user1_seq.nextval,'顺平','123'," +"'shunping@',sysdate,30)"); //executeupdate 执行dml(update/insert/delete)*///需求: 对emp表进行操作: 把SMITH 的sal -10 给KING sal+10statement.executeUpdate("update emp set sal=sal-10 where ename='SMITH'");int i=9/0;statement.executeUpdate("update emp set sal=sal+10 where ename='KING'");//提交所有事务mit();} catch (Exception e) {e.printStackTrace();//如果sql 语句中任何语句错误,则可以整体回滚.try {ct.rollback();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}// TODO: handle exception}finally{//关闭资源[先开后闭];if(statement!=null){try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}statement=null;//使用垃圾回收.}if(ct!=null){try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ct=null;}}}}ResultSet 的说明在默认情况下,我们的rs结果集,只能向前移动,这样rs 结果就不能复用,如果希望复用,则可以这样做://通过java 来查询所有的雇员.//假设我们希望rs结果,可以滚动(可以向前,亦可向后)ResultSet 的可选项有:resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE 之一resultSetConcurrency - 并发类型;它是 ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE 之一statement=ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,ResultSet.CONCUR_READ_ONLY);rs=statement.executeQuery("select * from emp");//循环取出while(rs.next()){System.out.println(rs.getInt("empno")+" 名字"+rs.getString("ename"));}//如果我们希望,重新使用rsrs.beforeFirst();System.out.println("*********************");while(rs.next()){System.out.println(rs.getInt("empno")+" 名字"+rs.getString("ename"));}◆orace 表的数据类型和java 程序(jdbc) 的对应关系sql server 表的数据类型和java程序对应图..mysql 表的数据类和java 程序对应图...◆及时关闭资源!!!if(rs!=null){try {rs.close();} catch (Exception e) {// TODO: handle exception}rs=null;}//关闭资源[先开后闭];if(statement!=null){try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}statement=null;//使用垃圾回收.}if(ct!=null){try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}ct=null;}细节:(1)尽量晚创建,早释放(2)关闭资源的代码,一定放在finallySqlHelper类的编写在进行jdbc 程序编写的时候,因为对数据库操作很多,所有都会把对数据库的各种操作,封装到一个类(SqlHelper/DBUtil),我们一起编写(1)如果访问数据库很频繁,则我们的Connection 、PreparedStatement,ResultSet.. 就不要搞成static。
韩顺平 hibernate第2讲
hibernate 从入门到精通
主讲: 韩顺平
■
Criteria接口
Criteria接口也可用于面向对象方式的查询,关于它的具体用法我们 这里先不做介绍,简单看几个案例. 最简单案例:返回50条记录 Criteria crit = sess.createCriteria(Cat.class); crit.setMaxResults(50); List cats = crit.list(); 限制结果集内容 List cats = sess.createCriteria(Cat.class) .add( Restrictions.like("name", "Fritz%") ) .add( Restrictions.between("weight", minWeight, maxWeight) ) .list();
hibernate 从入门到精通
主讲: 韩顺平
hibernate 从入门到精通
主讲: 韩顺平
■ConfiguraFra bibliotekon类①负责管理hibernate的配置信息 ②读取hibernate.cfg.xml ③加载hibernate.cfg.xml配置文件中 配置的驱动,url,用户名,密码,连接池. ④管理 *.hbm.xml对象关系文件.
hibernate 从入门到精通
主讲: 韩顺平
■
对象关系映射文件(*.hbm.xml) ①该文件主要作用是建立表和类的映射关系,是不可或缺的重要文件. ②一般放在其映射的类同一个目录下,但不是必须的。 ③命名方式一般是 类名.hbm.xml,但不是必须的。 ④示意图:
*.hbm.xml 表
某个类
hibernate 从入门到精通
韩顺平 j2ee视频实战教程jsp第1讲 课件 笔记
java ee ; j2ee视频教程- jsp第1讲作者: 韩顺平(一)jsp第1讲1 java EE核心十三种技术介绍2 java EE程序员修炼成精的法门(卖油翁的故事)3 jsp版本的用户管理系统演示4 jsp的概述(基本语法)5 jsp的运行原理(还是hello.jsp)6 jsp版的计算器6.1 jsp中如何使用js(javascript)和css技术..(二)java EE核心十三种技术介绍Java ee是一个开发的平台,它包括的技术很多,主要包括十三种技术.在开发时选择地进行使用,并不是要把所有的技术就去找工作。
只会几种技术就可以从事javaee的开发,正好比如说中国的十八般武艺,最好是什么都会~基础是java servlet jsp !!!基础要像大象一样扎实!不要想水中芦苇,没有跟!(三)java EE程序员修炼成精十三种技术规范:1、Jdbc2、java命名与目录接口(jndi)很少用了3、企业java Bean (Enterprise Java Bean EJB 3.0 以前的版本也要回!因为之前的开发用之前的版本,现在要维护!)4、jsp(本课程讲)5、servlet (之前讲过了)6、corba(很少用,但日本人喜欢用!)7、java的事物体系(JTA)/java事务服务(JTS)现在很少用8、javaMail(要回)和javaBeans激活架构(JAF )9、java信使服务(JMS)短信那边用10扩展标记语言(XML很重要!相当有用)11、Struts + hibernate + Spring (SSH)很重要!卖油翁的故事:我亦无他唯手熟尔!原文:陈康肃公尧咨善射,当世无双,公亦以此自矜。
尝射于家圃,有卖油翁释担而立,睨之,久而不去。
见其发矢十中八九,但微颔之。
康肃问曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“无他,但手熟尔。
”康肃忿然曰:“尔安敢轻吾射!”翁曰:“以我酌油知之。
JAVA视频资料百度网盘分享
JAVA视频资料百度⽹盘分享1、javascript视频教程链接: /s/1gd57FVH 密码: d9ei2、JPA视频教程链接: /s/1dDCx1fj 密码: fwwd3、马⼠兵hibernate视频教程链接:/s/1dFILSYH 密码:nuwz4、JAVA电⼦书链接: /s/1o6xlV9w 密码: 347e5、ext4.0视频教程链接: /s/1ntvmfKd 密码: n6fi6、hadoop实战链接: /s/1nttQoRJ 密码: r6857、android视频教程链接: /s/1mgpi4TM 密码: tx2e8、photoshop基础教程视频链接:/s/1eRVuN4I 密码:d9yv9、马⼠兵struts2视频教程链接: /s/1qWGeCg8 密码: m53e10、junit视频教程链接: /s/1jGCTjQA 密码: sncp11、Struts2+Spring3+Hibernate4+Maven+EasyUI整合⼊门视频链接: /s/1gfJVC8F 密码: fwmi12、spring mvc视频教程链接: /s/1eSvBih0 密码: 5irb13、ext视频教程链接: /s/1pLAlQRL 密码: j2dk14、UML视频教程链接: /s/1c1AXZP2 密码: h3ng15、⽹页与UI设计从⼊门到精通视频教程链接: /s/1mg7z1bi 密码: w7zw16、JSP视频教程链接: /s/1gdBDuIR 密码: jv2u17、java邮件开发视频教程链接: /s/1o61pEgq 密码: cjm518、EJB视频教程链接: /s/1c05DRe4 密码: 3jdy19、编译原理视频教程链接: /s/1mgxVZBy 密码: s6vc20、韩顺平J2SE视频教程21、银⾏交易系统实现链接: /s/1pJL6yAv 密码: qt3m 22、⿊客攻防技术见招拆招视频教程链接: /s/1hqEZgCO 密码: 1d3f 23、scm_cvs_svn视频教程链接: /s/16xQKA 密码: fmb3 24、dreamweaver教学视频链接: /s/1i3ffpGT 密码: cdy3 25、马⼠兵j2se、j2EE视频教程链接:/s/1dFlBRWX 密码:swsf 26、Unix操作系统(哈⼯⼤)链接: /s/1jIx4Oo2 密码: zgfh 27、Android开发视频教程链接: /s/1bn6vR2n 密码: yasa 28、dwr视频教程链接: /s/1bnmdj47 密码: 98bp 29、jquery视频教程链接: /s/1jGARtqe 密码: f95u 30、马⼠兵spring3视频教程链接: /s/1kVCvSXL 密码: ntia 31、java并发教程链接: /s/1yWqEq 密码: 4mxe 31、巴巴⽹开发实现链接: /s/1c0sgDSc 密码: w7z9 32、张孝详J2SE⾼深讲解链接: /s/1mg1ZLcG 密码: 2dg4 33、Flash动画制作教程视频链接: /s/1mirvfq4 密码: dig7 34、C语⾔基础链接: /s/1dDsK8ZB 密码: b4g6 35、php视频教程链接: /s/1r4M6q 密码: w4ak 36、linux视频教程-韩顺平链接: /s/1qXIHdmO 密码: jk9k 37、spring-mvc视频教程链接: /s/1o7SU7xC 密码: fkcf 38、[吉林⼤学计算机操作系统视频教程]链接: /s/13ad9k 密码: bux4 39、mysql特级课视频教程链接: /s/1o8O1exc 密码: 8v8b 40、NoSQL视频教程41、maven视频教程链接: /s/1dDg9ulb 密码: 1f5k42、JNI视频教程链接: /s/1i3tsv45 密码: edvc43、易语⾔资料与教程链接: /s/1c14S1rE 密码: ht9u44、⿊客新⼿综合书藉链接: /s/1mgD4VJq 密码: p4zd45、tomcat视频教程链接: /s/1qWxhRmG 密码: kpcs46、计算机操作系统原理视频教程链接: /s/1pJ1nEeJ 密码: vke747、oracle视频教程及OCP认证教程链接: /s/1o6IQDya 密码: mx1n48、SEO⽹站优化视频教程-学⽆忧链接: /s/1i36jBcp 密码: 9gae49、设计模式视频教程链接: /s/1kTjKUjX 密码: k7m850、jdbc视频教程链接: /s/1kTJCIYN 密码: hk8b51、php从⼊门到精通链接: /s/1i3rq877 密码: c79252、html+CSS教程[13个视频⽂件+1个rar⽂件-423M+资源⼤⼩]链接: /s/1jHPEVZK 密码: hrgd53、JAVA编程⾼级知识链接: /s/1hqEtm5I 密码: yr3x54、OA+⼯作流视频教程链接: /s/1mgLC9Jy 密码: 7em955、webservice视频教程链接: /s/1sjIe7Wp 密码: eka856、数据结构视频教程链接: /s/1mgElasg 密码: wtus57、计算机⽹络视频教程链接: /s/1mgH8NkG 密码: 75wj58、HTML5开发框架PhoneGap实战(jQuery Mobile开发、API解析、3个经典项⽬实战)链接: /s/1nvyKEz3 密码: 47gn59、SpringMvc+Spring+MyBatis+Maven整合视频链接: /s/1ntEOVwt 密码: 7ibg60、weblogic视频教程链接:/s/1bo8YojX 密码: qmy961、java⽹上在线⽀付实战视频62、23种设计模式视频教程链接: /s/1eQ7BD3k 密码: bhff 63、lucene视频教程链接: /s/1mgH8NlY 密码: 5g41 64、xml视频教程链接: /s/1i5kFFbJ 密码: vn86 65、HTML5⼊门视频教程【秀野堂】链接: /s/1sl4ciFb 密码: s46y 66、微普年薪10W版Android教学视频链接: /s/1gdJKOqn 密码: dp2i 67、ibatis视频教程链接: /s/1o6Mo4h8 密码: jfgv 68、传智播客-韩顺平-php从⼊门到精通链接: /s/1c04XT9A 密码: rhuv 69、国内⾸部Zookeeper从⼊门到精通链接: /s/1dD5BOLb 密码: trv7 70、⿊马ios链接: /s/1ntneBJr 密码: xb3f 71、phonegap HTML5开发视频链接: /s/1boRpe5x 密码: 6ws3 72、Zookeeper⼊门到精通链接: /s/1ntEOV4d 密码: gtj3 73、java⼊门链接: /s/1bn7bLWb 密码: r5kz 74、SSH2+activiti5OA管理系统案例视频链接: /s/1gdjnfdL 密码: a54r 75、word转换链接: /s/1pJ5r14R 密码: pbvv 76、桌⾯UI链接: /s/1sj470UL 密码: h32b 77、ajax链接: /s/1kVLjw8n 密码: 38by 78、axure视频教程链接: /s/1kTD7fq3 密码: dk89 79、兄弟连NoSQL视频教程 redis链接: /s/1pJzlMt1 密码: bjsu 80、Hadoop链接: /s/1mgKqEqG 密码: rea5 81、JS视频教程共150集链接: /s/1o6pe3t4 密码: 3cwz 82、activiti ⼯作流学习专题83、oa链接: /s/1o6laJEE 密码: 5scp 84、前段资料链接: /s/1eSmNDwI 密码: m9uk 85、简单微信[⼩项⽬]链接: /s/1bnqgNSj 密码: qu4j 87、nutch链接: /s/1jGsAxE2 密码: ckjq 88、anocation链接: /s/1i3HES0d 密码: cpym 89、DataGuru视频链接: /s/1kThdcMz 密码: v3sn 90、Nutch相关框架视频教程(压缩超清)链接: /s/1dD2nYoT 密码: 9eb6 91、Mars《Android开发视频教程》链接: /s/1sjswhbv 密码: wdbi 92、Python链接: /s/1hqrY4KG 密码: wf77 93、oa activiti 新版链接: /s/1jGMw8E6 密码: 5y4h 94、maven视频教程链接: /s/1i3g1iD3 密码: 1wik 95、linux视频教程链接: /s/1bn2Yacf 密码: k6df 96、⼩布⽼师Git⼊门链接: /s/1i3sCzS5 密码: fqkb 97、Redis链接: /s/1hq2hVta 密码: t7r5 98、⼯作流相关资料链接: /s/1o6tiskE 密码: 664u 99、EasyUI⼊门视频教程链接: /s/1jGxufxc 密码: 1s8m 100、MongoDB视频教程链接: /s/1pLk30d9 密码: 6jsc 101、thinkphp链接: /s/1sjKg4VF 密码: 1vek。
韩顺平Spring笔记
spring的快速入门案例①spring是什么struts 是 web 框架 (jsp/action/actionfrom)hibernate 是 orm框架,处于持久层.spring 是容器框架,用于配置bean,并维护bean之间关系的框架☞spring中有一个非常概念: bean (是java中的任何一种对象javabean/service/action/数据源./dao, ioc(控制反转inverse of control) di( dependency injection 依赖注入)☞画一个框架图快速入门开发一个spring项目.1.引入spring的开发包(最小配置该包把常用的jar都包括, 还要写日志包2.创建spring的一个核心文件 , [hibernate有核心 struts核心文件 ], 该文件一般放在src目录下,该文件中引入 xsd文件:可以从给出的案例中拷贝一份.3.配置bean<!-- 在容器文件中配置bean(service/dao/domain/action/数据源) --><!-- bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存UserService userSerivce=new UserService();("韩顺平");--><bean id="userService" class=""><!-- 这里就体现出注入的概念. --><property name="name"><value>韩顺平</value></property></bean>4.在中,我们怎么使用到spring 的applicationContext对象(容器对象)ApplicationContext ac=new ClassPathXmlApplicationContext("");UserService us=(UserService) ("userService");();5.细节讨论传统的方法和使用spring的方法5.1使用spring ,没有new 对象,我们把创建对象的任务交给spring框架5.2spring的运行原理图:我们再看spring对上面案例总结:spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.ioc是什么答:ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器,而程序本身不再维护.DI是什么答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术☞学习框架,最重要的就是学习各个配置.把Applicationcontext做成一个单例的.上机练习: 把我写的代码走一遍.spring开发提倡接口编程,配合di技术可以层与层的解耦举例说明:现在我们体验一下spring的di配合接口编程的,完成一个字母大小写转换的案例:思路:1.创建一个接口 ChangeLetter2.两个类实现接口3.把对象配置到spring容器中4.使用通过上面的案例,我们可以初步体会到di配合接口编程,的确可以减少层(web层) 和业务层的耦合度.思考题:接口ValidateUser有一个方法:check()有两个类CheckUser1 implements ValidateUser{checkBeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/hsp/ioc/"));("student");结论:1.如果使用ApplicationContext ,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)2.如果是 BeanFactory ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)3.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%)bean 的 scope的细节入门案例:三种获取ApplicationContext 对象引用的方法1.ClassPathXmlApplicationContext -> 通过类路径2.FileSystemXmlApplicationContext -> 通过文件路径举例:ApplicationContext ac=new FileSystemXmlApplicationContext("文件路径 / ");3.XmlWebApplicationContextbean的生命周期为什么总是一个生命周期当做一个重点Servlet -> servlet生命周期 init() destory()java对象生命周期.往往笔试,面试总喜欢问生命周期的问题①实例化(当我们的程序加载文件),把我们的bean(前提是scope=singleton)实例化到内存②调用set方法设置属性③如果你实现了bean名字关注接口(BeanNameAware) 则,可以通过setBeanName获取id号④如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory⑤如果你实现了 ApplicationContextAware接口,则调用方法⑥如果bean 和一个后置处理器关联,则会自动去调用ObjectpostProcessAfterInitialization方法⑦使用我们的bean11. 容器关闭12. 可以通过实现DisposableBean 接口来调用方法 destory13. 可以在<bean destory-method=”fun1”/> 调用定制的销毁方法小结: 我们实际开发中往往,没有用的这么的过程,常见的是:1->2->6->10->9->11上机练习: 把使用每个bean的时间记录到一个文件 ,内容是xxbean. 使用时间是 : 1999-11-11 11:11:11问题:通过BeanFactory来获取bean对象,bean的生命周期是否和Applicationcontext 是一样吗不是一样的,bean是工厂中创建的生命周期会简单一些:配置bean的细节① scope 的说明:☞尽量使用 scope=”singleton” ,不要使用prototype,因为这样对我们的性能影响较大.②如何给集合类型注入值.java中主要的集合有几种: map set list / 数组Department类:package class Department {private String name;private String [] empName;private List<Employee> empList;private Set<Employee> empsets;private Map<String,Employee> empMaps;public Set<Employee> getEmpsets() {return empsets;}public void setEmpsets(Set<Employee> empsets) { = empsets;}public String[] getEmpName() {return empName;}public void setEmpName(String[] empName) {= empName;}public String getName() {return name;}public void setName(String name) {= name;}public List<Employee> getEmpList() {return empList;}public void setEmpList(List<Employee> empList) {= empList;}public Map<String, Employee> getEmpMaps() {return empMaps;}public void setEmpMaps(Map<String, Employee> empMaps) { = empMaps;}}..Foo”><property name=”属性”><!—第一方法引用--><ref bean=’bean对象名’/><!—内部bean--><bean><properyt></property></bean></property></bean>③继承配置public class Studentpublic class Gradate extends Student在文件中体现配置<!-- 配置一个学生对象 --><bean id="student" class=""><property name="name" value="顺平" /><property name="age" value="30"/></bean><!-- 配置Grdate对象 --><bean id="grdate" parent="student" class=""><!-- 如果自己配置属性name,age,则会替换从父对象继承的数据 --><property name="name" value="小明"/><property name="degree" value="学士"/></bean>思考: 目前我们都是通过set方式给bean注入值,spring还提供其它的方式注入值,比如通过构造函数注入值!通过构造函数注入值关键代码:<!-- 配置一个雇员对象 --><bean id="employee" class=""><!-- 通过构造函数来注入属性值 --><constructor-arg index="0" type="" value="大明" /></bean>自动装配bean的属性值(1)byName的用法:<!-- 配置一个master对象 --><bean id="master" class="" autowire="byName"> <property name="name"><value>顺平</value></property></bean><!-- 配置dog对象 --><bean id="dog" class=""><property name="name" value="小黄"/><property name="age" value="3"/></bean>原理图:(2)byType: byType:寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ssh整合ssh(struts+spring+hibernate)三大框架配合使用来开发项目,是目前java ee最流行的开发方式,必须掌握。
设计:这里我们通过实际的案例,来讲解整合,我们使用一个雇员薪资管理系统(CRUD),每加入一个框架,我们就测试通过具体步骤:创建web项目①先搞定spring②引入spring开发包③编写applicationContext.xml文件(或者beans.xml),我们把该文件暂时放在src目录下。
④测试一下spring是否OK。
→目前spring可以工作⑤加入hibernate开发包⑥因为我们是ssh,所以我们hibernate的核心,就被spring接管了hibernate.cfg.xml文件、对象映射文件、SessionFactory。
在spring的文件中配置即可。
⑦在applicationContext.xml文件中配置数据源⑧配置SessionFactory⑨我们编写domain对象和映射文件Employee.hbm.xml→测试spring和hibernate是否可以结合使用→ok⑩考虑分层11.使用事物管理器来统一管理sessionFactory事物<!-- 配置事物管理器,统一管理sessionFactory的事物 --><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"ref="sessionFactory"/></bean><!-- 启用事物注解 --><tx:annotation-driven transaction-manager="txManager"/>目前我们的配置,没有优化,后面还有优化12 配置我们的hibernate二级缓存<property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.OracleDialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=falsee_second_level_cache=truehibernate.cache.provider_class=org.hibernate.cache.EhCacheProviderhibernate.generate_statistics=true;</value></property>添加二级开发包将我们的ehcache的配置文件放到src目录证明二级缓存生效13 整合struts13.1 引入struts开发包13.2 创建struts-config.xml 放在/WEB-INF/ 目录下</form-beans><action-mappings><action path="/login"parameter="flag"name="employeeForm"type="com.lsz.web.action.LoginAction"><forward name="ok"path="/WEB-INF/mainFrame.jsp"/><forward name="err"path="/WEB-INF/login.jsp"/></action></action-mappings></struts-config>13.3 在web.xml中配置我们的struts<servlet><servlet-name>struts</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>struts</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>14 让spring接管我们的struts(action控件)14.1 在struts-config.xml文件中添加如下代码配置:<!-- 配置代理请求处理 --><controller><set-property property="processorClass"value="org.springframework.web.struts.DelegatingRequestProcessor"/></controller>14.2 在applicationContext.xml文件中配置我们的action路径<!-- 配置action --><bean name="/login"class="com.lsz.web.action.LoginAction"><property name="employeeServiceInter"ref="employeeService"/></bean>14.3 这样我们就可以通过spring容器来获取action,和配置action的一些属性14.4 通过使用spring来接管我们的action,还有一个好处,可以解决action是单例的问题,通过在applicationContext.xml文件中配置属性<bean scope=”singlton/prototype/request/session/global session”/>15 解决中文乱码的问题思路1:自己配置过滤器步骤:(1)开发一个Filter(2)在web.xml中配置过滤器</filter><filter-mapping><filter-name>MyFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>思路2:使用spring框架提供的处理中文乱码的过滤器<filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>对ssh整合的特别说明:1.spring可以启用注解的方式来配置属性1.1重新配置bean1.2在EmployeeService的属性SessionFactory中添加一个注解@Resource1.3 在applicationContext.xml启用注解<context:annotation-config/>1.4 测试2.ssh整合的时候,如何解决懒加载问题问题?如果我们的雇员都属于一个部门Class Department{private Integer id;private String name;}具体问题:如果我们在mainframe.jsp中要求显示该雇员所在部门的时候${}时候,懒加载问题出现:解决思路:1.明确初始化在session还没有关闭时,访问一次xxx.getXxxx(),强制访问数据库,或者Hibernate.initalize(xxx)2.在对象映射文件中取消懒加载<lazy=”false”>上面方法问题是:不管你在jsp中使不使用部门的名称,它都有向数据库发出select请求3.spring专门提供了opensessionInView的方法来解决懒加载。
需要在web.xml文件中添加如下配置:<filter><filter-name>OpenSessionInViewFilter</filter-name><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>该方法可以有效减少对数据库的查询,缺点是和数据库保持的session时间延长了。
思考:目前这个项目的代码复用性不好,我们需要重新整理通过在web层和业务层间增加了一套基础接口来提高代码的复用性后面我们还要对项目进行优化,包括添加基础接口,基础抽象类,HibernateUtil(分页简单)<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:Applicationcontext.xml</param -value></context-param><!-- 对spring容器进行实例化 --><listener><listener-class>org.springframework.web.context.Cont extLoaderListener</listener-class></listener>我们的tomcat在启动的时候,就会实例化spring容器ApplicationContext ac=new ClassPathXml(“xx”); ServletContext.setAttribute(“名字”,spring实例)雇员薪资管理系统框架图 Employee.java hibernate @Transactional EmployeeService.java 【业务操作】 login.jsp 提交:<form>xxx</form>EmployeeSer viceInter.java spring 管理各层applicationContext.xml<bean id=”employeeService ”/> <bean id=”departmentService ”/><!-- 配置事物管理器,统一管理sessionFactory 的事物 --> <bean id ="txManager"class ="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name ="sessionFactory" ref ="sessionFactory"/> </bean ><!-- 启用事物注解 --> <tx:annotation-driventransaction-manager ="txManager"/>表单 LoginAction.ja va mainFrame.jsp 成功 失败 <bean databaseSource/> <bean sessionFactory/>struts 组件配置...EmployeeActi on.java addEmpUi.jsp DepartmentSer viceInter.java @Transactional DepartmentServic e.java 【业务操作】 BaseServiceIn ter.java 基础接口 BaseService.j ava (抽象类) 实现 实现实现 继承继承 继承 继承hibernateUtil把 showEmp.jsp。