本論文では、MyBatisのを簡単に紹介し、深く、またその原則の下に取得していない使いやすい、非常にシンプルかつ明白な、関連するコンテンツは、焦点は、使用方法にありますされていない、いくつかの場所で私と一緒に、してくださいクマいくつかのマイナーな問題があるかもしれない、あなたに感謝〜
A、プロフィールMyBatisの
MyBatisのは、このコードをGoogleにApacheのソフトウェア基盤によってオープンソースプロジェクトiBatisの、2010インディアン移行プロジェクトであるApacheのは、とMyBatisのに社名を変更しました。GitHubのに2013年11月で移行。
iBATISは、それがJavaベースの永続化フレームワークである、単語「インターネット」と「逆茂木」の組み合わせから来ています。永続化フレームワークのiBATIS SQLマップがアクセスオブジェクトとデータ(DAOに)含ま
MyBatisのを
MyBatisのはAです固執フレームワーク、カスタムSQL、ストアドプロシージャと高度なマッピングのサポート。それにより符号化効率を向上させる、永続層用MyBatisのプロセスによって開発作業を簡素化することができます。
素人の面では、コードは、MyBatisの関連データベース操作によって簡略化することができ、それは、実際のワークロードで使用する場合、MyBatisの性質の収集に基づいて、機能コードを実現することにあるMyBatisのが自動的に行わ緩和されます。
第二に、準備MyBatisの使用
(1)新規プロジェクト
新しいIDEAを使用Mavenのプロジェクト。(Mavenのは、単にパッケージ管理ツールとして理解することができ、それはMavenの程度使用、はるかにこれよりも実際には、オンラインギャングのブログを参照して、そこにカバーされることはありません)
プロジェクトが確立され、それが自動的に生成されます。pom.xmlMyBatisの関連の設定ファイルをMavenのされたファイル、およびconfigureはまた、そこで行われています。初期には、以下の
付加pom.xmlファイルの内部を依存性(依存)
MyBatisのjarファイルのパッケージを導入し、公式のチュートリアルを参照してくださいMyBatisのは、はじめに
伴うデータベースの操作に、輸入のmysql-コネクタ-javaの
さらに必要に応じて、ログファイルに関連したように、テストユニットの一部または導入(これらは必須ではなく、かつMyBatisのとMySQLコネクタ- Javaの必要がある)
以下に示すように、特定のコードは、選択独自のバージョンに追加の注意を導入して、最新の選択は、一般的にお勧めします。
<dependencies>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
次の、その後の追加の依存関係に注意して導入します
(2)データベースの確立
定めますテストユーザーテーブルを持っているデータベース、ユーザー、ユーザIDとテーブルには、二つのフィールドのユーザー名があります。
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'xiaoming');
INSERT INTO `user` VALUES (2, 'xiaohong');
SET FOREIGN_KEY_CHECKS = 1;
第三に、MyBatisの簡単な使用
上記の準備作業に基づき、コードを書き始めました。
エンティティ・クラスに対応するデータベーステーブルの(1)開設
データベース内のユーザーテーブルの存在、従ってユーザ・クラスを確立し、
package com.example.domain;
import java.io.Serializable;
/**
* @className: User
* @description: 用户类
*/
public class User implements Serializable {
//用户id
private Integer id;
//用户名
private String username;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
'}';
}
}
(2)オブジェクトデータアクセスオブジェクト(DAO)インターフェイスたIUserに対応するユーザエンティティを作成します
ここでは、ユーザーに基づいて、ユーザIDの問い合わせ方法を記述します。
package com.example.dao;
import com.example.domain.User;
/**
* @className: IUserDao
* @description: 用户持久层接口
*/
public interface IUserDao {
/**
* 通过用户名查询用户
* @return
*/
User findByUsername(String username);
}
(3)IUserDaoに対応するマッピングを構成します
MyBatisの使用時には==マッピング(マッパー)==データベースを処理し、そこにSQL文マッパーを記述して実行することで人気があります。
UserMapper.xmlあるべきIUserDao.xmlファイルの作成(注MyBatisのの内側に、通常の書き込みマッパー、 2)は単にクラスの前に、同じであり、ベールを対応するDAOを作成します
<?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">
<!--注意namespace为其随对应的DAO类(接口)的位置,一定不要搞错-->
<mapper namespace="com.example.dao.IUserDao">
<!--根据用户名查询用户-->
<select id="findByUsername" resultType="com.example.domain.User">
select * from user where username=#{username}
</select>
</mapper>
(4)が配置MyBatisの
、主に構成データベースの内容に関連し、機械のアカウントとデータベースのMySQLの注意を新しいコンフィギュレーションファイルのconfig.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="mysql">
<!--配置mysql环境-->
<environment id="mysql">
<!--配置事务类型-->
<transactionManager type="JDBC"/>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置连接数据库的基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--配置映射文件 注意位置-->
<mappers>
<mapper class="com.example.dao.IUserDao"/>
</mappers>
</configuration>
(5)テストケースを作成します
MyBatisのケースが正常に実行できるかどうかをテストするために使用されるテストディレクトリ内のテストクラスMybatisTestを作成します。
package com.example;
import com.example.dao.IUserDao;
import com.example.domain.User;
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 java.io.IOException;
import java.io.InputStream;
/**
* @className: MybatisTest
* @description:
*/
public class MybatisTest {
public static void main(String[] args) throws IOException {
//读取配置文件
InputStream inputStream= Resources.getResourceAsStream("config.xml");
//创建SqlSessionFactory工厂
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建sqlSession对象
SqlSession sqlSession=sqlSessionFactory.openSession();
//使用sqlSession创建dao接口的代理对象
IUserDao userDao=sqlSession.getMapper(IUserDao.class);
//使用代理对象执行方法 由于只是测试,所以就自己确定一个用户名进行查询
User user=userDao.findByUsername("xiaoming");
//输出测试
System.out.println(user);
//释放资源
sqlSession.close();
inputStream.close();
}
}
:次のように試験結果がある実行
の期待に沿ったもの。
(参考)下に示すもう一つの主要なプロジェクト全体のディレクトリ構造:
IVの概要
使用MyBatisのが容易データベースに関連する操作を処理することができ、構成MyBatisの経路マッパと同様に留意すべきであることを、1対1の対応でなければなりません。
通常の状況下では、それだけではMyBatisのが、春の内部の使用は使用されないので、開発の一部は、より便利になります。しかし、また、MyBatisの必要についての別の研究では、今後の学習春の基礎を築くことができます。
2020年3月5日