摘要:回顧上節課我們完成了的環境搭建核心配置文件映射文件的執行過程如何執行定制的語句我們測試的是死的數據那么下面我們使用容器傳遞動態的數據添加操作傳遞數據專題通過傳遞數據映射文件代碼傳遞參數數據的類型或者提供額內置類型映射中的獲取對應的值
回顧: 上節課我們完成了MyBatis的環境搭建
核心配置文件
映射文件
API的執行過程
如何執行定制的SQL語句
我們測試的是"死"的數據,那么下面我們使用容器傳遞動態的數據
添加操作傳遞數據專題 1.通過Map傳遞數據映射文件代碼
INSERT INTO skill (skill_name,num) VALUES (#{shxt},#{number})
parameterType : 傳遞參數數據的類型 java.util.Map或者MyBatis提供額內置類型映射map
#{map中的Key}獲取對應的值,并且進行了預處理
Java測試代碼
public class 動態數據之通過Map傳遞數據 { public static void main( String[] args ) { SqlSession sqlSession = null; try { //1.讀取核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //2.創建SqlSession工廠(SqlSessionFactory) SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.獲取SqlSession //****** SqlSession完成所有的持久化操作CRUD sqlSession = sqlSessionFactory.openSession(); //4.關鍵步驟: 定位執行SQL語句 //****如何定位 (namespace+"."+id) Mapmap = new HashMap (); map.put("shxt", "CSS"); map.put("number", 66); int row = sqlSession.insert("shxt.cy42.mss.add02",map); //5.針對于CUD操作需要手動提交事務 sqlSession.commit(); System.out.println("影響的行數:"+row); } catch (IOException ex) { ex.printStackTrace(); }finally { //6.關閉資源 if(sqlSession!=null){ sqlSession.close(); } } } }
圖解說明
自定義Java類
public class Skill { private Integer skillId; private String skillName; private Integer skillNumber; //省略getter和setter方法 }
映射文件代碼
INSERT INTO skill (skill_name,num) VALUES (#{skillName},#{skillNumber})
parameterType:如果不是Java內容類型,可以設置自定義類型的全路徑,后面我們也可以
設置自定義別名
#{Java類中屬性}獲取對應的值
Java代碼測試
public class 動態數據之通過Skill持久化類傳遞數據 { public static void main( String[] args ) { SqlSession sqlSession = null; try { //1.讀取核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //2.創建SqlSession工廠(SqlSessionFactory) SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.獲取SqlSession //****** SqlSession完成所有的持久化操作CRUD sqlSession = sqlSessionFactory.openSession(); //4.關鍵步驟: 定位執行SQL語句 //****如何定位 (namespace+"."+id) Skill s = new Skill(); s.setSkillName("jquery"); s.setSkillNumber(99); int row = sqlSession.insert("shxt.cy42.mss.add03",s);//傳遞數據喲 //5.針對于CUD操作需要手動提交事務 sqlSession.commit(); System.out.println("影響的行數:"+row); } catch (IOException ex) { ex.printStackTrace(); }finally { //6.關閉資源 if(sqlSession!=null){ sqlSession.close(); } } } }
圖解說明
自定義Java類
Teacher.java
public class Teacher { private Integer id; private String name; //省略getter和setter方法 }
Skill.java
public class Skill { private Integer skillId; private String skillName; private Integer skillNumber; //關聯對象 private Teacher teacher; }
映射文件代碼
INSERT INTO skill (skill_name,num,fk_teacher_id) VALUES (#{skillName},#{skillNumber},#{teacher.id})
#{teacher.id}關聯對象使用"."運算符
Java測試代碼
public class 動態數據之保存技能同時需要保存老師ID { public static void main( String[] args ) { SqlSession sqlSession = null; try { //1.讀取核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //2.創建SqlSession工廠(SqlSessionFactory) 相當于 Connection SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.獲取SqlSession 相當于 執行SQL語句對象PreparedStament預處理對象 //****** SqlSession完成所有的持久化操作CRUD sqlSession = sqlSessionFactory.openSession(); //4.關鍵步驟: 定位執行SQL語句 //****如何定位 (namespace+"."+id) Skill s = new Skill(); s.setSkillName("MyBatis"); s.setSkillNumber(100); //假設建立一個老師 Teacher t = new Teacher(); t.setId(-999); t.setName("胖先森"); //建立聯系 s.setTeacher(t); int row = sqlSession.insert("shxt.cy42.mss.add04",s); //5.針對于CUD操作需要手動提交事務 sqlSession.commit(); System.out.println("影響的行數:"+row); } catch (IOException ex) { ex.printStackTrace(); }finally { //6.關閉資源 if(sqlSession!=null){ sqlSession.close(); } } } }
圖解說明
映射文件
INSERT INTO skill (skill_name,num) VALUES (#{skillName},#{skillNumber})
keyProperty 將自增長的主鍵值賦值給skillId屬性
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70316.html
摘要:平凡之路前端發展了十幾年,現在幾乎到達頂峰的速度了,近兩年推出的框架層出不窮,早已不是一統江湖了。模板和數據分離也好,狀態和表現分離也好,我越來越體會到分是為了合這條平凡之路,還會頻繁的發展和融合下去。 一直想總結下自己摸打滾爬的前端經歷,3年,從一個極討厭前端的人,變成一個吃前端飯碗的人。沒有人帶過我,跌跌撞撞的緩慢前進,但我很喜歡分享,喜歡一起進步,這會是我以后一直樂意做的事情。 ...
摘要:附轉義字符第二種方法因為這個是格式的,所以不允許出現類似這樣的字符,但是都可以使用符號進行說明,將此類符號不進行解析你的可以寫成這個文件示例代碼 動態SQL語句是核心之一,這里我們通過幾個示例來演示 一 多條件查詢專題 1.通過恒等式完成動態SQL語句 涉及到if標簽 ...
摘要:并且如果使用那么必須要指明值使用簡單的數據類型不好使使用接口代理模式的注解也可以 屬于MyBatis的核心之一,這里面的坑比較多,大家多多看看吧 一 模糊查詢的三種方式介紹 我會使用resultMap處理結果集數據 1.死數據的模糊查詢 映射文件 SELECT * FROM...
摘要:文件知識點修飾類不能被基礎修飾方法不能被重寫修改變量常量不允許進行實例化靜態代碼塊只是加載一次加載核心配置文件失敗圖解說明加載屬性文件新建的根目錄下修改核心配置文件加載屬性文件配置數據庫的環境事務管理器保證數據的完整性 MyBatisUtils.java 文件 /** * 知識點: * final 修飾類 : 不能被基礎 * 修飾方法 : 不能被重寫 * 修改變量 : 常量 ...
閱讀 1417·2021-11-09 09:45
閱讀 1785·2021-11-04 16:09
閱讀 1449·2021-10-14 09:43
閱讀 1814·2021-09-22 15:24
閱讀 1589·2021-09-07 10:06
閱讀 1597·2019-08-30 14:15
閱讀 980·2019-08-30 12:56
閱讀 1563·2019-08-29 17:22