-
sqlsession調用 方法來執行 sql語句 只是輸入了select標簽的id名字,但是并沒有輸入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對應的是后臺數據庫除了主鍵以外的其他字段。查看全部
-
配置文件的詳細路徑:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml //通過配置文件獲取數據庫連接信息 Reader reader = Resources.getResourceAsReader("config/Configuration.xml"); //通過配置信息構建一個SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessioFactoryBuilder.build(reader); //通過sqlSessionFactory打開一個數據庫會話 SqlSession sqlSession = sqlSeesionFactory.openSession();查看全部
-
在Dao層中封裝了與數據庫有關的操作,在service層調用Dao層來處理業務邏輯,在servlet中調用service層中的對象來得到處理的結果,并且返回給頁面 * servlet的幾個功能<br> * 1.接受頁面的值<br> * 2.向頁面傳值<br> * 3.(根據業務需要,調用service)<br> * 4.跳轉頁面查看全部
-
Ctrl Shift y 大寫換小寫 Ctrl Shift j 添加注釋查看全部
-
JDBC的寫法: //加載驅動,連數據庫 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/message","root","123123"); //操作數據庫并聲明 String sql = "select ID ,COMMAND,DESCRIPTION,CONTENT from MESSAGE"; PreparedStatement statement = conn.prepareStatement(sql.toString()); //查詢數據庫 ResultSet rs = statement.executeQuery(); //查詢結果放在一個集合中 List<Message> messageList = new ArrayList<Message>(); while(rs.next()) { Message message = new Message(); messageList.add(message); message.setId(rs.getString("ID")); message.setCommand(rs.getString("COMMAND")); message.setDescription(rs.getString("DESCRIPTION")); message.setContent(rs.getString("CONTENT")); } //向頁面傳值 req.setAttribute("messageList", messageList); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { } //跳轉 req.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward(req, resp); }查看全部
-
把*號換成列名可以提高查詢效率查看全部
-
標簽查看全部
-
一對多關系的配置 //CommandService.java /** * 根據指令查詢消息列表 */ public String queryByCommand(String command){ CommandDao commandDao=new CommandDao(); List<Command> commandList=new ArrayList<Command>(); if(Iconst.HELP_COMMAND.equals(command)){ StringBuffer result=new StringBuffer(); commandList=commandDao.queryCommandList(null, null); for (int i = 0; i < commandList.size(); i++) { if(1!=0){ result.append("<br/>"); } result.append("回復["+ commandList.get(i).getName() + "]可以查看"+commandList.get(i).getDescription()); } return result.toString(); } commandList=commandDao.queryCommandList(command, null); if(commandList.size()>0){ /** * 隨機獲取一條內容 */ List<CommandContent> contentList=commandList.get(0).getContentList(); int i=new Random().nextInt(contentList.size()); return contentList.get(i).getContent(); } return Iconst.NO_MATCHING_CONTENT; }查看全部
-
在子表類的Sql配置文檔的<resultMap>標簽下需要添加一個<association>標簽來指明當前子表這個類里包含著一個主表類類型的成員變量. 其中<assoication>標簽有property、column(可無)、javaType屬性、resultMap屬性. property屬性指明在子表類中的主表類類型的成員變量名. column屬性指明數據庫中的字段. javaType屬性指明主表類的類名. resutlMap屬性指明主表類的<resultMap>標簽的id屬性的屬性值. 在<association>標簽下有<id>與<result>子標簽,他們都有property與column屬性.來表明主表類的所有成員變量.或者直接用resultMap屬性直接替代,就可以不用寫子標簽. (在子表的Sql配置文件) <resultMap type="com.imooc.Content" id="Content"> <id column="ID" jdbcType="Integer" property="id"/> <result column="Content" jdbcType="VARCHAR" property="content"/> <result column="CommandId" jdbcType="Integer" property="commandId"/> <association property="command" javaType="com.imooc.Command"> <id column="CID" property="id"/> <result column="name" property="name"/> <result column="description" property="description" /> </association> </resultMap> 等于: <resultMap type="" id=""> <id column="" jdbcType="" property=""/> <result column="" jdbcType="" property=""/> <association property="" resultMap="" /> </resultMap>查看全部
-
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>查看全部
-
應用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,則比該級別高的信息都會輸出查看全部
-
Mapping.xml常用標簽查看全部
-
<!-- 配置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查看全部
-
OGNL表達式查看全部
舉報
0/150
提交
取消