mybatis初识

mybatis采用弱连接,在一定程度上集中管理了sql的语句编写,又实现了自动映射bean。

此处以最基础的mybatis连接为例:

引入jar包:

mybatis-3.4.5.jar

ojdbc-6.jar

在src下创建文件:mybatis.cfg.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>
    <!-- 引入外部配置文件 -->
    <properties resource="ojdbc.properties"></properties>
    <!--bean 别名通过扫描  bean下的内容获取 -->
    <typeAliases>
        <package name="bean" />
    </typeAliases>
    <!-- 配置mybatis运行环境 -->
    <environments default="cybatis">
        <environment id="cybatis">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />

            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
   <!-- mappers扫描内容 -->
    <mappers>
        <package name="mapper" />
    </mappers>

</configuration>

在src下创建ojdbc.properties文件

db连接驱动文件写法参照 db连接驱动,以下为例子:

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.201.7:1521:orcl
jdbc.username=test
jdbc.password=test1234

 在mapper的package下,创建对象的接口文件和xml映射文件,要求信息对应上。

userMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="mapper.UserMapper">
    <!-- 自定义返回结果集 -->
       <resultMap id="User" type="User">
            <result property="UserId" column="User_id" javaType="java.lang.String"></result>
            <result property="UserNo" column="User_no" javaType="java.lang.String"></result>
        </resultMap>

        <select id="getUserById" parameterType="string" resultMap="User">
         select User_id,User_no from User where User_id=#{UserId}
        </select>
        
        <select id="getUserBySearch" parameterType="string" resultMap="User">
         select User_id,User_no from User where org_name like #{orgName}
        </select>
    </mapper>

userMapper.java

public interface UserMapper {

    /**
     * 
     * @param UserId 主键ID
     * @return User
     * @throws Exception
     */
    User getUserById(String UserId) throws Exception;
    
    /**
     * 
     * @param orgName
     * @return
     * @throws Exception
     */
    List<User> getUserBySearch(String orgName) throws Exception;
}

创建对数据库的连接:

/**
 * 获取连接db的session
 * @author DennyZhao
 *
 */
public class DBTools {

    public static SqlSessionFactory sessionFactory;
    static {
        //使用MyBatis提供的Resources类加载mybatis的配置文件
        //构建sqlSession的工厂
        Reader reader;
        try {
            reader = Resources.getResourceAsReader("mybatis.cfg.xml");
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSession() {
        return sessionFactory.openSession();
    }
}

 测试:

public class UserTest {

    public static void main(String[] args) throws Exception {
        SqlSession session = DBTools.getSession();
        UserMapper UserMapper = session.getMapper(UserMapper.class);
        List<User> UserList = UserMapper.getUserBySearch("%张三%");
        session.close();
    }

}
原文地址:https://www.cnblogs.com/DennyZhao/p/9648552.html