statement的增删改查和动态的增删改查
一 statement的crud:
mybatis約定:
輸入參數parameterType和輸出參數resultType,在形式上都只能有一個
如果輸入參數:是簡單類型(8個基本類型+String),則可以使用任何占位符,#{xxx}
如果是對象類型,則只能寫屬性名#{屬性名}
輸出參數:如果返回值類型是一個對象(例如:user),則無論返回一個還是返回多個
resultType的寫法都是一樣,例如:org.user
注意事項:
1.如果使用的事物方式為jdbc,則需要手動提交,提交方式為session.commit()
2.所有的標簽都必須有sql語句,但是sql參數值可選
有參數時session.delete(statement, z);
沒參數時session.delete(statement);
二 mapper動態代理方式的crud(MyBatis接口開發):
原則:約定優于配置
硬編碼:abc.java
? ? ? ? ? ? ? ? ?Configuration conf = new Configuration();
? ? ? ? ? ? ? ? ? con.setName("myProject");
配置方式:abc.xml? ?
? ? ? ? ? ? ? ? ? ? ? ?<name>myProject</name>
約定:默認值就是myProject
具體實現的步驟:
1.基礎環境:mybatis.jar/ojdbc.jar,conf.cml,mapper.xml
2.不同之處
約定的目標:省略掉statement,根據約定,直接找到要執行的sql語句
a.接口
建一個接口,接口中的方法必須遵循以下約定:
1.方法名與mapper.xml文件中標簽的id值相同
2.方法的輸入參數和mapper.xml文件中標簽的parameter Type類型一致(無論結果返回一個還是多個,resultType中只寫一個)
3.方法的返回值和mapper.xml文件中標簽的resultType類型一致
??
除了以上約定,要實現接口中的方法 和Mapper.xml中SQL標簽一一對應,還需要以下一點:
1. namespace的值,就是接口的全類名(接口 - mapper.xml 一一對應)
匹配的過程(約定的過程):
1. 根據 接口名 找到mapper.xml文件(根據的是namespace=接口全類名)
2. 根據接口的方法名 找到mapper.xml文件中的SQL標簽(方法名=SQL標簽id值)
以上兩點可以保證:當我們調用接口中的方法時,程序能自動定位到某一個Mapper.xml文件中的sql標簽
習慣:SQL映射文件(mapper.xml)和接口放在同一個包中(注意修改conf中映射文件的路徑)
以上,可以通過接口的方法定位到SQL語句
執行:
usemapper x = session.getMapper(usemapper.class);//獲取接口
?? ??? ?user result = x.queryUserByUsename(z);//執行接口里面的方法
?
總結
以上是生活随笔為你收集整理的statement的增删改查和动态的增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【剑指offer】面试题19:正则表达式
- 下一篇: get和post的联系与区别