MyBatis学習まとめ

20529 ワード

一、MyBatis紹介
  • MyBatisは優れた耐久層のフレームワークであり、jdbcのオペレーティングデータベースのプロセスをカプセル化し、開発者はSQL自体に注目する必要があります。例えば、登録駆動、connectionの作成、statementの作成、手動設定パラメータ、結果集検索などjdbcの煩雑なプロセスコードを処理するのに精力を使う必要がありません。
  • Mybatisは、xmlまたは注釈によって実行される様々なstatement(statement、prepardStation、Callable Statement)を構成し、javaオブジェクトとstatementのsqlをマッピングして最終的に実行されるsql文を生成し、最後にmybatisフレームでsqlを保持し、結果をjavaオブジェクトにマッピングして247956567に戻ります。
    二、MyBatisフレーム構築
    (一)、jarパッケージをロードする(mybatis-3.2.3.jarとデータベースドライババッグ)
    (二)インターフェースの作成
    public interface IAreaDao {
         
        //         ,   @Param    
        String getName(@Param("id")String id);
    }
    
    (三)、Testというクラスを作成する
    public class Test {
         
        public static void main(String[] args) {
         
            //       
            //        
            try{
         
                InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
                //SqlSession           
                SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                SqlSession sqlSession = sqlSessionFactory.openSession(true);//true,       ;false,     commit      
                //sqlSession          ,mybatis    
                IAreaDao areaDao = sqlSession.getMapper(com.jd.area.IAreaDao.class);
    
                IPersonDao personDao = sqlSession.getMapper(com.jd.person.IPersonDao.class);
                String name = areaDao.getName("000f9a36-cdc1-4784-9ffc-fe1d8a4a0d15");
                System.out.println(name);
                /*
                //         true,      
                sqlSession.commit();
                */
            }catch (Exception e){
         
                e.printStackTrace();
            }
        }
    }
    
    
    (四)グローバルプロファイルの配置(mybatis-config.xml)
    
    
    <configuration>
    
        
    
        
        <settings>
            
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        settings>
    
        <typeAliases>
            
            <typeAlias type="java.lang.String" alias="kaa">typeAlias>
        typeAliases>
        
        <environments default="dev">
            
            <environment id="dev">
                <transactionManager type="JDBC">transactionManager>
                <dataSource type="POOLED">
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
                    
                dataSource>
            environment>
    
            <environment id="test">
                <transactionManager type="JDBC">transactionManager>
                <dataSource type="POOLED">
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
                dataSource>
            environment>
        environments>
        
        <mappers>
            
            <mapper resource="area.xml">mapper>
            <mapper resource="person.xml">mapper>
        mappers>
    
    configuration>
    
    (五)、配置マッピングファイル
    
    
    <mapper namespace="com.jd.area.IAreaDao">
        <select id="getName" resultType="java.lang.String">
            
            select name from area where id = #{id}
        select>
    mapper>