MyBatis 入門 (1)---基本的な使い方

黄舟
リリース: 2016-12-21 14:21:13
オリジナル
1545 人が閲覧しました

1. MyBatis の概要

1.1. 概要

MyBatis は、カスタマイズされた SQL、ストアド プロシージャ、および高度なマッピングをサポートする優れた永続層フレームワークです。

MyBatis は、ほとんどすべての JDBC コード、パラメーターの手動設定、結果セットの取得を回避します。

MyBatis は、構成に単純な XML またはアノテーションを使用し、ネイティブ マップを使用してインターフェイスと Java POJO (Plain Old Java Objects、通常の Java オブジェクト) をデータベース内のレコードにマッピングできます。

1.2、ORM

ORM ツールの基本的な考え方
Hibernate と mybatis のどちらを使用したことがあっても、それらには 1 つの共通点があることがわかります:
1. 設定ファイル (通常は XML 設定) から sessionfactory.
を取得します。ファイル) 2. sessionfactory でセッションを生成します
3. セッション内のデータの追加、削除、変更、トランザクションの送信を完了します。
4. 使用後はセッションを閉じます。

5. Java オブジェクトとデータベースの間にはマッピング設定ファイルがあり、通常は XML ファイルです。

2. 環境セットアップ

2.1. 必要な Jar パッケージ

MyBatis を使用するには、mybatis-x.x.x.jar ファイルをクラスパスに置くだけです。

MyBatis 入門 (1)---基本的な使い方

2.2. データベースを確立してデータを挿入します

ここでは MySQL データベースを使用します:

