您的位置:首页 > 编程语言 > Java开发

java基础知识总结10

2016-03-29 12:34 549 查看

一、数据库连接

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>
<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();

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的自定义对象
<script type="text/javascript">


八、JQuery

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

< p>sfdsf< /p>

< div class=”222”>sssssssssss

< div >sssssssssss

< table border=”1”>< center>

< tr>< td>1< td>1

< tr>< td>22< td>22

< tr>< td>333< td>333

< tr>< td>4444< td>4444

< /body>

例2:

< script type=”text/javascript” src=”jquery-1.11.0.js”>

< script type=”text/javascript”>

(function(){
alert(222);(function(){
alert(222);
(‘button’).click(function(){

$(‘#list’).load(‘index.jsp’);

});

});

< body>

< div id=”list”>

< button>获取服务器数据

九、SSH

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: