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();
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
< 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();
<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
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”>
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[关联级别、类级别]
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):在切入点抛出异常后,执行通知。
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
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 更小、更快,更易解析
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的自定义对象
<script type="text/javascript">
1、定义:Jquery是一个丰富的js库
2、JQuery对象就是通过Jquery包装DOM对象后产生的对象
< script type=”text/javascript” src=”jquery-1.11.0.js”>
< script type=”text/javascript”>
< body>
< div id=”111”>sssssssssss
< p>sfdsf
例2:
< script type=”text/javascript” src=”jquery-1.11.0.js”>
< script type=”text/javascript”>
(function(){
alert(222);(‘button’).click(function(){
$(‘#list’).load(‘index.jsp’);
});
});
< body>
< div id=”list”>
< button>获取服务器数据
Spring———-3.0
定义:是一个管理JavaBean生命周期的容器型的轻量型框架,包含六大模块DAO、ORM、Web、Core、JEE、AOP
Hibernate——3.3
ORM持久型框架—映射—POJO的属性和表中的字段,对象和表,POJO的属性的类型与表中字段的属性的类型
Struts———–1.3/2.1
MVC的web轻量型框架
VO——————–值对象
DTO——————数据传输对象
BO——————–业务对象
PO———————持久化对象
POJO—————–简单无规则Java对象(JavaBean)
DAO——————-数据访问对象
七、泛型DAO
1、设计通用DAO接口
public interface IGenericDAO< T,ID extends Serializable>{
public abstract void save(T entity);
public abstract void update(T entity);
public abstract void delete(ID id);
public abstract T findById(ID id);
public abstract List< T> findAll();
public abstract List< T> findByExample(T entity);
public abstract int count(T entity);
public abstract pageVO< T> findByPage(T entity,int currentpage,int pageSize);
}
2、设计通用DAO的实现类
public class GenericDAOImpl< T,ID extends Serializable> extends HibernateDaoSupport implements IGenericDAO< T,ID>{
protected class< ?> clazz;
//初始化clazz
public GenericDAOImpl(){
//1、得到我们的通用范型实现类的子类,例如:得到EmpDAOImpl
Class< ?> cls=getClass();
//2、得到具体类【EmpDAOImpl】的父类,由于父类是范型类,所以,方法为:
ParameterizedType ptype=(ParameterizedType)cls.getGenericSuperclass();
//3、得到具体的参数实际类型
clazz=(Class< ?>)(ptype.getActualTypeArguments()[0]);
}
public void save(T entity){
getHibernateTemplate().save(entity);
}
public void update(T entity){
getHibernateTemplate().update(entity);
}
public void delete(ID id){
getHibernateTemplate().delete(id);
}
public T findById(ID id){
return T(getHibernateTemplate().get(clazz,id));
}
public List<T> findAll(){
DetachedCriteria criteria=DetachedCriteria.forClass(entityClass);
return getHibernateTemplate().findByCriteria(criteria);;
}
public List findByExample(T entity){
return getHibernateTemplate().findByExample(instance);
}
public int count(T entity){}
public pageVO findByPage(T entity,int currentpage,int pageSize){}
3、设计每个业务DAO接口,例如IEmpDAO
public interface IEmpDAO extends IGenericDAO< Emp,Integer>{
//新增自己DAO的特有方法:例如登录
Emp login(String account,String password);
}
4、设计每个业务DAO的实现类,例如EmpDAOImpl
public class EmpDAOImpl extends GenericDAOImpl