mybatis学習-入門(1)-単独使用mybatis
5591 ワード
mybatisの役割はさておきます.
まず例を書いてmybatisの使い方を説明します.
いくつかの依存関係のあるカバンをロードします.mybatisの比較的簡単なのはMybatis-3.1.1.jarだけです.もちろんこのカバンに依存するjarもあります.
mybatisを正常に起動させて機能させるには、まずSql Session FactoryBuiderが必要です.このような再起動方法はSql Session Factoryクラスを作成します.
--> Sql Session Factory類を通して.openSession()方法でSql Sessionを作成します.
-->Sql Sessionは.get Mapper(Classarg 0)を通じて対応するmapperクラスを作成できます.
-->このmapper類があって、後続の操作は全部mapper類で完成します.
一段落しました.ここでいくつかの疑問があります.
a. Sql Session FactoryBuiderはSql Session Factoryを作成する時、いくつかの情報を知る必要があります.例えばデータソース、mapper
(1)実体類
データベースと同じ構造でもいいし、違ってもいいです.例えば私はuser、role、user_があります.roleの3つのテーブルのうち、userエンティティクラスは、完全にuserテーブルに対応しても良いし、List属性を追加して、このuserオブジェクトのroleリストを表してもいいし、login gauを追加してもいいです.time属性は登録時間などを記録します.
この例では、userクラスはuserテーブルと完全に一致しています.
本体オブジェクトがあります.本体オブジェクトからデータベースまでの操作に関する方法が必要です.これはmapper類を使用する必要があります.
maybottisでは、インターフェース+mapperファイルを使って処理します.
まず、daoのインターフェースを定義します.
いくつかのポイントがあります.
a.
b insertまたはudate文の入力パラメータはあります.
ファイル名にデフォルトはありません.中身は大体以下の通りです.
はい、この例はスプリングフレームに依存しないので、自分でSql Session FactoryやSql Sessionなどを作成します.junnitを使ってテストクラスを作ります.
例のソースコードは以下の通りです
http://download.csdn.net/detail/u013269938/7247525
まず例を書いてmybatisの使い方を説明します.
いくつかの依存関係のあるカバンをロードします.mybatisの比較的簡単なのはMybatis-3.1.1.jarだけです.もちろんこのカバンに依存するjarもあります.
mybatisを正常に起動させて機能させるには、まずSql Session FactoryBuiderが必要です.このような再起動方法はSql Session Factoryクラスを作成します.
--> Sql Session Factory類を通して.openSession()方法でSql Sessionを作成します.
-->Sql Sessionは.get Mapper(Classarg 0)を通じて対応するmapperクラスを作成できます.
-->このmapper類があって、後続の操作は全部mapper類で完成します.
一段落しました.ここでいくつかの疑問があります.
a. Sql Session FactoryBuiderはSql Session Factoryを作成する時、いくつかの情報を知る必要があります.例えばデータソース、mapper
(1)実体類
データベースと同じ構造でもいいし、違ってもいいです.例えば私はuser、role、user_があります.roleの3つのテーブルのうち、userエンティティクラスは、完全にuserテーブルに対応しても良いし、List属性を追加して、このuserオブジェクトのroleリストを表してもいいし、login gauを追加してもいいです.time属性は登録時間などを記録します.
この例では、userクラスはuserテーブルと完全に一致しています.
package example1.model;
public class baiuser {
private Long ID;
private String USERNAME;
private String PASSWORD;
private Integer STATUS;
private String DESCN;
get set ......
(2)mapper本体オブジェクトがあります.本体オブジェクトからデータベースまでの操作に関する方法が必要です.これはmapper類を使用する必要があります.
maybottisでは、インターフェース+mapperファイルを使って処理します.
まず、daoのインターフェースを定義します.
package example1.dao;
import example1.model.baiuser;
public interface baiuserMapper {
int delete(Long ID);
int insert(baiuser record);
baiuser select(Long ID);
int update(baiuser record);
baiuser selectByUsername(String username);
}
そしてmapperファイルを作成します.
ID, USERNAME, PASSWORD, STATUS, DESCN
,
このようにmybatisは配置によって、自動的にこのインターフェースの実現クラスを完成します.いくつかのポイントがあります.
a.
namespaceはインターフェースに対応します.b insertまたはudate文の入力パラメータはあります.
(3)mybatis-config.xmlファイル名にデフォルトはありません.中身は大体以下の通りです.
別名構成、データソース、mapper配置があります.私たちは常にmybatisとspringを統合して使用していますが、mapper、データソースはspringの配置ファイルに配置できます.具体的にはmybatisのSql Session Factoryはspring容器から作成されますので、必要なmapperとデータソースはそのパラメータとなります.はい、この例はスプリングフレームに依存しないので、自分でSql Session FactoryやSql Sessionなどを作成します.junnitを使ってテストクラスを作ります.
package example1.test;
import org.junit.Test;
import org.junit.Before;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import example1.dao.baiuserMapper;
import example1.model.baiuser;
public class baiuserTest {
private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder;
private static SqlSessionFactory sqlSessionFactory;
@Before
public void before(){
String resource = "example1/conf/mybatis-config.xml";
Reader reader;
try {
reader = Resources.getResourceAsReader(resource);
sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test(){
SqlSession session = sqlSessionFactory.openSession();
baiuserMapper userDao = session.getMapper(baiuserMapper.class);
baiuser user = userDao.select(1L);
System.out.println("user name is : "+user.getUSERNAME()+" password is : "+user.getPASSWORD());
}
}
例のソースコードは以下の通りです
http://download.csdn.net/detail/u013269938/7247525