一、数据库连接
1、JDBC连接
1、加载JDBC驱动程序;
Class.forName("com.mysql.jdbc.Driver");//oracle.jdbc.OracleDriver
2、创建数据库的连接;
Connection conn = DriverManager.getConnection(url,user,password);
3、创建一个Statement对象;
Statement stat = conn.createStatement() ;
//PreparedStatement pstat = conn.prepareStatement(SQL_classification_INSERT);
4、执行SQL语句;
executeQuery 、executeUpdate 和execute
ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ;
//rs=pstat.executeQuery();
5、返回并处理结果;
while(rs.next()){
…
}
6、关闭连接;
rs.close() ;
stat.close();
conn.close();
2、Hibernate连接
<session-factory>
org.hibernate.dialect.MySQLDialect
< property name=”connection.url”>jdbc:mysql://localhost:3306/eshop_1
< property name=”connection.username”>root
< property name=”connection.password”>107510
< property name=”connection.driver_class”>com.mysql.jdbc.Driver
< property name=”myeclipse.connection.profile”>eshop_1
< property name=”show_sql”>true
< property name=”format_sql”>true
< mapping class=”com.yhtb.entity.TUsers” />
Configuration cfg=new Configuration().configure();
SessionFactory sf=cfg.buildSessionFactory();——————2级缓存
Session session=sf.openSession();————————————-1级缓存
Transaction tx=session.beginTransaction();
session.save()//增删改查的动作
tx.commit();
session.close();
sf.close();
3、SSH中数据源连接
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
< property name=”url” value=”jdbc:oracle:thin:@127.0.0.1:1521:orcl”>
< property name=”driverClassName” value=”oracle.jdbc.OracleDriver”/>
< property name=”username” value=”scott”>
< property name=”password” value=”tiger”>
< property name=”defaultAutoCommit” value=”false”>
< bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”>
< property name=”dataSource”>
< ref bean=”dataSource” />
< property name=”hibernateProperties”>
< props> < prop key=”hibernate.dialect”>org.hibernate.dialect.OracleDialect
< prop key=”hibernate.show_sql”>true
< prop key=”hibernate.format_sql”>true
< property name=”annotatedClasses”>< list>< value>com.rain.entity.Emp
二、Struts 2.1
1、校验框架
2、配置文件
< struts>
< package name=”mypackage” extends=”json-default”>
< action name=”login” class=”UsersAction” method=”login”>
< result name=”success” >/index.jsp
< result name=”error” >/login.jsp
3、国际化
< constant name=”struts.i18n.encoding” value=”utf-8” />
4、工作原理
1、struts1 工作原理
2、struts2工作原理
6、struts2标签
<%@taglib uri=”/struts-tags” prefix=”s”%>
7、EL表达式的四个范围
pageScope、requestScope、sessionScope、appalicationScope
8、客户端校验和服务端校验的优缺点
客户端校验比服务端校验快,但如果用户禁掉js的话,客户端校验即失效,服务端校验用户不能禁掉
9、struts2的校验框架——服务端校验有基于action的硬编码和基于xml配置文件两种————-十三种内置校验器
一、基于Action的硬编码实现步骤
1、Action必须extends ActionSpport
2、对某个方法进行校验,需要在Action中添加一个validateXxx().该方法无需返回值,在该方法中加入 addFieldError(” “,” “)或者addActionError(” “);
3、在配置文件struts.xml中,必须增加一个< result name=”input”>/验证页面
4、在错误页面上显示错误信息。
a、页面必须使用struts标签< s: addFieldError>、< s:addActionError>
b、修改配置文件中的过滤器
< filter-mapping>
< filter-name>struts2
< url-pattern>/*
二、基于XML配置文件的实现步骤
a、找到对应的DTD文件头
“-//OpenSymphony Group//XWork Validator 1.0.2//EN”
“http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd”>
三、Hibernate 3.3
1、查询方式
HQL【delete、update、select】
QBC【条件】
QBE【FindByExample】
load/get查询
native SQL查询
命名SQL查询
2、缓存
一级缓存:session
二级缓存:sessionFactory
3、接口
SessionFactory
Session
Transacation
Query
Criteroa
4、对象状态
瞬时态、持久态、游离态
5、关联映射
one-to-many,many-to-one,one-to-one,many-to-many
6、hibernate常见主键增长方式:
increment、identity、native、assigned、foreign、sequence
select max(id) from TABLE
id+1 n+1
7、 hibernate的抓取策略:
select、join、fetch
8、hibernate的延迟策略:
proxy
lazy[关联级别、类级别]
四、Spring 3.0
1、Spring是什么?
Spring是一个容器框架,它管理所有的JavaBean的生命周期
Spring提供了六大模块:(core、aop、dao、orm、JEE、web)
Spring提供了强大的解耦,【IOC/DI,aop】
2、IOC
DI注入的方式:setter、construstor
3、AOP
切面(aspect):用来切插业务方法的类。
连接点(joinpoint):是切面类和业务类的连接点,其实就是封装了业务方法的一些基本属性,作为通知的参数来解析。
通知(advice):在切面类中,声明对业务方法做额外处理的方法。
切入点(pointcut):业务类中指定的方法,作为切面切入的点。其实就是指定某个方法作为切面切的地方。
目标对象(target object):被代理对象。
AOP代理(aop proxy):代理对象。
AOP通知类型:
前置通知(before advice):在切入点之前执行。
后置通知(after returning advice):在切入点执行完成后,执行通知。
环绕通知(around advice):包围切入点,调用方法前后完成自定义行为。
异常通知(after throwing advice):在切入点抛出异常后,执行通知。
五、AJAX
1、什么是AJAX
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
2、ajax的特点:局部刷新
3、Ajax所涉及的技术:JavaScript、XML、CSS、DOM(文档对象模型,在内存中以树结构存储的模型)
4、Ajax的核心类:XMLHttpRequest
注意:不同的厂家ActiveXObject(IE5及以下)
5、Ajax常见的框架:JQuery、DOJO、prototype(原型)、DWR(直接web远程访问)、YUI(雅虎用户界面)、ExtJS
6、Ajax应用的开发步骤:
//1、创建XMLHttpRequest()对象
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{// code for IE6, IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
//2、处理响应(responseText或responseXML)
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
//局部刷新的代码,通常有以下语句 document.getElementById(“data”).innerHTML=xmlhttp.responseText;
//js操作Html
}
};
//3、向服务器发送请求
xmlhttp.open(“GET”,”/ajax1/index.jsp?t=”+Math.random(),true);
xmlhttp.send();//只有是GET提交时才赋值为NULL
六、JSON
1、JSON是什么
a、JavaScript 对象表示法(JavaScript Object Notation)。
{
“employees”: [
{ “firstName”:”Bill” , “lastName”:”Gates” },
{ “firstName”:”George” , “lastName”:”Bush” },
{ “firstName”:”Thomas” , “lastName”:”Carter” }
]
}
b、JSON 是存储和交换文本信息的语法。类似 XML。
c、JSON 比 XML 更小、更快,更易解析
七.js的对象
1、内置对象
String: var s = new String(“23213”);
Date: var d = new Date();
Math: Math.random();
Array: var a = new Array();
Object: var o = new Object();
2、js的浏览器对象(BOM)
window: window.alert()、 window.confirm、 window.setTimeout()
document:document.getElementById()、
document.getElementByTagName()
location:window.location.href
3、js中的DOM对象
HTML、BODY、SELECT、INPUT
4、js的自定义对象