MyBatis学习1---初次接触(转)

MyBatis是一种轻量级的ORM框架,相对于Hibernate来说比较简单易用,对于较小的系统或者对于SQL语句有独特爱好的朋友可以使用MyBatis进行开发。网上大多是直接照抄MyBatis官网提供的docs例子进行粘贴,具体能不能用还不得而知。下面以一个例子来介绍MyBatis的基本使用。

一、建立数据库表

创建用户表:

DROP TABLE IF EXISTS user;
CREATE TABLE user (
  username varchar(50) NOT NULL,
  password varchar(50) DEFAULT NULL,
  address varchar(50) DEFAULT NULL,
  age varchar(5) DEFAULT NULL,
  sex varchar(2) DEFAULT NULL,
  PRIMARY KEY (username)
)

二、建立对应的DTO对象

public class UserDto implements java.io.Serializable {
    private static final long serialVersionUID = 1L;
    private String username;
    private String password;
    private String address;
    private String age;
    private String sex;

    public UserDto() {
    }

    public UserDto(String username, String password, String address, String age, String sex) {
        this.username = username;
        this.password = password;
        this.address = address;
        this.age = age;
        this.sex = sex;
    }

    public String getUsername() {
        return this.username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAddress() {
        return this.address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAge() {
        return this.age;
    }

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

    public String getSex() {
        return this.sex;
    }

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

 

三、建立MyBatis系统配置文件[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.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />
                <property name="username" value="test" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml" />
    </mappers>
</configuration>

 

四、建立user表的映射文件(UserMapper.xml)

<?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.mapper.UserMapper">
  <select id="selectUser" parameterType="String" resultType="com.dto.UserDto">
    select * from user where username = #{username}
  </select>
</mapper>

 

五、建立映射接口类(如果sql语句写在映射的配置XML文件,这一步可以不用)

 

package com.mapper;

import org.apache.ibatis.annotations.Select;

import com.dto.UserDto;

public interface UserMapper {
    @Select("select * from user where username = #{username}")
    public UserDto seleteUser(String username);

}

六、建立测试类

 

package com.test;


import java.io.InputStream;

import org.apache.ibatis.binding.MapperRegistry;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import com.dto.UserDto;
import com.mapper.UserMapper;

public class UserTest {
    SqlSessionFactory sqlSessionFactory = null;
    @Before
    public void setUp() throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        Configuration configuration = sqlSessionFactory.getConfiguration();
        MapperRegistry mapperRegistry = configuration.getMapperRegistry();
        System.out.println(mapperRegistry.getMappers());
        
    }
    @Test
    public void seleteXMLTest(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
          UserDto userDto = (UserDto) session.selectOne("com.mapper.UserMapper.selectUser", "xyz");
          System.out.println(userDto.getUsername());
          System.out.println(userDto.getPassword());
          System.out.println(userDto.getAddress());
          System.out.println(userDto.getAge());
          System.out.println(userDto.getSex());
        } finally {
          session.close();
        }
    }
    @Test
    public void seleteAnnotaionTest(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            UserDto userDto = userMapper.seleteUser("xyz");
            System.out.println(userDto.getUsername());
            System.out.println(userDto.getPassword());
            System.out.println(userDto.getAddress());
            System.out.println(userDto.getAge());
            System.out.println(userDto.getSex());
        } finally {
            session.close();
        }
    }

}


附上MyBatis3.2.2的源码下载地址:http://download.csdn.net/detail/wyc_cs/5272910

 

posted on 2015-06-29 09:49  轨道  阅读(131)  评论(0编辑  收藏  举报

导航