序文
MyBatisは、カスタマイズされたSQL、ストアドプロシージャ、および高度なマッピングをサポートする優れた永続性レイヤーフレームワークです。MyBatisは、ほとんどすべてのJDBCコードを回避し、パラメーターを手動で設定して結果セットを取得します。MyBatisは、シンプルなXMLまたは注釈を使用して、ネイティブタイプ、インターフェース、およびJava POJO(Plain Old Java Objects)をデータベースのレコードとして構成およびマップできます。
2つのmybatisエントリ
こんにちは、Xiaobai、ここでmavenプロジェクトを自分で作成する必要があります。構成とインストールを理解していない場合は、私のツールシリーズの構成mavenのアイデアが表示されます。データベースを学習していない場合は、私のsqlシリーズのチュートリアルを表示できます。 MySQLのインストールチュートリアルを非表示にしてください。!!
2.1 pom.xml
内部pomは、現在使用されていないmybatisに依存する一部のjunitを学習することですが、空を節約した次のクラスで使用される場合があります。!!
<dependencies>
<!-- mybatis support-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- log4j support -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- junit support -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- mysql support -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency>
</dependencies>
复制代码
2.2 log4j.properties
log4j.propertiesは、ログ情報をより適切に表示してsqlを出力するように構成されています。リソースディレクトリに新しいlog4j.propertiesを作成します。内容は次のとおりです。マッパーパッケージのマッピングパスを白で置き換えてください。それ以外の場合、ログは出力されません。泣いて、彼の兄弟のブログとパブリックアカウントを保持することは無意味です。
### 设置###
log4j.rootLogger = info,stdout
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
## 这边要替换成你的mapper包映射路径哟
log4j.logger.com.zszxz.mybatis.mapper = debug
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
# mysql安装https://zhuanlan.zhihu.com/p/37152572
复制代码
2.3データベーステーブルの作成
ここでXiaobaiが使用するmysql5.7バージョン、テーブルを構築するための情報は次のとおりです。これは学生クラスであり、メインフィールドは学生テーブルの主キー、学生名、学生番号であり、次に2つのレコードを挿入しました。なぜ弟が作成したのですか学生エンティティ。学生は学習が大好きなので、学生は最も単純であり、兄弟は自分自身を永久に学生として扱います。
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '学生姓名',
`number` int(11) DEFAULT NULL COMMENT '学生编号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (1, '知识追寻者', 996);
INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (2, 'youku1327', 555);
复制代码
2.4学生団体
学生エンティティは、SQLステートメントをクエリして、返された結果をエンティティにマップします。
/**
1. @Author lsc
2. @Description <p> </p>
3. @Date 2019/12/1 20:07
*/
public class Student {
// id
private String id;
// 学生姓名
private String name;
// 学生编号
private String number;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
复制代码
2.5マッパー
次の各文は古典的です。異教の場合は、聖書を学ぶように信仰深く扱ってください。
- StudentMapper.xmlは、xmlファイル内のmybatisのDTDであり、記述したSQLロジックです。
- ここに存在することに注意してください
namespace
、私たちStudentMapperインタフェースに対応するパスをマッピングするという性質が、 - mapper.xmlはマッパーインターフェースに対応しています。混乱しないようにしてください。通常は名前が1つであり、正式な習慣はマッパーで終わることです。
- StudentMapper.xmlが作成される場所は、リソースディレクトリのマッパーサブディレクトリにあります。本当に白人の場合は、カスタマイズしないでください。間違っています。
- メソッド内StudentMapperは
getStudent
であり<select>
、ラベルの内側に対応するIDの一意の識別子のクエリ方法を表します。 resultType
内部には学生エンティティのマッピングパスがあります。クラス名を入力しないでください。エラーが発生した場合は、確認するための助けを見つけることができません。<select>
ラベルの内容はSQLロジックで、弟はテーブル全体に対してクエリを実行しました。
StudentMapper.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">
<mapper namespace="com.zszxz.mybatis.mapper.StudentMapper">
<!-- 查询学生-->
<select id="getStudent" resultType="com.zszxz.mybatis.entity.Student">
select * from student
</select>
</mapper>
复制代码
StudentMapper:
public interface StudentMapper {
// 查询学生
List<Student> getStudent();
}
复制代码
2.6 mybatis-config.xml-itは設定です
mybatis-config.xmlはmybatisコンテンツを構成するもので、Xiaobaiはここであまり多くを知る必要はありません。小説に古典的な文があります。知っているほど、早く死んで、Yang Xiuを学びたいですか、才能はありますが、曹操はクリックされませんでした!!!!私はあなたが知っておくべきすべてを書きます;このファイルの場所はリソースディレクトリに置かれます;
<?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">
<!-- mybaits配置 -->
<configuration>
<!-- 全局环境配置-->
<environments default="development">
<environment id="development">
<!-- 事物 -->
<transactionManager type="JDBC"/>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<!-- 数据库驱动 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 数据库路径 -->
<property name="url" value="jdbc:mysql://192.168.0.106:3306/mybatis"/>
<!-- 账号-->
<property name="username" value="root"/>
<!--密码 -->
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 引入自定义mapper.xml -->
<mappers>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
复制代码
2.7 Mybatisの実行
メインクラスを作成し、mybatisを実行するように設定してください!!!
- SqlSessionFactoryBuilderは構築クラスであり、SqlSessionFactoryを取得するために、SQLセッション(セッション)ファクトリと呼ぶことができます。
- SqlSessionFactoryファクトリには多数のSqlSessionがあり、各スレッドにはSqlSession(SQLセッション)が必要です
openSession()
。fメソッドを使用してSqlSessionを取得します。 - sql操作を実行した後、sqlSessionを閉じることを忘れないでください。そうしないと、ディスクがクラッシュした後に私に連絡しないでください。!!
public static void main(String[] args) throws IOException {
// 资源路径
String resource = "mybatis-config.xml";
// 配置mybatis获得输入流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//从 SqlSessionFactory 中获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 使用 SqlSession 查询
List<Student> getStudent = sqlSession.selectList("getStudent");
for (Student student : getStudent){
System.out.println("学生姓名:"+student.getName()+" 学生编号:"+student.getNumber());
}
// 关闭 SqlSession
sqlSession.close();
}
复制代码
2.8 mybatisからのトロフィー
3つのソースコードはどこにありますか
Xiaobaiは、自分のノックを試みるように書いています。そうでない場合は、私の兄弟のソースコードを見てください。!!!!!!youku1327のgithub