1.#和$的區別 #至關於給數據加上引號,$不會對數據作處理java
1.例如 #userId# userId 值要是 111 則 SQL中就會變成 "111" 而 $userId$ 將仍是 111sql
2.#能在很大程度上防止SQL注入數據庫
3.$通常用於傳遞數據庫對象,如表名 編程
通常狀況下,能使用#的不要使用$mybatis
2.myBatis編程步驟app
1.建立SqlSessionFactoryxml
2.經過SqlSessionFactory 建立 SqlSession對象
3.經過SqlSession 執行數據庫操做事務
4.SqlSession.commit()提交事務資源
5.SqlSession.close()關閉會話
3.JDBC有哪些不足,MyBatis是如何解決的
1.數據庫鏈接的建立和銷燬浪費系統資源,mybatis 可配置數據庫鏈接池
2.sql語句寫在代碼中不易維護,使用mybatis能夠將sql配置在Mapper.xml文件中,與java分離
3.像sql中傳遞參數麻煩,由於where條件不必定,可能多也可能少,佔位符須要和參數一一對應 ,myBatis能夠將java對象映射到sql語句中
4.對結果集解析麻煩,解析前須要遍歷,mybatis可將sql執行結果直接映射java的pojo對象