• mybatis整体流程


    <?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>
            <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </properties> -->
        
        <!-- 
            <properties>:设置或引入资源文件
            resource:在类路径下访问资源文件
            url:在网络路径或磁盘路径下访问资源文件
         -->
        <properties resource="jdbc.properties"></properties>
        
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        
        <typeAliases>
            <!-- 
                为类型设置类型别名
                type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写
             -->
            <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> 不建议-->
            <!-- 这种写法在XxxMapper.xml的resultType只需要写个Xxx就可以 -->
            <package name="com.atguigu.bean"/>
        </typeAliases>
        
        
        <!-- 
            <environments>:设置连接数据库的环境
            default:设置默认使用的数据库环境
         -->
        <environments default="mysql">
            <!-- 
                <environment>:设置某个具体的数据库的环境
                id:数据库环境的唯一标示
             -->
            <environment id="mysql">
                <!-- type="JDBC|MANAGED" -->
                <transactionManager type="JDBC" />
                <!-- type="POOLED|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>
            
            <environment id="oracle">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/ssm" />
                    <property name="username" value="root" />
                    <property name="password" value="123456" />
                </dataSource>
            </environment>
        </environments>
        <!-- 引入映射文件 -->
        <mappers>
        <!-- 引入具体的映射文件 -->
            <mapper resource="UserMapper.xml" />
        </mappers>
    </configuration>
    <?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">
     
     <!-- 这个用来指定对应的dao接口 -->
    <mapper namespace="com.atguigu.mapper.UserMapper">
        
        <!-- 
            <select>:定义查询语句
            id:设置SQL语句的唯一标示
            resultType:结果类型,即实体类的全限定名
            resultType如果在sqlMapConfig.xml中配置过typeAlisas,则按起的别名来,不建议
         -->
        <select id="getUserByUid" resultType="com.atguigu.bean.User">
            select uid,username,password,age,sex from user where uid = ${value}
        </select>
        
    </mapper>
    package com.atguigu.mapper;
    
    import com.atguigu.bean.User;
    
    public interface UserMapper {
        //和UserMapper.xml中的sql的id对应的
        /**
         * <!-- 
            <select>:定义查询语句
            id:设置SQL语句的唯一标示
            resultType:结果类型,即实体类的全限定名
         -->
        <select id="getUserByUid" resultType="com.atguigu.bean.User">
            select uid,username,password,age,sex from user where uid = ${value} 或者#{id}
        </select>
        
         * @param uid
         * @return
         */
        User getUserByUid(String uid);
        
    }
    package com.atguigu.mapper;
    
    import static org.junit.Assert.*;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    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.Test;
    
    import com.atguigu.bean.User;
    
    public class TestMybatis {
    
        @Test
        public void test() throws IOException {
            
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");//org.apache.ibatis.io.Resources
            //InputStream is = TestMybatis.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory sqlSessionFactory = 
                    new SqlSessionFactoryBuilder().build(is);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //getMapper():会通过动态代理动态生成UserMapper的代理实现类
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            System.out.println(mapper.getClass().getName());//com.sun.proxy.$Proxy4这个为生成的代理对象
            User user = mapper.getUserByUid("1");
            System.out.println(user);
            //user_name ---> userName
        }
        
    }

  • 相关阅读:
    Hadoop 单机搭建 Scala安装
    Hadoop 单机搭建 Hbase单机模式搭建
    Hadoop 单机搭建 hadoop单机搭建
    Linux shell 重定向学习笔记
    转:SQLServer中的GROUPING,ROLLUP和CUBE
    ueditor getshell漏洞重现及分析
    SQLServer禁用、启用外键约束
    转:Sql Server中清空所有数据表中的记录
    EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
    12种开源Web安全扫描程序
  • 原文地址:https://www.cnblogs.com/zmy-520131499/p/11397680.html
Copyright © 2020-2023  润新知