Mybatis实现查一个查所有,核心配置部分标签学习

Mybatis实现查一个查所有

配置文件

<select id="selectAll" resultType="com.hkd.mybatis.bean.Car">
        select id,car_num as carNum,brand,guide_price as guidePrice,produce_time as produceTime,car_type as carType
        from t_car
    </select>

这里有两个重点
1.resultType 的值要是实体类的全路径名称告诉mybatis要封装的实体类,不然就会报错
2.这里的查询语句字段一定要起一个别名,且别名要和实体类中的属性名相同,不然mybatis在封装实体类的时候,会找不到从数据库中查询到的相应字段。
查所有同上,将where后面语句去掉即可条件去掉即可。

mybatis核心配置文件标签学习

1.< environments default=“development”> < environment id=“development”>

这个标签是用来配置数据库的,默认为id为development的数据库,在下面可以自己添加< environment id=“mvc”>标签,并把想使用环境id改为自己新增的。

2. 关于SQL Mapper的namespace

< mapper namespace=“org.mybatis.example.BlogMapper”> namespace后面的空间名可以自己随意起,在SQL Mapper配置⽂件中标签的namespace属性可以翻译为命名空间,这个命名空间主要是为了防⽌sqlId冲突的。
实际上,本质上,mybatis中的sqlId的完整写法:
namespace.id

3.< transactionManager type=“JDBC”/>

transactionManager:配置事务管理器
type属性:指定事务管理器具体使⽤什么⽅式,可选值包括两个
JDBC:使⽤JDBC原⽣的事务管理机制。底层原理:事务开启
conn.setAutoCommit(false); …处理业务…事务提交conn.commit();
MANAGED:交给其它容器来管理事务,⽐如WebLogic、JBOSS等。如果没有管理事务的
容器,则没有事务。没有事务的含义:只要执⾏⼀条DML语句,则提交⼀次。

4.< dataSource type=“POOLED”>

dataSource:指定数据源
type属性:⽤来指定具体使⽤的数据库连接池的策略,可选值包括三个。

UNPOOLED:采⽤传统的获取连接的⽅式,虽然也实现Javax.sql.DataSource接⼝,但是
并没有使⽤池的思想。
property可以是:
driver 这是 JDBC 驱动的 Java 类全限定名。
url 这是数据库的 JDBC URL 地址。
username 登录数据库的⽤户名。
password 登录数据库的密码。
defaultTransactionIsolationLevel 默认的连接事务隔离级别。
defaultNetworkTimeout 等待数据库操作完成的默认⽹络超时时间(单位:毫秒)

POOLED:采⽤传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实
现。
property可以是(除了包含UNPOOLED中之外):

<!--最⼤连接数-->
 <property name="poolMaximumActiveConnections" value="3"/>
 <!--最多空闲数量-->
 <property name="poolMaximumIdleConnections" value="1"/>
 <!--强⾏回归池的时间-->
 <property name="poolMaximumCheckoutTime" value="20000"/>
 <!--这是⼀个底层设置,如果获取连接花费了相当⻓的时间,连接池会打印状
态⽇志并重新尝试获取⼀个连接(避免在误配置的情况下⼀直失败且不打印⽇志),默认值:20000
毫秒(即 20 秒)。-->
 <property name="poolTimeToWait" value="20000"/>

poolMaximumActiveConnections:最⼤的活动的连接数量。默认值10

poolMaximumIdleConnections:最⼤的空闲连接数量。默认值5

poolMaximumCheckoutTime:强⾏回归池的时间。默认值20秒。

poolTimeToWait:当⽆法获取到空闲连接时,每隔20秒打印⼀次⽇志,避免因代码配置有误,导致傻等。(时⻓是可以配置的)

最⼤的活动的连接数量就是连接池连接数量的上限。默认值10,如果有10个请求正在使⽤这10个连接,
第11个请求只能等待空闲连接。
最⼤的空闲连接数量。默认值5,如何已经有了5个空闲连接,当第6个连接要空闲下来的时候,连接池会
选择关闭该连接对象。来减少数据库的开销。
需要根据系统的并发情况,来合理调整连接池最⼤连接数以及最多空闲数量。充分发挥数据库连接池的
性能。【可以根据实际情况进⾏测试,然后调整⼀个合理的数量。】

JNDI:采⽤服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到
DataSource是不⼀样。如果不是web或者maven的war⼯程,JNDI是不能使⽤的。
property可以是(最多只包含以下两个属性):
initial_context 这个属性⽤来在 InitialContext 中寻找上下⽂(即,
initialContext.lookup(initial_context))这是个可选属性,如果忽略,那么将会直接从
InitialContext 中寻找 data_source 属性。
data_source 这是引⽤数据源实例位置的上下⽂路径。提供了 initial_context 配置时会
在其返回的上下⽂中进⾏查找,没有提供时则直接在 InitialContext 中查找。

POOLED中几个配置的测试

在这里插入图片描述
在这里插入图片描述

上面配置中设置的是连接池中最多3个连接对象,而for循环中需要四个连接对象,由运行结果可以看出在等待20秒后强行收回一个连接对象,并提供给新的请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只呆小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值