1.定義接口類,方法中添加注解查詢
package cn.et.mybatis.lesson02.selectKey; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.SelectKey; public interface KeyAnnoMapper { /* * statement="select max(empNo)+1 as myNo from emp":表示定義的子查詢語句 * before=true:表示在之前執行,booler類型的,所以為true * keyColumn="myNo":表示查詢所返回的類名 * resultType=int.class:表示返回值得類型 * keyProperty="empNo" :表示將該查詢的屬性設置到某個列中,此處設置到empNo中 */ //使用注解 @SelectKey(statement="select max(empNo)+1 as myNo from emp" , before=true,keyColumn="myNo",resultType=int.class,keyProperty="empNo") //使用注解進行數據庫的插入操作 @Insert(value="insert into emp(empNo,ename,sal) values(#{empNo},#{ename},#{sal})") public void selectEmp1(Map map); }
2.定義主mybatis.xml文件,進行接口類的映射
<?xml version="1.0" encoding="UTF-8" ?> <!-- 說明mybatis的根節點 --> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--mybatis的根標簽configuration --> <configuration> <!-- 資源文件的路徑配置 注:cn前面不能用/否則會拋出異常--> <properties resource="cn/et/mybatis/lesson02/jdbc.properties"> </properties> <!-- 配置連接數據庫的環境,(開發環境) --> <environments default="development"> <environment id="development"> <!-- 事務交給jdbc管理,Conection(事務) commit(提交) rollback(回滾) --> <transactionManager type="JDBC"/> <!-- 數據源 用來連接數據庫(包含四要素,driver,url,username,password) --> <dataSource type="POOLED"> <property name="driver" value="${driverClass}"/> <property name="url" value="${url}"/> <property name="username" value="${userAccount}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!-- 包含隱射文件主要用於編寫sql語句 --> <mappers> <!-- 隱射的資源文件 隱射文件主要編寫sql語句 --> <mapper class="cn.et.mybatis.lesson02.selectKey.KeyAnnoMapper"/> </mappers> </configuration>
3.定義測試類,進行測試
package cn.et.mybatis.lesson02.selectKey; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; public class TestMyBatis { //封裝session的返回 public static SqlSession getSession(){ String resource = "/cn/et/mybatis/lesson02/mybatis.xml"; InputStream inputStream =TestMyBatis.class.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //操作數據庫的類 SqlSession SqlSession session=sqlSessionFactory.openSession(); return session; } @Test public void insertEmp(){ SqlSession session = getSession(); KeyAnnoMapper km = session.getMapper(KeyAnnoMapper.class); Map map=new HashMap(); map.put("ename", "lisi"); map.put("sal", 250); km.selectEmp1(map); System.out.println(map.get("empNo")); session.commit(); } }