ホームページ >Java >&#&チュートリアル >MyBatis 入門 (1)---基本的な使い方
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 ファイルをクラスパスに置くだけです。
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 パッケージをプロジェクトに導入します
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">
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();
}
}
br/> PUBLIC "-//mybatis.org//DTD マッパー 3.0//EN"
"http://mybatis .org/dtd/mybatis-3-mapper.dtd">
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
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();