CREATE TABLE `mybatis`.`user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `name` VARCHAR(45) NOT NULL DEFAULT '无名氏' COMMENT '用户名',
  `age` TINYINT(3) NOT NULL DEFAULT 21 COMMENT '用户年龄',
  `birthday` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '用户生日',
  `address` VARCHAR(256) NOT NULL DEFAULT '北京' COMMENT '用户地址',  PRIMARY KEY (`id`)  COMMENT '')
COMMENT = '用户表';
ログイン後にコピー

insert into user(id,name,age,birthday,address)values(1,'张三',23,'1990) - 01-23 20:24:21','上海'),(2,'李思',18,'1986-12-23 12:13:11','広州'),(3,'

2.3. Web プロジェクトを確立し、Jar パッケージをプロジェクトに導入します

MyBatis 入門 (1)---基本的な使い方

3. 設定ファイル、エンティティ クラス、インターフェイスを確立します

3.1. エンティティ クラスを確立します

/*** @Title: User.java

* @Package com.pb.mybatis.po

* @Description: TODO (ユーザークラス)

* @author Liu Nan

* @date 2015-10-26 5 pm: 42:13

* @バージョン V1.0

*/package com.pb.mybatis.po;import java.util.Date;/**
* @ClassName: User

* @Description: TODO (ユーザークラス)

* @author Liu Nan

* @date 2015-10-26 5:42:13 pm

**/public class User {
/**
* id (ユーザーID)*/
private int id ;    /**
* 名前(ユーザー名)*/
private 文字列名;    /**
*年齢(ユーザーの年齢)*/
プライベート int age;    /**
*誕生日(ユーザーの誕生日)*/
プライベート 日付 誕生日;    /**
* アドレス (ユーザーアドレス)*/
プライベート文字列アドレス。    /**
* @IDを返す    */
public int getId() { return id;
} /**
* @param id 設定するID    */
public void setId(int id) { this.id = id;
} /**
* @return 名前    */
public String getName() { return name;
} /**
* @param name 設定する名前    */
public void setName(String name) { this.name = name;
} /**
* @return the age    */
public int getAge() { return age;
} /**
* @param age 設定する年齢    */
public void setAge(int age) { this.age = age;
} /**
* @誕生日を返す    */
public Date getBirthday() { return brithday;
} /**
* @param brithday 設定する誕生日    */
public void setBirthday(Date Birthday) { this.birthday = Birthday;
} /**
* @アドレスを返す    */
public String getAddress() { 返信先アドレス;
} /**
* @param address 設定するアドレス    */
public void setAddress(String address) { this.address = address;
}


}

3.2、写实体类接口

/** * @Title: UserMapper.java

* @Package com.pb.mybatis.dao

* @Description: TODO (ファイルの動作を一文で説明)

* @著者 Liu Nan

* @日付 2015- 10-26 5:45:13 pm

* @バージョン V1.0

*/package com.pb.mybatis.dao;import com.pb.mybatis.po.User;/**
* @ClassName: UserMapper

* @Description: TODO (ユーザー クラス データ アクセス インターフェイス)

* @author Liu Nan

* @date 2015-10-26 5:45:13 pm

**/public Interface UserMapper { /**
*
* @Title: selectUserById

* @Description: TODO (ユーザー ID に基づくクエリ)

* @param id
* @return User*/
public User selectUserById(int id) ;

}

3.3、与db.properties

db.properties

#データ库基本構成
#驱動
driver=com.mysql.jdbc.Driver
#连接url
url=jdbc:mys質問文: //localhost:3306/mybatis?characterEncoding=utf8#用户名
username=root
#密码
passWord=root

3.4、建立映写文子与configuration.xml構成

UserMapper.xml

br/> PUBLIC "-//mybatis.org//DTD マッパー 3.0//EN"
"http://mybatis .org/dtd/mybatis-3-mapper.dtd">

configuration.xml

xml version="1.0"coding="UTF-8"?>br/> PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd /mybatis-3-config.dtd"> gt; dataSource>

3.5. ID に基づく単純なクエリ

/*** @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO (このファイルの機能を一文で説明します)

* @著者 Liu Nan

* @日付 2015- 10-26 5:55:54 pm

* @バージョン V1.0

*/package com.pb.mybatis.test;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 com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User;/* *
* @ClassName: Test1

* @Description: TODO (テストクラス)

* @author Liu Nan

* @date 2015-10-26 5:55:54 pm

**/public class Test1 { //Session工厂
static SqlSessionFactory sqlSessionFactory=null;    //セッション
static SqlSession session=null;    //文字流
static Reader Reader=null;    
public static void main(String[] args) {

selectById();
} /**
*
* @Title: selectById

* @Description: TODO (ID に基づいてユーザーを検索)
void*/
public static void selectById(){ //加ダウンロード構成文件
{
reader=Resources.getResourceAsReader を試してください(「構成.xml」);            //建立SqlSessionFactory
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);            //打开Session
session=sqlSessionFactory.openSession();            //获取用户接口对象
UserMapper userMapper=session.getMapper(UserMapper.class);            //调用查询方法
User user=userMapper.selectUserById(1);
System.out.println(user.getName()+"..."+user.getAge()+"..."+user.getBirthday ().toLocaleString()+"..."+user.getAddress());
} catch (IOException e) {
e.printStackTrace();

}

}

3.6、使用别名

MyBatis 入門 (1)---基本的な使い方

変更mapper.xml内のユーザークラスの経路径は别名

MyBatis 入門 (1)---基本的な使い方


p> PUBLIC "-//mybatis.org//DTD マッパー 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


测试类不变

3.7、resultMapを使用

mapper.xml内でresultMapを使用

br/> PUBLIC "-//mybatis.org//DTD マッパー 3.0//EN"
"http://mybatis .org/dtd/mybatis-3-mapper.dtd">
更新ユーザー セット name=#{name},age= #{age},birthday=#{birthday},address=#{address}
where id=#{id}< ;/update>ユーザーから削除
where id=#{id}

4.3、テストクラス

/**

* @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO (このファイルが何をするのかを一文で説明します)

* @author Liu Nan

* @date 2015-10-26 5:55:54 pm

* @バージョン V1.0

*/package com.pb.mybatis.test;import java.io.IOException;import java.io.Reader;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util .Date;import java.util.List;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 com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User;/**
* @ClassName: Test1
*
* @Description: TODO (テストクラス)
*
* @author Liu Nan
*
* @date 2015-10-26 5:55:54 PM
*
*
*/public class Test1 { // Session工厂
static SqlSessionFactory sqlSessionFactory = null;    // Session
static SqlSession session = null;    // 字符流
static Reader Reader = null;    public static void main(String[] args) {


} /**
*
* @Title: selectById
*
* @Description: TODO (ID に基づいてユーザーを検索) void*/
public static void selectById() { // 追加配置文件
try {
reader = Resources. getResourceAsReader("configuration.xml ");            // 構築SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 打开Session
session = sqlSessionFactory.openSession();            // 取用户インターフェイス对象
UserMapper userMapper = session.getMapper(UserMapper.class);            //调用查询查询ユーザーユーザー= usermapper.seerctuserbyid(1); getBirthday().toLocaleString() + "..."
+ user.getAddress());
} catch (IOException e) {
e.printStackTrace();
}

} /**
*
* @Title: selectLikeName
* *
* @Description: TODO (ユーザー名に基づくあいまいクエリ) void*/
public static void selectLikeName() { // 追加構成文件
try {
reader = Resources.getResourceAsReader("configuration.xml");            // 構築SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 打开Session
session = sqlSessionFactory.openSession();            // 取用户インターフェイス对象
UserMapper userMapper = session.getMapper(UserMapper.class);            // 调用查询方法
List users = userMapper.selectUserLikeName("张");            for (ユーザー user : users) {
System.out.println(user.getName() + "..." + user.getAge() + "..." + user.getBirthday().toLocaleString() + " ...「
+ user.getAddress());
}
} catch (IOException e) {
e.printStackTrace();
}

} /**
*
* @Title: addUser

* @Description: TODO (ユーザー追加)
void*/
public static void addUser()構成ファイルをロードします構成ファイルをロードしますactory = new SqlSessionFactoryBuilder().build(reader); // セッションを開きます
session = sqlSessionFactory.openSession();使用する 使用する 使用する 使用する 使用する ‐ を通じて ' s ' s 's ‐ ‐ ‐ ‐‐ ‐ ユーザー user =new User();
User.setName("へへ" ;
Date date=sdf.parse (d); of id "+user.getid()); //トランザクションsession.commit(); );
}

} /**
*
* @Title: updateUser

* @Description: TODO (ユーザー変更)
void*/
public static void updateUser() { //設定ファイルをロード
Resources.getResourceAsReader("configuration.xml") // SqlSessionFactory をビルド
sqlSessionFactory = new SqlSessionFactoryBuilder( ).build(reader); // ユーザーインターフェイスオブジェクトを取得します UserMapper userMapper = session.getMapper(UserMapper.class); / クエリメソッドを呼び出します User user = userMapper.selectUserById(6); user.setName("名前"); user.setAddress("Magic City Shanghai"); userMapper.updateUser(user) ; ; // 設定ファイルをロードします
try {
Reader = Resources .getResourceAsReader ( "構成.xml"); SqlSessionFactoryを確立します= new sqlsessionfactorybuilder()e.printStackTrace();



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!