-
Mybatis中的OGNL表達式查看全部
-
Mybatis的SqlSession查看全部
-
Connection為何不需要commit();因為conn.setAutoCommit(true);設置為自動提交,而我們MyBatis把它封裝后,setAutoCommit(false);所以需要手動提交事務。 Ps1:a href="#" 這個在html中有什么作用?跳轉到本頁面頂部,一般建議寫成javascript:void(0);要好一點,點了一點反應都沒有,寫#點了會跳一下的。 Ps2:servlet拿到什么數據類型就什么類型,至于service不一致時,再service里面去修改,這也是service作用之一。 Ps3:MyEclipse對JS等文件報錯處理:http://jingyan.baidu.com/article/ca41422fe094251eae99ede7.html Ps4: /** * 調用后臺批量刪除方法 */ function deleteBatch(basePath){ $("#mainForm").attr("action",basePath+"DeleteBatchServlet.action"); $("#mainForm").submit(); } 解析:將id為mainForm的表單的action提交路徑改為basePath+"DeleteBatchServlet.action"這個并且執行submit提交表單!查看全部
-
servlet負責接收頁面的值和向頁面傳值。如果有業務邏輯需要處理則調用相應的service。service接收servlet傳過來的值,并對其進行處理,做業務的操作,算法等等,如果有需要則調用相應的dao層。dao層完成與數據庫的交互,執行相應的SQL語句。 增刪改默認按事務處理,Mybatis對事務的控制,默認 是不自動提交的,需要手動提交 sqlSession.commit(); <script type="text/javascript" charset="utf-8" > //獲得動態URL function getUrl(url){ //獲得查詢指令名稱的值 var command = document.getElementById("command").value; //獲得查詢描述的值 var description = document.getElementById("description").value; //拼接最后的URL地址 var changeUrl = url + "&command=" + command + "&description=" + description; //跳轉頁面 window.location.href=changeUrl; } </script> 單條刪除:<a>用post傳值,并彈出確認框 <script type="text/javascript"> function judgeDelete(id) { if(confirm("確定要刪除嗎?")) { window.location.href="DeleteOneServlet.action?id="+id; } } </script> <a href="javascript:judgeDelete(${message.id})">刪除</a>查看全部
-
OGNL表達式標簽查看全部
-
where 1=1是什么意思 啊,有意義嗎查看全部
-
應用log4j(日志)調試動態SQL: 1、jar包和配置文件 2、log4j.properties <1>log4j.rootLogger=DEBUG,Console:輸出級別(級別<由低到高>debug/info/warn/error)和輸出位置(控制臺) <2>log4j.appender.Console=org.apache.log4j.ConsoleAppender:配置這個類才會輸出在控制臺(可在別處) <3>log4j.appender.layout=org.apache.log4j.PatternLayout:布局(按照自己的想法去輸出)<4>log4j.appender.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n: %d:產生日志的時間 [%t]:產生日志所處線程的線程名稱 %-5p:輸出日志的級別、 "5":代表輸出的字符會占5位字符,不足則會用空格補齊; "-":指的是補齊的空格在右邊,沒有則在左邊. [%c]:指輸出這個日志時處于的那個類的全名,包括包名 %m:輸出的時候附加的信息 %n輸出換行 <5>log4j.logger.org.apache=INFO:為不同包配不同的級別,把總的覆蓋,可看到自己想看的信息 log4j配置詳解 一、log4j.rootLogger=INFO, stdout, R 第一個參數為等級,后面可跟一到多個參數,為輸出的位置; 例句的意思為將等級為INFO的日志信息使用stdout和R進行輸出,stdout和R可以自己命名; 等級可分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,OFF是關閉,不輸出任何信息,其他級別按這個順序依次降低,如果 指定一個級別,如INFO,則比該級別高的信息都會輸出查看全部
-
<!-- 配置sql語言,查詢語言,ID+ namespace="Message"為唯一的標識符 這里的parameterType請注意,拼接的sql語句的屬性可以是一個string 類型的, 多個必須封裝起來例如bean層調用時是她所在的包 一個 --> <select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult"> select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE <where> <!-- 我在此處開始使用mybatis的動態拼接了,用的是ognl的表達式,&&=and=&& “”="" ?號的處理是#{查詢的屬性}--> <if test="command != null and !"".equals(command.trim())"> and COMMAND=#{command} </if> <!-- 這里是模糊匹配,使用模糊匹配的話必須用'%'將傳參包起來 --> <if test="description != null and !"".equals(description.trim())"> and DESCRIPTION like '%' #{description} '%' </if>查看全部
-
標簽內容查看全部
-
Mybatis配置文件內容: 1)為避免在整個工程中出現重名的id,所以在配置文件中首先指定命名空間。 2)resultMap對應數據庫的一個表。其column屬性對應表中字段(或者查詢語句中字段的別名),property屬性對應實體類中的對應字段。(id表示主鍵,其余字段用result) 3)具體查詢語句的配置中,其parameterType指向一個封裝好的類,此類用來獲取動態sql的查詢條件。其后的resultMap指定查詢結果使用哪個類返回,這里就是2中的resultMap的id。查看全部
-
sqlsession調用 方法來執行 sql語句 只是輸入了select標簽的名字,但是并沒有輸入sql配置文件的uri,所以要在數據庫連接的核心配置文件中 導入 sql配置文件,即<mappers>標簽與子標簽<mapper> sqlsession調用時會用到這個名字 resultmap屬性。對應的是resultmap標簽的id mybatis配置文件中的mapper標簽 屬性是namespace 翻譯是命名空間 mapper標簽內包含 resultmap標簽 是執行完查詢語句后返回的結果集 resultmap有子標簽 id。 用來配置 有主鍵約束的行 和result。 用來配置其他行 并列關系 ,都有屬性column jdbctype property屬性 column看名字 就是數據庫的字段名 properry 是數據庫對應dao類中的屬性 select標簽 insert標簽 update標簽。這些標簽里寫的都是sql語句 resultMap 中id是標識,是唯一的。resultMap中的子標簽中的id表示后臺數據庫的主鍵,而result對應得實后臺數據庫除了主鍵以外的其他字段。查看全部
-
SqlSession查看全部
-
Ps1:配置文件的詳細路徑:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml Ps2:小技巧:粘貼類名,再粘貼對象名,改大小寫即可。 Ps3:順序(從底層往高層):實體類-->Dao-->Service-->Servlet-->頁面。 Ps4:數據庫服務啟動即可,無需登錄數據庫操作軟件。 Ps5:Dao層一般與表(實體類)相關,命名一般在實體類名+“Dao”即可;Service層命名一般與Servlet命名對應。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】 //通過配置文件獲取數據庫連接信息 Reader reader=Resources.getResourceAsReaser("config/Configuration.xml"); //通過配置信息構建一個sqlSessinfactory SqlSessionFactory sqlSessionFactory=new SqlSessionfactoryBuilder(reader); //通過sqlSessionFactory打開一個數據庫回話 SqlSession sqlsession=sqlSessionFactory.openSession();查看全部
-
StringBuilder sql=new StringBuilder(" select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1 "); List<String> paramList=new ArrayList<String>(); if(command!=null&&!"".equals(command.trim())){ sql.append(" and COMMAND=? "); paramList.add(command); } if(description!=null&&!"".equals(description.trim())){ sql.append(" and DESCRIPTION like '%' ? '%' ");//MySql語法:'%'空格?空格'%' paramList.add(description); } PreparedStatement pstmt=conn.prepareStatement(sql.toString()); for(int i=0;i<paramList.size();i++){ pstmt.setString(i+1,paramList.get(i)); } ResultSet rs=pstmt.executeQuery(); 注意1:PreparedStatement語句要在sql語句還沒準備好后面,但要在循環前面。 注意2:為何不直接在if語句后寫“?”的內容呢?因為不知道問號序號是多少,不好控制。 Ps1:Tomcat啟動一般用Debug,只要不要設置斷點,效果與Run是一樣的,這樣一來,如果想調試就設置斷點即可,不需要再切換到Debug模式(Ps:Debug模式下,修改Java代碼會自動上傳到服務器,無需重新啟動Tomcat) Ps2:sql+="";//這樣寫不好,因為原來的字符串占用內存還在,推薦使用StringBuffer、StringBuilder。查看全部
-
1.載入JSTL中的c標簽:<%@ taglib prefix="c" uri="http://java.sum.com/jsp/jstl/core" %> 2.利用c標簽來進行foreach循環和if判斷 <c:forEach items="${messageList}" var="message" varStatus="status"><!-- varSatus屬性,可以通過其屬性值獲取到本次循環的狀態,如其中的index可以獲取循環的次數(從0開始),可配合if標簽做隔行換色的效果 --> <tr <c:if test="${status.index % 2 != 0}">style='background-color:#ECF6EE;'</c:if>> <td><input type="checkbox" name="id" value="${message.id}"/></td> <td>${status.index + 1}</td> <td>${message.command}</td> <td>${message.description}</td> <td> </c:forEach>查看全部
舉報
0/150
提交
取消