一、MyBatis入門案例:
①:引入jar包
②:創建實體類 Dept,并進行封裝
③ 在Src下創建大配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias type="cn.happy.entity.Dept" alias="Dept"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" /> <property name="username" value="wj" /> <property name="password" value="9090" /> </dataSource> </environment> </environments> <!--映射文件:描述某個實體和數據庫表的對應關系 --> <mappers> <mapper resource="cn/happy/entity/Dept.xml" /> <mapper resource="cn/happy/entity/Mapper.xml" /> </mappers> </configuration>
注:其中的幾個常用元素作用如下:
environments元素:用于配置多個數據環境,可映射多個數據庫信息
在MyBatis中有兩種事務管理器類型(即type="JDBC/MANAGED")
JDBC:直接使用了JDBC控制事務
MANAGED:MyBatis自己不負責控制事務,它會讓容器來管理事務的整個生命周期
數據源類型有三種:UNPOOLED、POOLED、JNDI
①UNPOOLED:這個數據源的實現是每次被請求時簡單打開和關閉連接。
②POOLED:采用連接池以避免創建新的連接實例時必要的初始連接和認證時間
③JNDI:為了使用如Spring或應用服務器這類的容器
mappers元素:包含所有mapper的列表。告訴MyBatis到哪里去找SQL語句。主要是定義Sql映射文件
④:創建小配置 Dept.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.happy.entity.Dept"> <!-- 查詢 --> <select id="selectDept" resultType="Dept"> select * from Dept </select>
注:id:唯一標識:通過此id,程序可唯一鎖定一條SQL 、parameterType:參數類型、resultType:結果類型
⑤測試類:進行查詢所有部門
public class Test1 { SqlSession session ; @Before public void initData() throws Exception{ SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); Reader reader=new FileReader("src/mybatis-config.xml"); SqlSessionFactory factory=builder.build(reader); session = factory.openSession(); } /* * 查詢 */ @Test public void selectDeptTest() throws Exception{ List<Dept> selectList = session.selectList("selectDept"); for (Dept dept : selectList) { System.out.println(dept.getDeptName()); } }
二、同理 增、刪、改
如圖所示:
因為在大配置中有別名的使用。參數類型設置成Dept即可
三、使用selectOne()方法【帶條件查詢】
通過編號來查詢部門信息
四、session.getMapper()方法的實現
獲取到接口的具體實現類
注:使用接口編程需要注意:namespace需要定義為接口的全限定名。映射語句的id配置需要與接口中的方法名相同
文章列表