1. 程式人生 > 實用技巧 >Mybatis學習二 (介面註解)

Mybatis學習二 (介面註解)

1.概述

執行SQL的方式:

第一種:

SqlSession 例項來直接執行在User.xml檔案中對映的 SQL 語句

session.selectOne("com.yiibai.mybatis.models.UserMapper.getUserByID", 1)

第二種:

使用合理描述引數和SQL語句返回值的介面(比如:IUser.class),

這樣現在就可以不使用類似User.xml配置檔案,至此更簡單,程式碼更安全,

不容易發生的字串文字和轉換的錯誤

2.使用介面

第一步:建立一個介面:IUser,並在其中宣告對應的操作方法

import org.apache.ibatis.annotations.Select;
import com.yiibai.mybatis.models.User;

public interface IUser {
@Select("select * from user where id= #{id}")
public User getUserByID(int id);
}

注:程式碼有一個方法名 getUserByID 必須與 User.xml 裡面配置的

selectid 對應(<select id="getUserByID">

)同名,雖使用註解對映不需要User.xml

第二步:建立對應對映介面 SQL 語句

配置 MyBatis 所需的資料連線檔案,這裡建立一個檔案: src/config/Configure.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>

<typeAliases>
<typeAlias alias="User" type="com.yiibai.mybatis.models.User" />
</typeAliases>
<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://127.0.0.1:3306/testdb" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- // power by http://www.yiibai.com 註釋掉咯...
<mapper resource="com/yiibai/mybatis/models/User.xml" />-->
</mappers>
</configuration>

建立一個User.java 類檔案

public class User {

private int id;
private String name;
private String dept;
private String phone;
private String website;
} 測試介面對映 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.yiibai.mybatis.dao.IUser;
import com.yiibai.mybatis.models.User;
public class Main {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
//讀取xml檔案
reader = Resources.getResourceAsReader("config/Configure.xml");
//構造器獲取工廠物件
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//將介面對映新增到工廠裡
sqlSessionFactory.getConfiguration().addMapper(IUser.class);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
public static void main(String[] args) { //開啟一個連線
SqlSession session = sqlSessionFactory.openSession();
try {
//將SQL查詢新增進去
IUser iuser = session.getMapper(IUser.class);
//查詢
User user = iuser.getUserByID(1);
System.out.println("名字:"+user.getName());
System.out.println("所屬部門:"+user.getDept());
System.out.println("主頁:"+user.getWebsite());
} finally {
//關閉連線
session.close();
}
}
}
學習來源:https://www.yiibai.com/mybatis/interface_comment.html#article-start