项目中一直使用mybatis,一直在用,但是原理不甚了解,最近抽时间深入学习下,准备写一系列mybatis文章,记录下。
まず、それは何MyBatisの?
MyBatisのは、フレームワーク持続性です。持続性とは何ですか?それは単純に理解することができます:永続の瞬間のメモリの状態をファイルに(写真は、ある瞬間の記録を述べることです)。フレームワークは、我々は唯一のビジネスロジックに集中、反復作業から抽象的にで開発することができます。具体的かつ詳細な説明はしつこいされていない、我々はの公式ウェブサイトに焦点を当てることができますMyBatisの、実際には、学ぶ新しいカリキュラムは、あなたが学ぶために公式サイトに行くことをお勧めしますが、ドキュメントの公式ウェブサイトの一部が表彰されるようになっています。
二、MyBatisのエントリー
いずれかの技術は、我々は、HelloWorldの下で達成するためにそれを使用するために学んでいます。私はそのアイデア(2019年1月3日)+ Mavenの(3.6.0使用 )+ JDK(1.8) プロジェクトをビルドします。
githubのの
使用は、2つの方法をMyBatisの:1、xml構成を使用して。2、純粋なJavaの設定(なしXML)
POMの設定次のようにプロジェクトを実行することができます。
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
図1に示すように、XML構成を使用して
MyBatisのを使用して上記映像番組コード主にそれらのコア組成:
①model;②Mapper;③Mapper.xml(非必須);④mybatis-config.xmlの(コアプロファイル)
MyBatisの-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="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
<mapper class="org.imzdong.study.mybatis.domain.AnnotationUserMapper" />
</mappers>
</configuration>
プログラムを起動します。
package org.imzdong.study.mybatis.demo;
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 org.imzdong.study.mybatis.domain.AnnotationUserMapper;
import org.imzdong.study.mybatis.domain.User;
import org.imzdong.study.mybatis.domain.XmlUserMapper;
import java.io.IOException;
import java.io.InputStream;
/**
* @description: xml配置mybatis
* @author: Winter
* @time: 2020/4/6
*/
public class XmlMyBatisDemo {
public static void main(String[] args) {
String resource = "mybatis-config.xml";
try {
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
try (SqlSession session = build.openSession()) {
//User user = session.selectOne("org.imzdong.study.mybatis.domain.UserMapper.selectUserById", 1);
XmlUserMapper mapper = session.getMapper(XmlUserMapper.class);
User user = mapper.selectUserById(1);
System.out.println("user: "+user);
AnnotationUserMapper annotationMapper = session.getMapper(AnnotationUserMapper.class);
User userAnnotation = annotationMapper.selectUserById(1);
System.out.println("userAnnotation: "+userAnnotation);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
それは簡単です。
2、Java構成純粋簡単に、私たちはコードの下に置く感じます。
package org.imzdong.study.mybatis.demo;
import com.mysql.cj.jdbc.MysqlDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.imzdong.study.mybatis.domain.AnnotationUserMapper;
import org.imzdong.study.mybatis.domain.User;
/**
* @description: 非xml配置mybatis
* @author: Winter
* @time: 2020/4/6
*/
public class JavaConfigMyBatisDemo {
public static void main(String[] args) {
//1、获取mysql数据库连接
String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC";
String userName = "root";
String password = "root";
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUrl(url);
dataSource.setUser(userName);
dataSource.setPassword(password);
//2、构建事务管理工厂
TransactionFactory transactionFactory = new JdbcTransactionFactory();
//3、构造环境
Environment environment = new Environment("development", transactionFactory, dataSource);
//4、初始化配置
Configuration configuration = new Configuration(environment);
configuration.addMapper(AnnotationUserMapper.class);
//configuration.addMapper(XmlUserMapper.class);
//5、获取SqlSessionFactory
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(configuration);
try (SqlSession session = build.openSession()) {
AnnotationUserMapper annotationMapper = session.getMapper(AnnotationUserMapper.class);
User userAnnotation = annotationMapper.selectUserById(1);
System.out.println("userAnnotation: "+userAnnotation);
/*XmlUserMapper mapper = session.getMapper(XmlUserMapper.class);
User user = mapper.selectUserById(1);
System.out.println("user: "+user);*/
}
}
}
3まとめ
詳細に見るJava構成、ステップMyBatisのデータベース接続、トランザクション制御、初期設定からデモ、SqlSessionFactoryを得る、データベースを操作することができることは非常に簡単です。このような接続を開始するなど、JDBCパッケージ繰り返し動作を、MyBatisの接続は、開発者のみがこれらの重複作業構成を介して取得だから、トランザクションを閉じています。