mybatis 學(xué)習(xí)筆記1

pom.xml添加依賴

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.4</version>
</dependency>
我們創(chuàng)建一張user表
CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  name char(30) NOT NULL,
  age int(4) NOT NULL,
  sex int(4) NOT NULL,
  PRIMARY KEY (id)
)

創(chuàng)建mybats配置文件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"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/sampledb"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>

        </environment>
    </environments>

    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

創(chuàng)建mapper映射器userMapper.xml

<mapper namespace="com.hn.spring.UserMapper">
    <select id="selectUserByName" resultType="com.hn.spring.User">
        select * from user where name = #{name}
    </select>
    <insert id="insertUser" parameterType="com.hn.spring.User">
        insert into user(name,sex,age) VALUES (#{name},#{sex},#{age})
    </insert>
</mapper>

在userMapper.xml中我們定義了一個select元素,返回一個user類型的對象。接下來我們實現(xiàn)相應(yīng)的userMappper和user類。
首先我們定義userMapper,userMapper定義為一個接口

public interface UserMapper {
    User selectUserByName(String name);
    void insertUser(User user);
}

該接口定義了一個selectUser方法,和select元素相匹配。
接下來我們實現(xiàn)User類。

public class User {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    private int age;
    private int sex;

    @Override
    public String toString() {
        return "username is "+name + " age is "+age;
    }
}

User類定義了name,age,sex屬性。

接下來我們編寫測試程序從mysql中查詢數(shù)據(jù)映射到我們的User對象中。

public class TestUser {

    public SqlSessionFactory getSessionFactory(){
        SqlSessionFactory sqlSessionFactory = null;
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch (IOException ex){

        }
        return sqlSessionFactory;
    }
    @Test
    public void selectUserByID(){
        SqlSessionFactory sqlSessionFactory = getSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();

        try {
            UserMapper userMapper = (UserMapper)session.getMapper(UserMapper.class);

            User user1 = new User();
            user1.setName("jack");
            user1.setAge(20);
            user1.setSex(1);
            userMapper.insertUser(user1);

            User user = userMapper.selectUserByName("jack");
            System.out.println(user.toString());
            Assert.assertNotNull(user);
        }catch (Exception ex){
            ex.printStackTrace();

        }finally {
            session.close();
        }

    }


}

首先讀取mybatis-config.xml,然后構(gòu)造sqlSessionFactory實例。使用sqlSessionFactory創(chuàng)建會話,使用會話獲取mapper映射器UserMapper,調(diào)用selectUser方法觸發(fā)sql查詢返回User對象。

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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