-
一個指定對應多條不同回復內容<br> 一對多的關系,一般拆分成兩張表,這樣就減少了冗余數據<br> ①表指令表:主鍵、name、description<br> ②表指令表對應的內容:主鍵、內容、指令表的主鍵(command_id)<br> 這樣,一個指定就可以在②表找到所對應的多條內容 兩種結構: ——————————①一條指令回復一組內容 ——————————②一條指令回復一組中的一個內容,在java代碼中隨機回復一條即可 dao層內容: ——————————————————————列表查詢 ——————————————————————頁面初始化 ——————————————————————微信對話查看全部
-
修改文件名 右擊---Refacter---Rename---; 可以將包含此文件名的所有文件都做出修改 快捷鍵:Alt+Shift+R查看全部
-
如果js中Dom對象的值為 ""、null、undefined、0;則if(Dom對象)為false 點擊按鈕提交請求,判斷字符串不為空的話,執行ajax請求。 ajax復習: url:請求后臺的路徑 type:提交方式 dataType:數據類型 timeout:超時時間 success:成功后的回調函數,函數中的內容是對服務端傳遞的數據進行處理。 data:請求參數查看全部
-
mybaits的sql語句查詢放在配置文件中,有select,delete,update等標簽,id用于區分,resultMap用于映射Java中的類。查詢到的類屬性與resultMap中的對應。加載配置文件用mappers標簽,resource表示路徑。查看全部
-
mybaits獲取數據庫連接 //通過配置文件獲取數據庫連接信息 Reader reader = Resources.getResourceAsReader("configuration.xml"); //通過配置信息獲取sessionFactory SessionFactory sessionFactory = new SessionFactorybuilder().build(reader); //通過sessionFactory創建一個會話 SqlSession sqlSession = sessionFactory.openSession();查看全部
-
jsp常用標簽查看全部
-
Ps1: servlet負責接收頁面的值和向頁面傳值。如果有業務邏輯需要處理則調用相應的service; service接收servlet傳過來的值,并對其進行處理,做業務的操作,算法等等,如果有需要則調用相應的dao層; dao層完成與數據庫的交互,執行相應的SQL語句。 Ps2:basePath后面默認有個“/”。 Ps3: <servlet-mapping><br> <servlet-name>...</servlet-name> <url-pattern>/Servlet.action</url-pattern>//推薦使用這種方式,不推薦使用帶“/”方式,因為跳轉的時候需要處理。這樣一來可以避免這個處理問題。 </servlet-mapping> Ps4:增刪改與查詢不一樣,MyBatis查詢默認有事務提交,但增刪改需要手動提交事務。sqlSession.commit();查看全部
-
對應關系查看全部
-
應用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:為不同包配不同的級別,把總的覆蓋,可看到自己想看的信息查看全部
-
ognl可以直接調用Java類的方法 ognl中的特殊字符需要轉義,如"轉義為" &轉義為&或者寫為其特有操作符and 精確查詢 and COMMAND=#{command} 即用 #{}代替 ? 模糊查詢 and DESCRIPTION like '%' #{description} '%'查看全部
-
1.在核心配置文件中指定要執行的sql配置文件的路徑,使用<mappers>,可以添加多個sql映射文件,指定資源時,使用resource屬性指定資源路徑即可,這樣程序會自動讀取sql配置文件,并創建sqlSessionFactory。 2.配置messege.xml查詢數據庫(sql配置文件),如圖: 執行sqlSession.selectList()方法時,通過配置文件中的select標簽找到sql語句,執行數據庫的查詢,返回的結果通過select標簽中resultMap這樣的一個屬性,去查找resultMap標簽,然后按照resultMap中的標簽中的配置完成java屬性與數據庫字段的對應。 mybatis的sql語句通過xml文件進行配置 sql的配置文件中的<mapper>標簽的namespace要唯一,調用sql語句,eg:sqlSession.selectList("Messages.list");//namespace的名字點上語句的ID <resultMap type="" id="Message">//映射的是封裝返回結果的bean,type是bean的全類名,id要唯一(resultMap中) <id column="ID" jdbcType="VARCHAR" property="id"/> //主鍵使用,column對應的是數據的字段名,jdbcType對應的是數據字段的類型,property對應的是實體的屬性名 <result /> //其他字段使用 </resultMap> 查詢語句: <select id="list" resultMap="Message">sql語句</select> 寫好的sql配置文件,可在mybatis的連接配置文件中引入: <mappers> <mapper resource="sql配置文件路徑" /> </mappers>查看全部
-
1、<mapper namespace="">//namespace屬性必須存在不可省略。 如果namespace名不同,則<select id="">的id可以一樣,調用的時候,namespace名.id名;若namespace名相同,則id不能一樣。 2、<mapper namespace=""><resultMap id=""> //同上... 但是注意:resultMap——id可以與select——id一樣(即使namespace相同),只要它們的id在各自領域(resultMap或select)范圍內唯一即可。 3、<resultMap>的子標簽中,如果是主鍵欄,用<id>子標簽,如果是普通欄,用<result>子標簽。 4、<select resultMap="resultMap中的id名">。 5、<mappers>中子標簽<mapper>的resource屬性也是從src根目錄開始算起,“.”改為“/”;如果有多個<mapper>則需添加多個。查看全部
-
Ps1:配置文件的詳細路徑:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml Ps2:小技巧:粘貼類名,再粘貼對象名,改大小寫即可。 Ps3:順序(從底層往高層):實體類-->Dao-->Service-->Servlet-->頁面。 Ps4:數據庫服務啟動即可,無需登錄數據庫操作軟件。 Ps5:Dao層一般與表(實體類)相關,命名一般在實體類名+“Dao”即可;Service層命名一般與Servlet命名對應。查看全部
-
Model: 數據表對應的模型; DAO:每個表對應一個DAO,對該表的一些操作。 Service:或Logic層,跟Servlet對應,一些相關的業務功能。 Servlet: 設置編碼/過濾器;接受頁面的值;向頁面傳值;業務需要調用service;跳轉。查看全部
-
@關鍵代碼(技巧): 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。查看全部
舉報
0/150
提交
取消