1)spring容器注册
数据源,JdbcTemplate
事务,<tx:annotaion-driven />
1)写DAO类
在事务方法上面,注解事务@Transectional
2)在spring容器检测
二、写一段小文本,描述单例模式、工厂模式、代理模式的含意。
单例模式:在某一特定的环境下,一个类的对象永远只有一个
工厂模式:如果一个类有工厂方法,那么这个方法一定具有两个特点,
第一,生产产品功能,new 产品类(),第二,返回已生产的产品,return 产品类对象,这种方式称为工厂模式
代理模式:一个真正的工作任务,由另一个代理类表现出来,这个任务仍然是由原有工作类完成的,这种方式,就叫做代理模式。
三、写一段小文本,描述springjcbc模块
1、模块功能
也称为springDAO模块,是spring独立封装jdbc,采用sql技术处理数据表增删改查操作的工具。
2、编程要点
1)配置数据源
包括JdbcTemplate
2)写M部分
包括PO类,DAO类;注解方式引用JdbcTemplate数据源工具
采用jdbcTemplate类对象处理数据表增删改查操作
3)在spring容器中检测数据表增删改查操作
数据库范式:表示数据表规范化程度
数据库第一范式:数据表中的数据符合结构化条件,即任何一列
的数据不能细分。
数据库第二范式:数据表中的数据在符合第一范式的基础上,非主键字段与主键之间,必须有依赖关系。
数据库第三范式:数据表中的数据,在符合第二范式的基础上,非主键字段之间,不能产生依赖关系
外键:本表中的某一字段,引用另一个表的主键,则本表这个字段就是外键。
子表:有外键字段的是字表
主表:主键字段被引用的表是主表
视图:
用一个简单的单表,代表一个复杂查询的快捷方式,这个复杂查询可以是一个,也可以是N个表
数据视图不保存数据
不加快查询速度
可以简化业务模型
主要用于查询
可能进行增、删、改操作,要依据情况
外连接:
一对主子表查询时,用主表的主键去关联子表的外键,当子表有数据时,显示数据,当子表无数据时,用空显示
一、写一段小文本,描述String/StringBuffer/StringBuilder关键点。
1.String:
(1)String的值是不可变的,String的操作都是改变赋值地址而不是改变值操作。
(2)String s1 = "a"+"b";
2.StringBuffer:
(1)它是可变类,并且线程安全;
(2)每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时, //类似的还有vector,hashtable,由于支持同步,就会降低速度,但线程是安全的
不会分配新的容量,当字符串大小超过容量时,会自动增加容量。
(3)StringBuffer st1 = new StringBuffer();
st1.append(a).append(b).append(c);
3.StringBuilder:
(1)它是线程不安全的;
(2)一般来说,StringBuilder类比StringBuffer速度要快一点。
(3)StringBuilder st2 = new StringBuilder();
st2.append(a).append(b); //类似还有ArrayList ,hashMap
基本数据类型和引用数据类型的区别
基本类型,缺省值为0
浮点型,0.0
布尔 缺省值 为 true;主要是在前台录入时,如果用基本数据类型,会变成相应的缺省值
引用类型的缺省值为空
1.SpringMVC的开发要点
一、开发所需环境:
1)构建一个javaWeb项目
2)加载springmvc组件环境
3)配置文件
a> web.xml
关联spring容器.xml
请求后缀*.action
字符集utf-8
b>spring容器.xml
开启springmvc注解
指明jsp所在目录与后缀
数据源
mybatis的其他设置
二、注解方式的编程要点:
1)写一个springmvc的控制器
@Controller,当前类
@RequestMapping,多级
请求方法
请求参数,通过pojo类传递
2)建立一个JavaWeb项目
3)加载SpringMVC组件
4)修改web.xml文件
1)springmvc的容器.xml文件放在/WEB-INF/后某个目录
2)请求后缀
3)字符集,utf-8
5)配置springmvc的容器文件
1)控制器所有package目录
2)jsp文件,2个要素
所在目录
后缀
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
6)Jsp页面检测
1)写一个jsp
/WEB-INF/.../.../...jsp
2)写一个控制器
@Controller
@RequestMapping,多级
3)浏览器检测
一.web项目部署的意义
1.将项目对外发布,容器是Tomcat,weblogic等等。
1. 拷贝开发环境下的web目录
2. 收集jar包
3. 同步开发环境下的代码,即Tomcat下面的内容会随着开发环境的改变而同时改变。
一、写一段小文本,描述springmvc+mybatis的开发要点。
1、在springmvc正常工作基础上
2、springmvc+mybatis容器.xml配置
数据源
集成mybatis.cfg.xml,SqlSessionFactory
集成MyBatis的IMapperDAO接口
事务管理器,transactionManager
注解事务,<tx:annotation-driven />
3、写mybatis注解IMapperDAO接口
4、写mybatis的DAO类
@Service,类上面
@Autowired,在IMapperDAO类属性上面
@Transactional,事务方法上面
5、写控制器
@Autowired,引入MyBatis的DAO类
在提交方法中,直接用dao类对象
1)封装:
同一个类的2个不同对象的属性与方法是独立的
2)继承:
子类无条件地拥有父类的属性与方法,但是只能使用父类作用域可以用到的属性或方法
3)多态:
在继承时,一个覆盖方法的每一个不同实现,便是这个方法的一个多态。
4)抽象:
一个方法只有声明,没有具体实现
一、jsp四种数据链传递数据的区别:
1、page
当前请求的jsp页面传递数据有效,(只有JSP有此对象,servlet无此对象这部分应该省略)
2、request
请求的一瞬间,转发的相关页面传递数据有效
3、session
某个客户的会话周期内(打开到关闭浏览器或者设置的会话时间内),相关页面之间,传递数据有效
4、application
当前应用服务器所有的客户端的请求,共享数据有效
一、写一段小文本,描述spring几个常用模块的作用。
1、IOC模块
Inversion Of Controll,反转的控制
表示构建一个类对象,不是自己的代码直接new 构造函数出来的,而是spring容器,通过反射技术构建出来的,这一过程就称为IOC
2、aop模块
Aspect Oriented Programming,面向切面编程
spring监控代码运行的工具
3、jdbc模块
Java Database Connectivity,java数据库连接
也称为DAO模块,是采用sql技术处理数据表增删改查操作的工具
4、ORM模块
Object/Relation Mapping,对象关系映射
将sql语句转换成java对象,通过操作java对象,处理数据增删查改操作
spring无自己的orm组件,需要与orm组件,例如与mybatis集成,集成后处理数据表操作。
5、WEB模块,也称为springmvc模块
比Jsp更好用的Jsp,有固定的mvc代码结构,可以完成Bs的管理软件页面快速开发
这个mvc框架功能非常强大,例如
各种数据类型转换
数据自动收集(request.getParameter(...))
各类校验
国际化
拦截器
文件上传
excel/xml/jso格式数据输出
。。。
二、写一段小文本,描述spring-aop的前置、后置、环绕、异常的含意
AOP前置是在进入方法还没执行时进行监测
AOP后置是在方法执行完还未返回时进行监测
环绕前置和后置的结合
AOP异常是当代码出现异常时进行监测
一、char有几个字节
2到6个字节
原型设计模式:生成一个类对象,不是直接new 类()出来的,而是用某个类对象拷贝出来的。
装饰模式:一个工作任务,经过一些点缀,表面上看起来发生一些改变,这每一次改变,就是一次装饰,这种设计方式就装饰设计模式
二、描述springmvc+mybatis注解方式处理事务编程。
1、在springmvc正常工作基础上
2、springmvc+mybatis容器.xml配置
数据源
集成mybatis.cfg.xml,SqlSessionFactory
集成MyBatis的IMapperDAO接口
事务管理器,transactionManager
注解事务,<tx:annotation-driven />
3、写mybatis注解IMapperDAO接口
4、写mybatis的DAO类
@Service,类上面
@Autowired,在IMapperDAO类属性上面
@Transactional,事务方法上面
5、写控制器
@Autowired,引入MyBatis的DAO类
在提交方法中,直接用dao类对象
一、写一段文本,描述事务定义及定义acid
要实现某个业务,要涉及到数据库多个相互关联的操作,这些操作要么全部成功,要么全部失败,如果的失败,则回到原始状态。
则这样的一个业务,就称为一个事务。
一、 关于事务的属性,acid
1、 原子性,Atomicity
表示一个事务的一系关联的动作合起来是一个最小单位,不可以分离的单位。
2、 一致性,Consistency
表示一个事务的多个相互关联的动作,按原计划进行,没错误发生,称为该事务的一致性
3、 隔离性,Isolation
多个事务同时进行时,彼此不受到影响,每个事务都可以独立完成。
理解:将每个事务设想一个独立的多线程,或进程
4、 持久性,Durability
表示一个事务一旦完成,不能反悔,或撤消,不能再回到原始状态。
三、描述div+css编程关键要点,css属性,标签
1.float
作用:通过css定义float让div样式层块,向左或向右(靠)浮动。
语法:
float:none 不使用浮动
float:left 靠左浮动
float:right 靠右浮动
2.margin
外边距,指的是控件边缘相对于父空间的边距
语法:
(1)margin-left:10px; 左外边距
(2)margin-right:10px; 右外边距
(3)margin-top:10px; 上外边距
(4)margin-bottom:10px; 下外边距
(5)margin:10px; 四边统一外边距
(6)margin:10px 20px; 上下、左右外边距
(7)margin:10px 20px 30px; 上、左右、下外边距
(8)margin:10px 20px 30px 40px; 上、右、下、左外边距
3.padding
作用:内边距,指的是控件的内容相对于控件的边缘的边距
语法:
(1)padding-left:10px; 左内边距
(2)padding-right:10px; 右内边距
(3)padding-top:10px; 上内边距
(4)padding-bottom:10px; 下内边距
(5)padding:10px; 四边统一内边距
(6)padding:10px 20px; 上下、左右内边距
(7)padding:10px 20px 30px; 上、左右、下内边距
(8)padding:10px 20px 30px 40px; 上、右、下、左内边距
4.list-style:no-style
作用:把图像设置为列表中的列表项目标记
属性:
list-style-type 设置列表项标记的类型。ul.circle {list-style-type:circle;}
list-style-position 设置在何处放置列表项标记。ul{list-style-position:inside;}
list-style-image 使用图像来替换列表项的标记。ul{list-style-image:url("/i/arrow.gif");}
5. clear
作用:属性规定元素的哪一侧不允许其他浮动元素
语法
img
{
float:left;
clear:both;//在左右两侧均不允许浮动元素。
clear:left;//在左侧不允许浮动元素。
clear:right;//在右侧不允许浮动元素。
}
6.<div>标签
作用:是一个块级元素,可定义文档中的分区或节
语法:
<body>
<div >
<p>text</p>
...
</div>
</body>
7.<ul>
作用:定义无序列表的标签
语法:
<ul>
<li>红色</li>
<li>蓝色</li>
<li>白色</li>
</ul>
8. <tr> 定义 HTML 表格中的行
<th>定义表格内的表头单元格
<td>定义 HTML 表格中的标准单元格
语法:
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>王小明</td>
<td>18</td>
</tr>
</table>
一、接口和抽象类的区别
(接口里所有方法均为抽象方法,所有的属性是常量,public static final 这几个关键词不用写,方法前面只能是public abstract,可以省略;一个接口可以继承多个接口;
一个类可以实现多个接口;抽象类可以没有抽象方法)
考试时,或面试时
抽象类:可以有抽象方法,也可以有具体方法,一个实现子类,只能继承一个抽象类
接口:接口的方法全是是抽象方法,一个接口可以继承多个接口,一个实现子类,可实现多个接口