MyBatisのは何ですか
iBatis3.xからApacheのオープンソース・プロジェクトからMyBatisのiBatisのは、正式にMyBatisのに社名を変更しました。それは優秀な永続化フレームワークです。
なぜMyBatisの
データベースと対話するために、通常の練習は、Javaコードで書き込みSQL文にある、JavaコードのSQL文、および一緒に結合助長するポストメンテナンスの修正ではなく、MyBatisの後半原因を促進するために、私たちの別々のSQL文とJavaコードを助けることができます需要の変化とSQLステートメントを変更します。(連絡先役割プロパティファイル)
MyBatisの使い方
- JARパッケージの導入
- データベーステーブルに対応してインターフェース、モジュラー開発を作成します
public interface IUserInfoDao {
//这里我们定义一个抽象方法,通过id字段来获取user_name字段
String getUserName(String id);
}
- 次に、構成XMLファイルを作成します
- モジュールxmlファイルを設定する最初のUSER_INFO、我々は最初の青色のライトに次のコードをコードをコピーする必要があります
<?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="live.sunhao.userinfo.dao.IUserInfoDao">
<!-- 这是一个select标签 对应着select语句 这里的id对应着接口中的方法名,resultType是返回值类型 #{id}对应着方法中传入的参数值-->
<select id="getUserName" resultType="java.lang.String">
select user_name from user_info where id=#{id}
</select>
</mapper>
- 再度、プロジェクト全体のxmlファイルの構成は、上記のように、我々は最初の青色のライト以下のコードにコードをコピーする必要があり
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="test"><!-- 这里default决定默认使用哪个环境,如下有两种环境 一个用来测试(test) 一个是正式开发的环境(dev) -->
<environment id="test">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:keeper" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- 这里将每个模块的xml文件 配置到整个项目的xml文件中,我这里暂时就一个模块 -->
<mappers>
<mapper resource="user_info.xml"/>
</mappers>
</configuration>
- テストクラスを書きます
public class Test {
public static void main(String[] args) {
try {
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//SqlSession对象代指一次数据库连接
SqlSession sqlSession = sqlSessionFactory.openSession();
IUserInfoDao userInfoDao = sqlSession.getMapper(IUserInfoDao.class);
System.out.println(userInfoDao.getClass().getName());
String userName = userInfoDao.getUserName("3ddcf637-15a8-49d9-a378-b3fa2f2f9c65");
System.out.println(userName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
最後に、コンソール出力を見て:
私たちはここにJDKのダイナミックプロキシを見ることができ、userInfoDaoエージェントクラスオブジェクトは、自動的に36 idでUSER_NAMEを見つけることができるように、私たちが作成したインタフェースを実装しています