Mybatis入門

前言

MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。項目中我們經(jīng)常用到mybatis的動態(tài)SQL功能生成復(fù)雜的SQL語句。它相對于Hibernate來說更加的輕便小巧,在國內(nèi)傳統(tǒng)公司一般喜歡使用Hibernate,互聯(lián)網(wǎng)公司會更青睞于Mybatis。雖然mybatis相較于Hibernate來說只是一個半自動化的持久層框架,但是相更加靈活可控; 最重要的一點是,mybatis更加的simple,更貼近SQL,學(xué)習(xí)成本低于hibernate。

DEMO

介紹Mybatis的簡單使用。
/mybatisDemo
-- /src
-- -- /main
-- -- -- /java
-- -- -- -- com/xavier/mybatis
-- -- -- -- -- App.java
-- -- -- -- -- User.java
-- -- -- -- -- UserMapper.java
-- -- -- /resource
-- -- -- -- /mapper
-- -- -- -- -- UserMapper.xml
-- -- -- -- mybatis-config.xml
-- pom.xml

  1. 項目引入mybatis的依賴
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.4</version>
</dependency>
  1. 創(chuàng)建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://localhost:3306/mydb?useUnicode=true"/>
                <property name="username" value="root"/>
                <property name="password" value="xxxxx"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>
  1. 從 XML 中構(gòu)建 SqlSessionFactory
public class App {
    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        UserMapper userMapper = sqlSessionFactory.openSession().getMapper(UserMapper.class);
        User user = userMapper.selectUser(1);
        System.out.println(user);
    }
}
  1. 實體類
@Getter
@Setter
@ToString
public class User {
    private Integer id;
    private String userName;
    private String passWord;
    private String realName;
}
  1. 映射文件以及映射類
public interface UserMapper {
    User selectUser(@Param("id") Integer id);
}

<?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.xavier.mybatis.UserMapper">
    <select id="selectUser" parameterType="int" resultType="com.xavier.mybatis.User">
    SELECT * FROM TB_USER WHERE ID = #{id}
    </select>
</mapper>
  1. 運(yùn)行
result
  1. 說明

DEMO的主方法中,從xml構(gòu)建了 SqlSessionFactory ,通過SQLSessionFactory 打開了一個新的SqlSession,獲取Mapper。
最后調(diào)用Mapper的selectUser方法,傳入?yún)?shù),獲取返回值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容