1.2(Mybatis学习笔记)Mybatis核⼼配置⼀、Mybatis核⼼对象
1.1SqlSeesionFactory
SqlSessionFactory主要作⽤是创建时SqlSession。
SqlSessionFactory可通过SqlSessionFactoryBuild构建,
调⽤器build⽅法,⽅法参数为配置⽂件的输⼊流。
String resource = "l";
//获取配置⽂件输⼊流
InputStream inputStream = ResourceAsStream(resource);
//通过配置⽂件输⼊流构建sqlSessionFactory,
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
1.2SqlSession
SqlSession负责程序与持久层之间的交互操作。
SqlSession中包含了所有执⾏SQL语句的⽅法,
且该对象是线程不安全的。
SqlSession主要⽅法:
<T> T lectOne(String statement);
执⾏查询⽅法,statement代表mapper⽂件中<lect>元素对应的id.
⽅法结束会返回⼀个对象。
<T> T lectOne(String statement,Object parameter);
执⾏查询⽅法,statement代表mapper⽂件中<lect>元素对应的id,
parameter代表查询语句所需的参数。
<E> List<E> lectList(String statement, Object parameter)
与上列函数功能相同,返回的是⼀个List对象。
int inrt(String statement)
statement表⽰mapper⽂件中<inrt>元素的id,执⾏插⼊语句后,返回受影响的⾏数。
int inrt(String statement, Object parameter)
parameter代表插⼊语句所需的参数对象,结果返回受影响函数。
int update(String statement)
执⾏更新语句,statement为mapper⽂件中<update>元素的id,返回受影响函数。
int update(String statement, Object parament);
执⾏更新语句,parameter为语句所需参数,返回受影响⾏数。
int delete(String statement)//执⾏删除语句,statement为<delete>元素id,返回受影响⾏数 int delete(String statement, Object parameter);执⾏删除语句,parameter为语句所需参数。
void commit()//提交事务
voidrollBack();//回滚事务。
⼆、mybatis配置元素
2.1<configuration>
<configuration>根元素,mybatis的其他配置元素都需要在该元素类配置。
2.2<properties>
<properties>:通过外部的配置动态替换内部的配置。
例如:
2.2.1在src⽬录下新建⼀个db.properties
#dataSource
#Sat Mar 02 13:31:50 CST 2019
jdbc.url=jdbc\:mysql\://localhost\:3306/mybatis
jdbc.sql.jdbc.Driver
jdbc.urname=root
jdbc.password=123456
2.2.2 在l中配置<properties>
<properties resource = "db.properties">
2.2.3 修改l中的DataSource配置
<dataSource type = "POOLED">
<property name = "driver" value = "${jdbc.driver}"/>
<property name = "url" value = "${jdbc.url}"/>
<property name = "urname" value = "${jdbc.urname}"/>
<property name = "password" value = "${jdbc.password}"/>
</dataSource>
2.3<ttings>
使⽤时指定属性name和value即可,具体如下:
<ttings>
<tting name="cacheEnabled" value="true"/>
<tting name="lazyLoadingEnabled" value="true"/>
<tting name="multipleResultSetsEnabled" value="true"/>
...
</ttings>
2.4<typeAlias>:为配置⽂件中的java了设置别名。
<typeAlias>
<typeAlias> alias = "ur" type = "Ur" />
</typeAlias>
将Ur起⼀个别名uesr。如果alias缺省,则会⾃动将类名⾸字母⼩写后作为别名。
<typeAlias>
<package name = ""/>
</typeAlias>
⾃动扫描指定包下所有类,⾃动将类名⾸字母为⼩写作为别名。
例如Ur的别名为ur。
可以使⽤注解指定别名
@Alias("author")
public class Author {
...
}
mybatis默认别名:
2.5<typeHandlers>
2.6<objectFactory>
每次MyBatis创建结果对象的新实例时,都会使⽤ObjectFactory实例来执⾏此操作。
2.7<plugins>
MyBatis允许在映射语句的执⾏过程中的某⼀点进⾏拦截调⽤。
2.8<environments>