MyBatis案例&增刪改查


一、MyBatis入門案例:

  ①:引入jar包

  ②:創建實體類 Dept,並進行封裝

  ③ 在Src下創建大配置mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 <typeAliases>
 7 <typeAlias type="cn.happy.entity.Dept" alias="Dept"/>
 8 </typeAliases>
 9 
10 <environments default="development">
11         <environment id="development">
12             <transactionManager type="JDBC" />
13             <dataSource type="POOLED">
14                 <property name="driver" value="oracle.jdbc.OracleDriver" />
15                 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
16                 <property name="username" value="wj" />
17                 <property name="password" value="9090" />
18             </dataSource>
19         </environment>
20     </environments>
21     <!--映射文件:描述某個實體和數據庫表的對應關系 -->
22     <mappers>
23         <mapper resource="cn/happy/entity/Dept.xml" />
24         
25         <mapper resource="cn/happy/entity/Mapper.xml" />
26     </mappers> 
28  </configuration>

注:其中的幾個常用元素作用如下:

environments元素:用於配置多個數據環境,可映射多個數據庫信息

在MyBatis中有兩種事務管理器類型(即type="JDBC/MANAGED")

JDBC:直接使用了JDBC控制事務

MANAGED:MyBatis自己不負責控制事務,它會讓容器來管理事務的整個生命周期

數據源類型有三種:UNPOOLED、POOLED、JNDI

  ①UNPOOLED:這個數據源的實現是每次被請求時簡單打開和關閉連接。

  ②POOLED:采用連接池以避免創建新的連接實例時必要的初始連接和認證時間

  ③JNDI:為了使用如Spring或應用服務器這類的容器

  mappers元素:包含所有mapper的列表。告訴MyBatis到哪里去找SQL語句。主要是定義Sql映射文件

  ④:創建小配置 Dept.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 
 6 <mapper namespace="cn.happy.entity.Dept">
 7 
 8 <!-- 查詢 -->
 9 <select id="selectDept" resultType="Dept">
10 select * from Dept
11 </select>

注:id:唯一標識:通過此id,程序可唯一鎖定一條SQL 、parameterType:參數類型、resultType:結果類型

 ⑤測試類:進行查詢所有部門

 1 public class Test1 {
 2     SqlSession session ;
 3     @Before
 4     public void initData() throws Exception{
 5         SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
 6         
 7         Reader reader=new FileReader("src/mybatis-config.xml");
 8         
 9         SqlSessionFactory factory=builder.build(reader);
10         
11         session = factory.openSession();
12     }
13     /*
14      * 查詢
15      */
16     @Test
17     public void selectDeptTest() throws Exception{
18         
19         
20         List<Dept> selectList = session.selectList("selectDept");
21         
22         for (Dept dept : selectList) {
23             System.out.println(dept.getDeptName());
24         }
25     }
26     

二、同理 增、刪、改

如圖所示:

 因為在大配置中有別名的使用。參數類型設置成Dept即可

三、使用selectOne()方法【帶條件查詢】

通過編號來查詢部門信息

四、session.getMapper()方法的實現

獲取到接口的具體實現類

注:使用接口編程需要注意:namespace需要定義為接口的全限定名。映射語句的id配置需要與接口中的方法名相同


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM