JDBCとmybatisの比較とソリューション

1.データベースリンクの作成と解放を頻繁に行うと、システムリソースが浪費され、システムパフォーマンスに影響します。この問題は、データベースリンクプールを使用すると解決できます。

 解決策:SqlMapConfig.xmlでデータリンクプールを構成し、接続プールを使用してデータベースリンクを管理します。 dataSource type = "POOLED"

<environments default="mysql">   
<!-- 配置 mysql 的环境 -->   
    <environment id="mysql">    
        <!-- 配置事务的类型 -->    
        <transactionManager type="JDBC"></transactionManager>    
        <!-- 配置连接数据库的信息:用的是数据源(连接池) -->    
        <dataSource type="POOLED">    
             <property name="driver" value="com.mysql.jdbc.Driver"/>   
             <property name="url" value="jdbc:mysql://localhost:3306/ee50"/>    
             <property name="username" value="root"/>    
             <property name="password" value="1234"/>   
         </dataSource>   
    </environment>  
</environments>   

2.コードに記述されたSQLステートメントはコードの保守を困難にし、SQLの実際のアプリケーションは大幅に変更される可能性があり、SQLの変更にはJavaコードの変更が必要になります。

解決策:SQLステートメントの構成xxxDao.xmlファイルのJavaコードから分離ます。

3. sqlステートメントのwhere条件が必ずしも必要ではなく、多かれ少なかれ存在する可能性があり、プレースホルダーがパラメーターに対応する必要があるため、パラメーターをsqlステートメントに渡すの面倒です。

解決策:Mybatisは自動的にJavaオブジェクトをSQLステートメントにマップし、ステートメントのparameterTypeを介して入力パラメーターのタイプを定義ます

4.結果セットを解析するのは面倒です。SQLの変更は解析コードの変更につながるため、解析する前にトラバースする必要があります。解析のためにデータベースレコードをpojoオブジェクトにカプセル化する方が便利です。解決策:MybatisはSQL実行結果をJavaオブジェクトに自動的にマップし、ステートメントのresultTypeを介して出力結果のタイプを定義ます。 

 

おすすめ

転載: blog.csdn.net/weixin_43725517/article/details/108859441