精华内容
下载资源
问答
  • 2020-12-03 16:01:25

    孩子从小开始学英语对于家长来说还是至关重要的,毕竟现在日益国际化,如果孩子学好英语不仅仅对于学习上有帮助,以后工作也有一些辅助,而且据科学研究发现,孩子从小开始学英语对大脑有一定的好处的,不过很多家长都喜欢把孩子送到在线英语培训机构,最近讨论比较多的是猿辅导网课,这家培训机构怎么样,好不好,这里来说一说猿辅导网课怎么样:

    1、猿辅导网课怎么样

    猿辅导网课主要针对于小学和中学全科辅导,包括了英语,数学,语文,化学,物理等等。在进行辅导时,是通过在线辅导软件进行,上课特别方便简单,在家就可以通过在线辅导,免去了跑培训班,好多学生和家长都比较认可,特别是时间比较随意。目前在国内由于知名度高,很多家长在通过多家对比后,愿意给孩子选择猿辅导网课,在家通过电脑,通过手机,就可以进行上课。

    2、猿辅导网课的收费标准

    猿辅导课程主要是30-50人的小班课像初中英语暑期系统班7天小班30人课程收费499元,一天的一个多小时的课程要70元,而奥数这些课程更贵,一节课要150元左右,看你是怎么选择了。

    3、猿辅导网课的课程类型

    要说猿辅导一对一课程怎么样,个人觉得更适合基础比较好的小朋友,因为一个孩子面对一个老师上课多多少少会有些害怕,会影响上课效果,再加上没有同伴一起学习,缺少课堂气氛,也会影响到孩子的学习成果,如果选他们的直播课堂,一节课就有几十个人,上课基本靠孩子的自觉性,跟在学校学习没太大区别。

    猿辅导网课怎么样,以上就是我的了解了,其实整体一般般,在价格这块也是偏高的,不过每个家长的看法不同,所以还是看自己的想法吧,今天就分享这么多了,希望能够有所帮助。

    更多相关内容
  • 小学一年级一对一辅导专用PPT课件.pptx
  • 数学一对一辅导方案.doc
  • 一次函数一对一辅导讲义全.doc
  • 个性一对一辅导机构创业计划书
  • 个灯都有个开关,游戏者可以改变它的状态。 每一步,游戏者可以改变某个灯的状态。 游戏者改变个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字1表示盏开着的...

    1.递归实现指数型枚举

    画出递归搜索树,每个点选或不选 

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n;
    const int N = 20;
    int st[N];//判断每个数选或没选,0代表还没判断,1代表选,2代表不选
    void dfs(int u)//从1开始看看[1,n]每个点选或不选
    {
        if(u>n)
        {
            for(int i=1;i<=n;i++)
            {
                if(st[i]==1)
                {
                    cout<<i<<" ";
                }
            }
            cout<<endl;
            return;
        }
        
        //1.选这个点
        st[u]=1;
        dfs(u+1);
        st[u]=0;
        
        //2.不选这个点
        st[u]=2;
        dfs(u+1);
        st[u]=0;
    }
    int main()
    {
        cin>>n;
        dfs(1);
        return 0;
    }

    2.递归实现排列型枚举

    画出递归搜索数,搜索时候看看每个位置选哪个数 

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n;
    const int N = 15;
    bool st[N];//st[i]表示i这个数用没用过
    int a[N];//a[i]代表第i个位置上放谁
    void dfs(int u)
    {
        if(u>n)
        {
            for(int i=1;i<=n;i++)
            {
                cout<<a[i]<<" ";
            }
            cout<<endl;
            return;
        }
        for(int i=1;i<=n;i++)//每一个位置有n种选择
        {
            if(!st[i])
            {
                st[i]=true;
                a[u]=i;//将i放在第u个位置上
                dfs(u+1);
                //恢复现场
                st[i]=false;
                a[u]=0;
            }
        }
    }
    int main()
    {
        cin>>n;
        dfs(1);//从n个数中的第一个数开始搜索,枚举每个位置上填谁
        return 0;
    }

    3.简单斐波那契

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int a=0,b=1;
        for(int i=0;i<n;i++)
        {
            cout<<a<<" ";
            int c=a+b;
            a=b,b=c;
        }
        return 0;
    }

    4.费解的开关

    你玩过“拉灯”游戏吗?

    25 盏灯排成一个 5×5 的方形。

    每一个灯都有一个开关,游戏者可以改变它的状态。

    每一步,游戏者可以改变某一个灯的状态。

    游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。

    我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。

    下面这种状态

    10111
    01101
    10111
    10000
    11011
    

    在改变了最左上角的灯的状态后将变成:

    01111
    11101
    10111
    10000
    11011
    

    再改变它正中间的灯后状态将变成:

    01111
    11001
    11001
    10100
    11011
    

    给定一些游戏的初始状态,编写程序判断游戏者是否可能在 6 步以内使所有的灯都变亮。

    输入格式

    第一行输入正整数 n,代表数据中共有 n 个待解决的游戏初始状态。

    以下若干行数据分为 n 组,每组数据有 5 行,每行 5 个字符。

    每组数据描述了一个游戏的初始状态。

    各组数据间用一个空行分隔。

    输出格式

    一共输出 n 行数据,每行有一个小于等于 6 的整数,它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。

    对于某一个游戏初始状态,若 6 步以内无法使所有灯变亮,则输出 −1。

    数据范围

    0<n≤500

    输入样例:

    3
    00111
    01011
    10001
    11010
    11100
    
    11101
    11101
    11110
    11111
    11111
    
    01111
    11111
    11111
    11111
    11111
    

    输出样例:

    3
    2
    -1

    本题思路:

    关键:枚举第一行的所有操作情况

    1.对第一行进行操作,由于第一行有5个格子代表5个灯,操作每个格子的灯有关或不关两种选择,所以选择共有op=32种
    用op=[0,31]32个数的2进制数来分别对应一种操作
    
    注意:这里不是枚举第一行的状态,是枚举对第一行怎么操作,如:11000代表按下第一行前两个灯
    
    2.当我们发现对第一行进行了如上操作后,第二行的操作就固定了,只能去点亮第一行没亮的灯的下面的灯,依次类推,第3,4,5行的操作也固定
    
    3.最后看一下最后一行的情况,如果最后一行刚好全部点亮,说明是可行的方案,如果最后一行最后有灯没有点亮,说明这种方案不行。还要注意方案数最后要在<=6的范围内

    小技巧:

    这里用二进制数01来表示所有灯亮或没亮,位运算操作会很多,代码注释详解

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int N = 10;
    char g[N][N],backup[N][N];
    
    void turn(int x,int y)
    {
        int dx[5] = {0, -1, 0, 1, 0}, dy[5] = {0, 0, 1, 0, -1};
        //定义五个方向偏移量
        for(int i=0;i<5;i++)
        {
            int a=x+dx[i],b=y+dy[i];
            if(a>=0&&a<5&&b>=0&&b<5)
            {
                g[a][b]^=1;
                //因为'0'的ascall码值为48 --二进制110000
                //'1'的ascall码值为49--二进制110001
                //就差结尾的1和0,进行异或运算,结尾1变0,0变1即可
            }
        }
    }
    
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            for(int i=0;i<5;i++) cin>>g[i];
            
            int res=10;//取一个大于6的数即可,存储所有方案中的最小步骤数
            
            for(int op=0;op<32;op++)//对应对第一行进行32种不同的操作
            {
                memcpy(backup,g,sizeof g);//保存g的初始状态,进行下一次操作的时候又是对初始状态操作
                int cnt=0;
                for(int i=0;i<5;i++)
                {
                    if(op>>i & 1)//假设从右向左第1个数是第0位,这里就是看看第i位上是不是1,是1就进行一次按灯操作
                    {
                        cnt++;
                        turn(0,i);
                    }
                }
                for(int i=0;i<4;i++)//枚举前四行,每行状态决定下一行哪里需要按灯
                {
                    for(int j=0;j<5;j++)
                    {
                        if(g[i][j]=='0')
                        {
                            cnt++;
                            turn(i+1,j);
                        }
                    }
                }
                bool flag=true;//看看是否成功
                for(int i=0;i<5;i++)//第五行存在为0的,就说明没有全部点亮
                {
                    if(g[4][i]=='0')
                    {
                        flag=false;
                        break;
                    }
                }
                if(flag) res=min(res,cnt);
                memcpy(g,backup,sizeof backup);//恢复原来的g
            }
            if(res>6) cout<<"-1"<<endl;
            else cout<<res<<endl;
        }
        return 0;
    }

    5.递归实现组合型枚举

    比起排列型枚举,多了一个判断一下是否比前一个数大的过程,并且位置的个数变成了m而不再是n

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n,m;//从n个数中选m个,从小到大放在m个位置上
    const int N = 25;
    int a[N];
    int st[N];
    void dfs(int u)//枚举每个位置填哪个数
    {
        if(u>m)
        {
            for(int i=1;i<=m;i++)
            {
                cout<<a[i]<<" ";
            }
            cout<<endl;
            return;
        }
        for(int i=1;i<=n;i++)
        {
            if(!st[i]&&i>a[u-1])
            {
                a[u]=i;
                st[i]=true;
                dfs(u+1);
                a[u]=0;
                st[i]=false;
            }
        }
    }
    int main()
    {
        cin>>n>>m;
        dfs(1);
        return 0;
    }

    6.带分数 

    1209. 带分数 - AcWing题库

    法1:


    n=a+b/c
    爆搜:
    枚举1-9的全排列,然后划分成三个部分计算a,b,c,看看n*c与a*c+b的关系

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n;
    int cnt;//统计最后有多少个满足题意的数
    int num[10];//存每个位置上放哪些数字
    bool st[10];//判断每个数是否被用过
    int calc(int l,int r)
    {
        int res=0;
        for(int i=l;i<=r;i++)
        {
            res=res*10+num[i];
        }
        return res;
    }
    void dfs(int u)
    {
        if(u>9)
        {
            //第一个数范围是num[1,7],第二个数范围是num[2,8],第三个数范围是num[3,9]
            for(int i=1;i<=7;i++)
            {
                for(int j=i+1;j<=8;j++)
                {
                    int a=calc(1,i);
                    int b=calc(i+1,j);
                    int c=calc(j+1,9);
                    if(n*c==a*c+b) cnt++;
                }
            }
            return;
        }
        for(int i=1;i<=9;i++)
        {
            if(!st[i])
            {
                st[i]=true;
                num[u]=i;
                dfs(u+1);
                //恢复现场
                st[i]=false;
                num[u]=0;
            }
        }
    }
    int main()
    {
        cin>>n;
        dfs(1);
        cout<<cnt<<endl;
        return 0;
    }

    法2: 

     n=a+b/c
    n*c-a*c==b
    法2:
    枚举a dfs_a
    枚举c dfs_c//与dfs_a是嵌套关系,每次dfs_a的时候,看看从当前a出发,dfs_c能不能得到合法结果
    判断b是否成立,将记录已经用过的所有数字i的数组st[]备份到backup里面
    再把b分解一下,看看最终是不是包含1-9

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int n;
    int cnt;
    bool st[10];
    bool backup[10];
    bool check(int a,int c)
    {
        long long b=n*(long long)c-a*c;
        
        if(!a||!b||!c) return false;
        
        memcpy(backup,st,sizeof st);
        while(b)
        {
            int x=b%10;//取出个位
            b/=10;//向右移
            if(!x||backup[x]) return false;//如果出现0或者1-9中有元素重复出现
            backup[x]=true;
        }
        
        for(int i=1;i<=9;i++)
        {
            if(!backup[i]) return false;//1-9中有数字没出现过
        }
        return true;
    }
    void dfs_c(int u,int a,int c)
    {
        if(u>9) return;
        
        if(check(a,c)) cnt++;
        
        for(int i=1;i<=9;i++)
        {
            if(!st[i])
            {
                st[i]=true;
                dfs_c(u+1,a,c*10+i);
                st[i]=false;
            }
        }
    }
    void dfs_a(int u,int a)
    {
        if(a>=n) return;
        
        if(a) dfs_c(u,a,0);//第一个参数是当前用了几个数,第二个参数是当前a的值,第三个参数是当前c的值
        
        for(int i=1;i<=9;i++)
        {
            if(!st[i])
            {
                st[i]=true;
                dfs_a(u+1,a*10+i);
                st[i]=false;
            }
        }
    }
    int main()
    {
        cin>>n;
        dfs_a(0,0);//第一个参数是当前用了几个数,第二个参数是当前a的值是多少
        cout<<cnt<<endl;
        return 0;
    }

    7.飞行员兄弟

    116. 飞行员兄弟 - AcWing题库

    与费解的开关那题类似
    但本题由于1<<16不是很大,所以可以直接枚举对4*4中每个把手进行开或关的操作即可

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    char g[5][5],backup[5][5];
    typedef pair<int, int> PII;
    
    int get(int i,int j)//返回二维数组在一维数组中的下标
    {
        return 4*i+j;
    }
    
    void turn(int x,int y)
    {
        for(int i=0;i<4;i++)//(x,y)同行同列全按一下
        {
            if(g[x][i]=='+') g[x][i]='-';
            else g[x][i]='+';
            if(g[i][y]=='+') g[i][y]='-';
            else g[i][y]='+';
        }
        if(g[x][y]=='+') g[x][y]='-';
        else g[x][y]='+';//(x,y)这个点被多按了一下,按回去
    }
    int main()
    {
        for(int i=0;i<4;i++) cin>>g[i];
        
        vector<PII> res;
        for(int op=0;op< 1<<16;op++)
        {
            vector<PII> step;
            memcpy(backup,g,sizeof g);//因为每次op操作都是对g[][]进行操作,所以要备个份
            
            for(int i=0;i<4;i++)
            {
                for(int j=0;j<4;j++)
                {
                    if(op>>get(i,j) & 1)//1的位置说明要操作,0的位置说明不用操作
                    {
                        turn(i,j);
                        step.push_back({i,j});
                    }
                }
            }
            
            bool flag=true;
            for(int i=0;i<4;i++)
            {
                for(int j=0;j<4;j++)
                {
                    if(g[i][j]=='+') //存在门把手是闭合的,说明枚举到的op操作不合法
                    {
                        flag=false;
                        break;
                    }
                }
            }
            if(flag==true)
            {
                if(res.size()>step.size()||res.empty()) res=step;
                //当前结果的步骤数小于原来的步骤数,则可以更新
                //或者当前还没有结果,step是第一个结果
            }
            memcpy(g,backup,sizeof backup);
        }
        cout<<res.size()<<endl;
        for(int i=0;i<res.size();i++)
        {
            cout<<res[i].first+1<<" "<<res[i].second+1<<endl;
        }
        return 0;
    }

    8.翻硬币

    1208. 翻硬币 - AcWing题库

    10个位置,用9个开关控制
    从左向右,第一个位置得和目标状态相同,且第一个位置只能由第一个开关控制
    所以第一个开关的开和关的状态是确定的,由于第一个开关开和关确定,
    所以第二个位置也只有第二个开关控制

    从最左侧开始遍历,如果该位置硬币状态与目标不同,就翻动该位置和该位置后面的两枚硬币。
    因为题目说了有解,所以遍历到倒数第二枚的时候,所有硬币状态就与目标相同了。

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int cnt;
    string a,b;
    void turn(int i)
    {
        if(a[i]=='*') a[i]='o';
        else a[i]='*';
    }
    int main()
    {
        cin>>a>>b;
        for(int i=0;i<a.size();i++)
        {
            if(a[i]!=b[i])
            {
                turn(i);
                turn(i+1);
                cnt++;
            }
        }
        cout<<cnt<<endl;
        return 0;
    }

    展开全文
  • 辅导辅导老师面试过程➕感受

    千次阅读 2020-12-09 09:27:49
    个周前拿到了猿辅导的offer,看到很多知有在问猿辅导的面试,碰巧又是秋招季,就在这里给大家谈一下我的面试过程和感受。先放一张我的的offer我在之前的文章中介绍过自己,因为是二本财务专业毕业,工作比较难找,...

    一个周前拿到了猿辅导的offer,看到很多知有在问猿辅导的面试,碰巧又是秋招季,就在这里给大家谈一下我的面试过程和感受。

    先放一张我的的offer

    我在之前的文章中介绍过自己,因为是二本财务专业毕业,工作比较难找,所以就广撒网了,给猿辅导投递了简历。在投简历之前也通过知乎了解过这个工作,也有学姐在里边工作,大概了解到这个岗位就是百分之80的销售性质+百分之20服务,但是因为薪资当时说的一个月下来5000+,对于一个刚毕业的学生来说还算可观,于是就应聘了。

    面试:

    第一天上午投递的简历,下午就打来了电话约面试,不得不说猿辅导效率还是蛮高的。面试是线上的视频电话,当时我是加上面试官一共四个人,先是每个人做一段自我介绍,然后老师问你一些问题,比如能不能接受加班?如何看待辅导老师这份工作等。每人大概七八分钟,这里你只要表现出你能加班,热爱教育又喜欢销售岗就可以了。基本初面都能过,百分之90的几率吧。当天下午就给我打电话通知我面试结果了。

    接下来就是三天的培训了

    第一天:9:30—6:30

    早上第一节课是小班课,我们班一共28个人,每个人连麦自我介绍,这个时候是需要露脸的,所以我也早早起来化了个美美的妆,每人3分钟左右,基本上就是两个小时了。然后就是大班课,大班课是公司一个比较厉害的人物提前录好的,讲的是公司的企业文化和后期个人的晋升,这个时候相对轻松一点,因为你不用害怕随时被点名,但是一定不要后台切换,只要后台运行就会被发现,会影响后面的考核。还有就是一定要记笔记!!!因为后面会收笔记,只给10分钟时间,到时候补就来不及了,幸好我提前做了准备写了笔记。

    下午开课前会有一个摸底测,根据你报的班级给你相应的题,我是高中数学,给我的题可想而知了,这个还是看你态度,切记不要后台搜题,只要后台运行必会被发现,当然如果你有两个手机就不一样了~

    下午是两节课服务课,一节课告诉你你的任务,比如开班电话、跟课、学情回访等。第二节又是小班电话,随机连麦然后模拟电话,你的小班班主任会模仿成家长的样子,这个难度不大,但是维系客户很重要,你必须亲切和蔼。还有就是仍然要露脸,那么多人看着你的脸,有的人难免会紧张。给大家放一张图

    这个大概就是你们会模拟的电话了

    终于一天结束了,会给你布置作业,我只记得我的作业写到手软,每个人写一篇感想,高中老师抄写了整个高中的数学大纲,小学应该就是抄写小学的教学大纲喽!对你没看错,就是整个教学大纲!!!老师说就是5000字左右,但是我觉得不止,因为我从6点半开始写,写到了10点,我还属于写字快的。

    第二天:9:30—5:30

    发现群里少了8个人,估计是因为作业太多,直接放弃了吧!

    上午是最重要的课,直接关乎到以后工作业绩的核心课,也就是续报电话。先是给你介绍,然后进入小班进行模拟,这时候你就会发现你的小班班主任不可爱了,因为她会各种方式刁难你,甚至飙方言,目的就是为了让你达不到续报目的,不过也能理解,毕竟你将来打出去的电话也是会有各种各样的家长的。紧张又刺激的一早上又过去了。

    在这里跟大家分享一下续报电话的一些技巧

    家长拒绝的原因大概有

    第一,费用高。本来是短期几十块的班要转为几千块的长期报当然会觉得贵了,不过有些家长也是提前做好心理准备了。这时候可以从这些钱和孩子的教育相比就是沧海一粟了,教育本来就是一项投资,高投资才有高收益等角度去回答;

    第二,效率不明显,想考虑线下辅导。可以从孩子学习是一个持久战,短期内肯定是看不出明显效果的,但是孩子在我们课堂上表现很好,也很积极,我们是双师制,辅导老师都会紧跟学生的学习进度,实时监督,这些是线下辅导做不到的这些角度去回复;

    第三,孩子不想学,厌学。要跟家长强调学习的重要性,孩子不想学可能因为年纪小,但是家长应该引起重视,要和老师统一战线,让孩子把这个兴趣捡起来。

    下午的课就是开头的图里边的课表了,还算轻松,就不一一介绍了,因为没什么需要注意的东西。

    然后又是作业了,今天的作业比第一天少一点点,只是少一点点,我还是写到了9点,今天的作业是抄写青少年心理发展的一些东西。

    终于到了第三天终审,早上会给群里发终审顺序,每个人大概十几分钟的时间,大概就让你模拟一次续报,然后问一下你的规划。注意:如果问你有没有考研考公的问题,如果你非常想拿到这个offer,一定要说没有。还有就是一定要表达出你很热爱教育又喜欢销售,喜欢挑战,抗压能力强这些特点。

    下午就给我发了我的证书

    但是我没去,因为想到我的工作天天熬夜加班我就害怕,并且转正后如果业绩是后百分之20就会被淘汰。所以打算考公务员了,我还是喜欢安稳。

    展开全文
  • 一对一映射方式一:联查询,使用嵌套结果映射来处理重复的联合结果的子集封装联查询的数据(去除重复的数据) select * from t_classes cl, t_counsellor co where cl.co_id=co.co_id and cl.cl_id = 1; -...

    测试代码结构图:


    ①db.sql建表语句

    /*辅导员信息表*/
    create table t_counsellor (
    	co_id int primary key auto_increment,
    	co_name varchar(20)
    );
    
    /*班级信息表*/
    create table t_classes (
    	cl_id int primary key auto_increment,
    	cl_name varchar(20),
    	co_id int,
    	
    	foreign key(co_id) references t_counsellor(co_id)
    );


    ②实体类

    package com.geekymv.model;
    
    /**
     * 班级类
     */
    public class Classes {
    	
    	private Integer id;
    	private String name;
    	
    	private Counsellor counsellor;
    
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Counsellor getCounsellor() {
    		return counsellor;
    	}
    	public void setCounsellor(Counsellor counsellor) {
    		this.counsellor = counsellor;
    	}
    	
    	@Override
    	public String toString() {
    		return "Class [id=" + id + ", name=" + name + ", counsellor="
    				+ counsellor + "]";
    	}
    
    }
    

    package com.geekymv.model;
    
    /**
     * 辅导员
     */
    public class Counsellor {
    	
    	private Integer id;
    	private String name;
    	
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	@Override
    	public String toString() {
    		return "Counsellor [id=" + id + ", name=" + name + "]";
    	}
    	
    	
    }
    

    ③SQL映射文件ClassesMapper.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.geekymv.model.ClassesMapper">
    	
    	<!-- 
    		一对一映射方式一:联表查询,使用嵌套结果映射来处理重复的联合结果的子集封装联表查询的数据(去除重复的数据)
    		select * from t_classes cl, t_counsellor co where cl.co_id=co.co_id and cl.cl_id = 1;
    	 -->
    	<select id="getClasses" parameterType="int" resultMap="ClassResultMap">
    		select * from t_classes cl, t_counsellor co where cl.co_id=co.co_id and cl.cl_id = #{id};
    	</select>
    	<resultMap type="Classes" id="ClassResultMap">
    		<id property="id" column="cl_id"/>
    		<result property="name" column="cl_name"/>
    		<!-- 
    			association:用于一对一的关联查询
    			javaType:对象属性的类型
    		 -->
    		<association property="counsellor" javaType="Counsellor">
    			<id property="id" column="co_id"/>
    			<result  property="name" column="co_name"/>
    		</association>
    	</resultMap>
    	
    	<!-- 
    		一对一映射方式二:两次查询	
    	 -->
    	 <select id="getClasses2" parameterType="int" resultMap="ClassResultMap2">
    		select * from t_classes where cl_id=#{id}	 
    	 </select>
    	 
    	 <resultMap type="Classes" id="ClassResultMap2">
    	 	<id property="id" column="cl_id"/>
    		<result property="name" column="cl_name"/>
    		
    		<association property="counsellor" column="co_id" select="getCounsellor" >
    		</association>
    	 </resultMap>
    	 
    	 <!-- 
    		 resultType:SQL语句需要使用别名
    	  -->
    	 <select id="getCounsellor" parameterType="int" resultType="Counsellor">
    	 	select co_id id, co_name name from t_counsellor where co_id=#{id}
    	 </select>
    	 
    	 
    
    </mapper>  

    ④配置文件

    conf.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="db.properties"></properties>
    	
    	<!-- 为实体类配置别名 -->
    	<typeAliases>
    		<package name="com.geekymv.model"/>
    	</typeAliases>
    
    
    	<environments default="development">
    		<environment id="development">
    			<transactionManager type="jdbc" />
    			<dataSource type="POOLED">
    				<property name="driver" value="${driver}" />
    				<property name="url" value="${url}" />
    				<property name="username" value="${username}" />
    				<property name="password" value="${password}" />
    			</dataSource>
    		</environment>
    	</environments>
    	
    	<mappers>
    		<mapper resource="com/geekymv/model/ClassesMapper.xml" />
    	</mappers>
    	
    </configuration> 

    db.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybatis
    username=root
    password=root

    log4j.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
    		</layout>
    	</appender>
    	<logger name="java.sql">
    		<level value="debug" />
    	</logger>
    	<logger name="org.apache.ibatis">
    		<level value="debug" />
    	</logger>
    	<root>
    		<level value="debug" />
    		<appender-ref ref="STDOUT" />
    	</root>
    </log4j:configuration>
    

    ⑤工具类MyBatisUtil.java

    package com.geekymv.util;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class MyBatisUtil {
    	
    	public static SqlSession getSqlSession() {
    	
    		try {
    			//InputStream inputStream = MybatisUtil.class.getClassLoader().getResourceAsStream("conf.xml");
    			InputStream inputStream = Resources.getResourceAsStream("conf.xml");
    			SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
    			
    			SqlSession session = factory.openSession();
    			
    			return session;
    			
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    		return null;
    	}
    }
    

    ⑥测试类

    package com.geekymv.test;
    
    import org.apache.ibatis.session.SqlSession;
    
    import com.geekymv.model.Classes;
    import com.geekymv.util.MyBatisUtil;
    
    
    /**
     * 班级和辅导员是一对一的关联关系
     */
    public class MyTest {
    	
    	public static void main(String[] args) {
    		
    		SqlSession session = MyBatisUtil.getSqlSession();
    		
    //		String statement = "com.geekymv.model.ClassesMapper.getClasses";
    		
    		String statement = "com.geekymv.model.ClassesMapper.getClasses2";
    		
    		Classes cl = session.selectOne(statement , 2);
    		
    		session.close();
    		
    		System.out.println(cl);
    		
    	}
    
    }
    




    展开全文
  • 在线一对一辅导、网络家教,妈妈再也不用担心我交的钱被卷跑了!来吧,1号教室,在线一对一辅导、网络家教平台欢迎你!http://www.1jiaoshi.com,我开发的,啊哈!  最近又传出一些不好的信号:北京瀚林新思维...
  • 辅导网课怎么样 靠谱吗

    千次阅读 2020-12-09 05:19:29
    相信家长们应该都听说过猿辅导网课的吧,这家平台是一家在线教育平台,帮助孩子们课后学习辅导的,主要是中小学课程,当然英语培训也包括在内,那么猿辅导网课怎么样?猿辅导怎么样猿辅导是一家K12的辅导机构,跟新...
  • Python题目辅导-题目及其题目

    千次阅读 2021-01-07 14:50:08
    如果有兴趣学 Python,来这里一对一学习 Python,欢迎学习。可以直接私信我或者关注公众号:AI悦创,加我好友即可。 题目范围 作业 7: 6-2 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用...
  • 全书共8章:第l~5章按倒排的风格给出了所有的网络规划设计师真题试卷(2009年2012年,共5次),重点是考题所涉及的考点进行多角度、全方位的剖析讲解;第6~8章给出了3份闯关密卷,目的是为应试人员提供考前演练...
  • 转:管理者下属的4种辅导范式

    千次阅读 2018-09-17 21:41:40
    不要把发展谈话局限在一对一的范围,而是向整个团队开放。要鼓励团队成员之间互为教练,相互帮助和指导;并指出那些具备特别技能的成员,这样才能让更多人从中学习并获益;然后还要拓宽范围,鼓励下属与所属团队...
  • 不是标题党:猿辅导的实习薪资确实开到了800天,度娘截图如下: 博主第次听说猿辅导这家公司也是因为逆天的实习薪资,也正是因为这个原因博主才投递了简历,并且在拿到满意的offer之后依旧去参加了面试。仅仅...
  • 信息系统项目管理师考试辅导教程(第3版)

    千次下载 热门讨论 2013-01-29 20:12:39
    阅读《全国计算机技术与软件专业技术资格(水平)考试用书:信息系统项目管理师考试辅导教程(第3版)》,就相当于阅读了本详细的、带有知识注释的考试大纲。准备考试的人员可通过阅读《全国计算机技术与软件专业技术...
  • 2018.6 猿辅导前端开发面试

    千次阅读 2018-06-16 18:21:40
    每个面试官应该是要求限时在小时之内,我这次一共是经过了三轮面试官的洗礼(哈哈,次性进行完整个技术面,我还蛮喜欢这种方式的,减少了面试者频繁来面试的时间),下面就我记得的面试内容整理一下,能记多少...
  • Woebot是款Facebook Messenger聊天机器人,基于认知行为疗法(Cognitive Behavior Therapy,CBT )来帮助精神抑郁人群。这是个有基于3亿抑郁患者庞大目标用户群的市场。新科技的应用能在许多方面扩展心理治疗工具...
  • 微信:Jiabcdefh AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。...
  • jsp班主任辅导员管理系统

    千次阅读 2021-11-21 12:51:49
    班主任管理系统分三个身份登录,个学生,个管理员,个是教师。学生只能修改密码,而管理员可以修改任何信息。学生界面有 个人信息,查看看个人考勤,查看个人成绩,班主任界面有学生的考勤添加,学生的成绩添加....
  • 辅导技术岗算法题总结

    千次阅读 2020-07-02 11:08:13
    如下是去年秋招猿辅导的算法题总结,供大家参考。 1.栈排序 2.链表实现队列 3.最长连续递增序列 4.最长不连续序列 5.二维数组回行打印 6.无序数组构建棵二叉排序树 7.个数组实现两个栈 8.二叉树宽度 9.二叉树...
  • 个毕业一年程序员的感悟

    万次阅读 多人点赞 2018-07-22 00:01:04
    段看到朋友圈里的学弟学妹们开始晒毕业照,这一晃据我毕业也一年多了。走出了校园,工作了一年,见得多了,体会和感触也随之变多。所以,又开始习惯性地复盘过去的段经历,用现在不成熟的想法去回顾之前更不...
  • 然后就想做个自动提醒青年大学习的脚本,很早就写完了,已经实践了个学期,发现效果还行。 最近在封装成APP能让其他专业的同学也可以用。( 还在摸鱼 ) Language: python 第步抓包软件的安装(Charles Or ...
  • 蓝桥杯C++ AB组辅导

    千次阅读 多人点赞 2020-07-29 23:23:23
    今天在AcWing闲逛白嫖到了yxc老师的蓝桥杯C++ AB组辅导课的题单,正好快要蓝桥杯了,我准备每天花半个小时刷5道这个题单里的水题,练练,不然到时候我各种花里胡哨的算法学了堆,水题切不动就gg了。 一共86道水...
  • 蓝桥杯C++ AB组辅导课提单(Java解答版)、第讲 递归与递推92. 递归实现指数型枚举(简单)94. 递归实现排列型枚举(简单)717. 简单斐波那契(中等)95、费解的开关(中等)(状态压缩—枚举)93. 递归实现组合...
  • 优秀辅导员工作案例

    千次阅读 2019-09-26 07:26:10
    学生工作案例是包含解决某些疑难问题,某些原理、方法、策略运用的学生工作情境案例的描述;案例中渗透了导员们的学生工作理念,展现出辅导员在学生工作理论、方法指导下解决问题的方法与策略。 案例概述 陈某,女...
  • 广受学生信赖的"线代王",海文考研数学辅导"黄金团队"领头人,全国硕士研究生入学考试北京地区数学阅卷组组长,真正的"线代"第人,也被同学们亲切的称为"现代火车头"。 清华大学应用数学系教授,北京高教学会数学研究会...
  • 辅导:笔试题

    千次阅读 2019-09-16 23:36:35
    圈按照向下、向右、向上、向左的方向依次判断条件进行输出。 import math def send_fruits(seq, row, col): if not seq: return [] res = [] # print(row, row//2, math.ceil(row/2)) ...
  • 绩效辅导

    千次阅读 2015-05-27 13:56:49
    如何开展绩效辅导
  • ①2022考研数学李永乐线性代数辅导讲义pdf ... 那么听课这块,我的建议是这样的:如果你能够充分吸收李永乐老师强化班的内容,那么之听强化班的课是完全可以的,并且建议多听几遍。 如果觉得太难
  • 事件简介码仔昨天在逛微博的时候,看到了这样条微博:纳尼,现在12点睡觉都不正常了?从PDD的员工加班离世,到现在ZJ的12点睡觉算早,看来大厂之间的内卷真的是越来越厉害了。。。。到底什...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,046
精华内容 19,618
关键字:

一对一辅导表