XMLからSQLSessionFactoryを構築します
XMLファイルからSQLSessionFactoryのインスタンスを構築するのは非常に簡単です。ここでは、ClassPathの下のリソースファイルを使用して構成することをお勧めします。
文字列リソース= "org/mybatis/example/configuration.xml"; Reader Reader = resources.getResourceasReader(リソース); sqlmapper = new sqlsessionfactorybuilder()。build(reader);
XML構成ファイルには、データベース接続インスタンスを取得するためのデータソースや、トランザクションの範囲と制御を決定するトランザクションマネージャーなど、MyBatisシステムのコア設定が含まれています。例として:
<?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-clufig.dtd" type = "jdbc"/> <dataSource Type = "Pooled"> <プロパティ名= "driver" value = "$ {driver}"/> <property name = "url" value = "$ {url}"/> <プロパティ名= "username" value = "$ {username}"/> <property name = "$" $ "$" "$" $ "$"/</</</</datas> </環境> <マッパーズ> <マッパーリソース= "org/mybatis/example/blogmapper.xml"/> </mappers> </configuration>もちろん、XML構成ファイルには多くの構成可能なものがあり、上記の例は最も重要な部分を示しています。
sqlsessionFactoryからsqlsessionを取得します
同じ啓示に基づいて、SQLSessionFactoryオブジェクトを取得する方法が既にわかったので、SQLSessionのインスタンスを取得できます。 SQLSessionオブジェクトには、背景としてデータベースを使用してSQL操作を実行するためのすべての方法が完全に含まれています。 SQLSessionインスタンスを使用して、マッピングされたSQLステートメントを直接実行できます。例えば:
sqlsession session = sqlmapper.opensession(); try {blog blog =(blog)session.selectone( "org.mybatis.example.blogmapper.selectblog"、101); }最後に{session.close(); }今ではより簡単な方法があります。パラメーターとSQLステートメントを合理的に記述するインターフェイスを使用して、値(blogmapper.classなど)を返すようにするため、文字列リテラルや変換エラーが発生しやすいコードがよりシンプルで安全になります。例えば:
sqlsession session = sqlsessionfactory.opensession(); try {blogmapper mapper = session.getMapper(blogmapper.class);ブログblog = mapper.selectblog(101); }最後に{session.close(); }マッピングされたSQLステートメントを調べます
上記の例では、SQLSessionオブジェクトの呼び出しを満たす必要がある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" id = "selectblog" parametertype = "int" resultType = "blog"> select * from blog where id =#{id} </select> </mapper>名前空間「com.mybatis.example.blogmapper」では、「selectblog」という名前のマッピングステートメントを定義します。これにより、完全に認定された名前「org.mybatis.example.blogmapper.selectblog」を使用してマッピングステートメントを呼び出すことができます。
ブログblog =(blog)session.selectone( "org.mybatis.example.blogmapper.selectblog"、101);
しかし、次の呼び出しにはより多くの利点があります。
マッピングインターフェイスは、XMLファイルをマッピングするためのコマンドスペースに対応し、インターフェイスメソッドはマッピングXMLファイルで定義されているSQLマップのIDに対応します。 ???????????????????
blogmapper mapper = session.getMapper(blogmapper.class);ブログblog = mapper.selectblog(101);
まず第一に、それはテキストに基づいていないため、より安全です。第二に、IDEにコード完了関数がある場合、それを使用してマッピングされたSQLステートメントを操作できます。第三に、タイプ変換をキャストする必要はありません。同時に、BlogMapperインターフェイスをシンプルに保つことができ、戻り値のタイプは非常に安全です(パラメータータイプも非常に安全です)。