resultMap:適合使用返回值是自定義實體類的情況
resultType:適合使用返回值得數據類型是非自定義的,即jdk的提供的類型
resultMap :
映射實體類的數據類型
resultMap的唯一標識
column: 庫表的字段名
property: 實體類裏的屬性名
mybatis的單獨使用簡單示例:
步驟1:
新建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="com.dao.UserMapper"> <select id="getUserOne" parameterType="String" resultType="Integer"> select code2 from a where code1=#{code1,javaType=String,jdbcType=INTEGER,typeHandler=com.typeHandler.TestTypeHandler} limit 1 </select> </mapper>
此處注意兩點:
一:<mapper namespace="com.dao.UserMapper"> 的namespace須與相對應的dao類名一致,比如dao類的全路徑爲:
com.dao.UserMapper,則此處namespace="com.dao.UserMapper". 二:方法的id,parameterType,result等參數須與dao類中的某一個方法相一致。 步驟2: dao類。 示例:
public interface UserMapper{ Integer getUserOne(@Param("code1") String string); } 此處的@Param("code1")爲註解方法,定義傳入此處的參數的名稱爲code1,以便後續操作。 步驟3: 配置文件mybatis-config.xml。 示例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="cacheEnabled" value="false"/> <!--lazyLoadingEnabled: lazy loading開關,默認爲true。 全局性設置懶加載。如果設爲‘false’,則所有相關聯的都會被初始化加載--> <setting name="lazyLoadingEnabled" value="true"/> <!--aggressiveLazyLoading 默認true:當訪問任何一個屬性都會加載所有的其他lazy load屬性, 即使你根本沒有調用哪個lazy load屬性,說白了就是aggressiveLazyLoading=true,則lazy load等於沒用, 所以要使用lazy load還是將其設爲false --> <setting name="aggressiveLazyLoading" value="false"/> </settings> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="username" value="root"/> <property name="password" value="123456"/> <property name="url" value="jdbc:mysql://localhost:33333/local_law_hz"/> <property name="driver" value="com.mysql.jdbc.Driver"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mybatis/mapper/UserMapper.xml"/> </mappers> </configuration> 此處注意<mappers>的配置。 步驟4: 測試類:
public class MybatisTest { public static void main(String [] args) throws IOException { // 使用類加載器,加載mybatis的配置文件 // InputStream inputStream=MybatisTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml"); InputStream inputStream= Resources.getResourceAsStream("mybatis-config.xml"); // 構件sqlSession工廠 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sqlSessionFactory.openSession(); // System.out.println(sqlSession); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); Integer result=userMapper.getUserOne("1"); System.out.println(result); } } 此處注意兩點: 1:加載mybatis的配置文件,構件sqlSession:
InputStream inputStream= Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession(); 2.利用xml文件,dao類,mybatis-config.xml配置文件(mappers中加載xml文件)產生mapper類:
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
Integer result=userMapper.getUserOne("1"); 輸出結果: 4 以上,未mybatis的簡單應用。
補充:xml中如下:
select code2 from a where code1=#{code1,javaType=String,jdbcType=INTEGER,typeHandler=com.typeHandler.TestTypeHandler} 是學習typeHandler時使用的,可簡單看做
select code2 from a where code1=#{code1}。