批處理
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”)