MVC 三层架构 事务

来源:互联网 发布:mac lightroom 破解 编辑:程序博客网 时间:2024/05/12 10:13

批处理

Statement addBatch(sql); //添加SQL命令executeBatch()方法:执行批处理命令clearBatch()方法:清楚批处理命令

JDBC获取主键和调用存储过程

st=conn.prepareStatement(sql);st.excuteUpdate();rs=st.getGenerateKeys();if(rs.next()){  System.out.println(rs.getInt(i));}//存储过程//1.得到CallableStatement,并调用存储过程:CallableStatement cStmt=conn.prepareCall("{call demoSp(?,?)}");//2.设置参数,注册返回值,得到输出cStmt.setString(1,"abcdefg");cStmt.registerOutParameter(2,Types.VARCHAR);cStmt.execute();System.out.println(cStmt.getString(2));

MVC开发模式

JavaBean–>Model

Jsp–>View

Sevlet–>Controller

Web层

业务逻辑层

数据访问层(dao层)

分包:

domain

dao

dao.impl

service

service.impl

web.controller

web.listener

web.filter

utils

Junit.test

WEB-INF/jsp 保存网站所有jsp

EL表达式和JSTL

EL表达式${标识符}==pageContext.findAttribute()方法

用el表达式在取数据时,通常用“.”号,“.”号取不出来时,用“[]”

${pageContext.request.contextPath} //得到当前web应用的路径名称

JSTL:使用JSTL步骤:

  • 1.导入jstl.jar和standerd.jar这两个JSTL的jar文件。
  • 2.在JSP页面中使用<%@tablib uri=”” prifix=”“%>元素导入标签库。
    <c:forEach var="person" items="list">        ${person.name}    </c:forEach>    <c:forEach var="entry" items="${map}">        ${entry.key} : ${entry.value.name}    </c:forEach>    <c:if test="${user!=null}">        欢迎那您:${user.username}    </c:if>

MVC与三层架构

1.搭建开发环境

1.1导开发包

  • dom4j
  • jstl
  • beanUtils
  • log4j

1.2创建组织程序的包

  • domain
  • dao
  • dao.impl
  • service
  • service.impl
  • web.controller(处理请求的servlet)
  • UI(给用户提供用户界面)
  • utils
  • junit.test
  • WEB-INF/jsp

事务

逻辑上的一组操作,要不全部成功,要不全部失败

start transaction; 开启事务

commit; 提交事务

rollback; 回滚事物

setAutoCommit(false); 开启事务

手动回滚后,一定要记得提交事务

特性:

  • 原子性(A)
  • 一致性 (C)
  • 隔离性 (I)
  • 持久性 (D)

脏读: 读取到了一个事务未提交的数据

不可重复读: 读取到了一个事务提交的数据

虚读(幻读): 读取到了别人插入的数据

ServletConfig

servletConfig对象,用于封装servlet的配置信息
在实际开发中,有一些东西不适合在servlet程序中写死,这类数据就可以通过配置方式配给servlet,例如 servlet采用哪个码表 servlet连接哪个库 servlet哪个配置文件

获取< init-param>里的初始化参数

//得到指定的
String value=this.getServletConfig( ).getInitParameter( ” data”);
System.out.println( value);
//得到所有的
Enumeration e= this.getServletConfig( ).getInitParameterNames( );
while( e.hasMoreElements( )){
String name=( String)e.nextElement( );
String value1=this.getServletConfig( ).getInitParameter( name);
System.out.println( name+” =”+value1);
}

乱码:
pageEncoding=” ” 通知web服务器已什么码表来翻译成Servlet
contentType=” ” 通知浏览器打开使用的码表
记事本 国标2312
java ISO8859-1

pageContext对象

page域作用范围为当前jsp页面
request.setAttribute( ” data”,” aaaa”);
String data=( String)pageContext.getAttribute( ” data”,PageContext.REQUEST_SCOPE);
out.write( data);

pageContext.findAttribute( ” data”); //page request session application

pageContext.forward( ” /1.jsp”);
pageContext.include( ” /foot.jsp”)

1 0
原创粉丝点击