mybatis單獨使用

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}。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章