核心配置(SqlMapConfig.xml)
核心配置(SqlMapConfig.xml)
1.properties这些是外部化的,可替代的属性,这些属性也可以配置在典型的 Java 属性配置文件中,或者通过 properties 元素的子元素来传递。例如:
<properties resource="db.properties">
<property name="username" value="root1"/>
</properties>
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java16?characterEncoding=UTF-8&useUnicode=true
username=root
password=root
比如:外部资源文件里和内部属性里有相同属性名的,读取顺序是先读取properties内部的,然后再读外部的(外部资源文件里的属性会覆盖内部的)
2.Settings高级配置,缓存等。
3.typeAliases配置类型别名 给类起一个代号。
3.1可以单个配置
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
......
</typeAliases>
这种方式配置麻烦
3.2整包配置:配置之后,包下的类引用时可以用类名首字母小写或大写。
<package name="com.neuedu.pojo"/>
3.3 对于普通的 Java 类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载的名字,要注意原生类型的特殊处理。
别名 映射的类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator
4.typeHandlers
无论是 MyBatis 在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成 Java 类型。我们不用配置。
5.objectFactory
MyBatis 每次创建结果对象新的实例时,它使用一个 ObjectFactory 实例来完成。如果参数映射存在,默认的 ObjectFactory 不比使用默认构造方法或带参数的构造方法实例化目标类做的工作多。我们不用配置。
6.plugins 配置插件
7.environments配置环境
environments下可以配置多个environment,也就是说可以配置多套数据库连接,现在启动哪套通过切换environments的default属性。
<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>
<environment id="deployment">
<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>
其中的transactionManager
JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如 Spring 或 JEE 应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将 closeConnection 属性设置为 false。
我们选择的jdbc
<transactionManager type="JDBC"/>
其中的dataSource有三种内建的数据源类型(也就是 type=”???”)我们选择的是POOLED:
UNPOOLED – 这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢。
POOLED – 这是 JDBC 连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。
JNDI – 这个数据源的实现是为了使用如 Spring 或应用服务器这类的容器,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
driver – 这是 JDBC 驱动的 Java 类的完全限定名(如果你的驱动包含,它也不是数据源类)。
url – 这是数据库的 JDBC URL 地址。
username – 登录数据库的用户名。
password – 登录数据库的密码。
8.mappers实际用四种配置
第一种 指定xml完整路径名
<mapper resource="sqlmap/User.xml"/>
第二种 指定xml文件在磁盘上的位置
<mapper url="E:\workspace\maven2\src\main\resources\sqlmap\User.xml"/>
第三种 class方式 属于mapper代理方式的配置,他需要满足四个条件才可以用。(接口与mapper之间有四种强制的绑定关系)
<mapper class="com.neuedu.mapper.UserMappper"/>
第四种:整包扫描,跟第三种一样,只有mapper代理方式可以用。
<package name="com.neuedu.proxydao"/>
第四种优势最明显。前三种需要单个文件配置,第四种是整包扫描(终级)