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