MVC 三層架構 事務

批處理

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”)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章