mybatis最简配置

来源:互联网 发布:淘宝阿尔法下载 编辑:程序博客网 时间:2024/06/05 18:26

1.mybatis实现的java代码和sql的分离。当我们转移数据库的时候,只需要更改自己的配置的sql即可,其不影响我们的上层的运作,这也是mybatis一个xml实现一个接口的好处。

     首先 准备一个实体类和一张数据库表。

2.配置jar,pom文件即得到jar

 <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <!-- junit.jar -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>

        </dependency>

3.配置文件mybatis-config.xml 放在resource下

<?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>
<!-- 指明User的具体位置
指定需要mybatis管理的实体类
-->
<typeAliases>
<typeAlias alias="User" type="peng.architect.dream.entity.User"/>
</typeAliases>


    <!-- 数据库基本配置 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.1.100:1521:orcl" />
<property name="username" value="scott" />
<property name="password" value="tiger" />
</dataSource>
</environment>
</environments>
<!-- 映射文件 -->
<mappers>
        <mapper resource="mapper/User.xml"/>
    </mappers>
</configuration>

4.定义接口和实现

package peng.architect.dream.dao;
import peng.architect.dream.entity.User;


import java.util.List;


public interface UserDao {
User findUserById(int id);
List<User> findUsers();
int add(User user);
int upd(User user);
int del(int id);
}

mapper 放在resource 下  mapper/User.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="peng.architect.dream.dao.UserDao"><!-- 包名,命名空间 -->
<!-- 为每一个查询语句,都要起一个id -->
<select id="findUsers" resultType="User">
select * from t_user 
    </select>
</mapper>

5.单元测试

package dao;

/**
 * Created by peng on 2017/10/4.
 */


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 org.junit.After;
import org.junit.Before;
import peng.architect.dream.dao.UserDao;
import peng.architect.dream.entity.User;


import java.io.IOException;
import java.util.List;


/**
 * @author peng
 * @create 2017-10-04 17:44
 **/
public class Test {


    private SqlSessionFactory sqlSessionFactory;


    private SqlSession sqlSession;


    @Before
    public void begin(){
        try {
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis-config.xml"));
            sqlSession=sqlSessionFactory.openSession();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    @org.junit.Test
    public void testDao(){
        UserDao userDao=sqlSession.getMapper(UserDao.class);
        List<User> list=userDao.findUsers();
for (User u : list) {
System.out.println(u.getName()+"---"+u.getLoacalBirth());
}
        sqlSession.commit();//增删改必须提交事务
    }


    @After
    public void end(){


        sqlSession.close();
    }
}

6.项目架构


7.项目在我百度云上

http://pan.baidu.com/s/1jIorVP8

uplu


原创粉丝点击