一些小问题,不是很理解,所以请教老师一下

一些小问题,不是很理解,所以请教老师一下

1.<dataSource type="POOLED"> 这里的连接池与非连接池使用起来有什么区别呢

2.<property name="driver" value="com.mysql.jdbc.Driver"/> 这个Driver的作用是什么

3.sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); 为什么需要将reader读取到sqlSessionFactory中,sqlSessionFactory是干什么用的?

4.sqlSessionFactory.openSession(); 这里open出来的又是什么东西呢?与sqlSessionFactory有什么区别呢?

5.SqlSessionFactory,SqlSession,Connection的作用都是什么?

6.private int goods_id; 关于实体类中Goods类的命名,对于对应数据库的内容,一定要写为goodsId这样的形式吗?可以直接在数据库里面复制黏贴,将下划线带上吗?如示例代码这样。如此就不用去定义一下驼峰命名了,而且复制黏贴不容易出错

7.接第六个问题,一定需要Integer吗?int为什么不可以呢?

8.快速生成get,set方法的时候,如何全部选中,我每次鼠标一个个点很慢

9.resultType="com.imooc.mybatis.entity.Goods" 这段代码的作用是什么?将查询结果输出到实体类Goods中吗?

10.List<Goods> list=session.selectList("goods.selectAll");这段代码中的selectList是什么意思?有什么作用?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2022-06-19 15:57:24

同学你好,1、1)UNPOOLED不使用连接池是直接new了一个连接返回。

    2)pooled是利用了连接池的思想,它内部的原理大致是这样的:

        a、首先先判断空闲连接池内有没有空闲连接,如果还有则给你返回一个空闲连接。

        b、如果没有空闲连接,则去活动连接池内看看还有没有位置,如果还有,则new一个连接给你返回

        c、如果活动连接池没有位置了,则返回在活动连接池使用最久的连接。意思就是给你返回一个在活动连接池内待最久的连接。

2、driver表示是数据库驱动。

3、SqlSessionFactory是MyBatis框架中的一个接口,主要负责MyBatis框架初始化操作及为开发人员提供SqlSession对象,就可以进行增删改查了。

4、

    1)openSession() ,表示创建了一个新的session 对象,当你使用完了以后就要必须调用close 方法来关闭当前的session。

    2)openSession()方法是由SqlSessionFactory接口提供的方法,如下所示:

https://img1.sycdn.imooc.com//climg/62aebb910930a02e05120142.jpg

5、

    1)SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory可以创建SqlSession对象(openSession()方法

    2)SqlSession是MyBatis的关键对象,SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行被映射的SQL语句。

    3)Connection是MyBatis在第一次执行SQL操作时,在获取Statement时,会去获取数据库链接。

6、是可以用下划线方式的,不过建议同学使用驼峰的方式,更符合java的代码规范。

7、是可以使用int的,不过建议使用Integer。因当使用int时,如果该属性无法被赋值时,使用的默认值是0。而当使用Integer时,如果该属性无法被赋值时,使用的默认值是null。

8、同学可以在idea中先选中第一个,然后按住Ctrl+Shift键选中最后一个,就可以全部选中了。

9、resultType表示该sql返回值类型是什么。在此处表示会返回Goods类型的数据。

10、selectList()方法是查询方法,会将数据添加到一个List集合中并返回。在此处就是通过selectList()方法调用goods.selectAll,将查询到的数据赋值给list集合。

建议:不建议同学将问题全部提交到一个问答中,这样不能快速的为同学解答。建议同学将不同的问题单独提交一个问答。

祝学习愉快!

  • 提问者 Star3327752 #1

    谢谢老师的建议,我感觉一次把问题问完了要快些,问题太多的话容易忘记看。

    2022-06-19 16:28:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师