失败,是正因你在距成功一步之遥的时候停住了脚步。
mybatis默认:mybatis-config.xml 不喜欢可以改
mybatis有默认顺序,不按顺序排列会报错,有些设置没有写,会自动被下一位顶上。
核心配置文件中的标签必须按照固定的顺序:
<configuration>
<properties />
<settings>settings>
<typeAliases>typeAliases>
<typeHandlers>typeHandlers>
<objectFactory>objectFactory>
<plugins>plugins>
<environments>
<environment>
<transactionManager />
<dataSource>dataSource>
environment>
environments>
<databaseIdProvider>databaseIdProvider>
<mappers>mappers>
configuration>
<configuration>configuration>
<properties resource="druid.properties"/>
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
properties>
优先读取properties 文件,当properties 没有的属性在读取配置文件中的属性。
druid.properties文件
创建properties文件,内容格式 前缀.key=value ,因为有可能引入多个properties文件,为了不会出现重名的key。
druid.driver=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/mybatis?userUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
druid.username=root
druid.password=root
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
在setting中添加,不需要再注入其他依赖,直接就能跑起来。
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
settings>
类型别名可为Java类型设置一个缩写名字。
<typeAliases>
<typeAlias alias="user" type="pers.tianyu.pojo"/>
typeAliases>
以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写
<typeAliases>
<package name="pers.tianyu.pojo"/>
typeAliases>
使用注解设置
@Alias("author")
public class Author {
...
}
MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。
你可以重写已有的类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。
每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。
默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。
如果想覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现。
MyBatis 可以配置成适应多种环境。
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
<environments default="development">
environments>
<environment id="development">
environment>
在 MyBatis 中有两种类型的事务管理器(也就是 type=“[JDBC|MANAGED]”):
<transactionManager type="JDBC">
<property name="skipSetAutoCommitOnClose" value="true"/>
transactionManager>
dataSource: 设置数据源
属性
<dependency>
<groupId>com.mchangegroupId>
<artifactId>c3p0artifactId>
<version>0.9.5.5version>
dependency>
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
import com.mchange.v2.c3p0.ComboPooledDataSource;
// 继承父类来构建新的数据源适配器
public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
public C3P0DataSourceFactory() {
this.dataSource = new ComboPooledDataSource();
}
}
<dataSource type="pers.tianyu.utils.C3P0DataSourceFactory">
<property name="driverClass" value="${c3p0.driver}"/>
<property name="jdbcUrl" value="${c3p0.url}"/>
<property name="user" value="${c3p0.username}"/>
<property name="password" value="${c3p0.password}"/>
dataSource>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.2.11version>
dependency>
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
// 继承父类来构建新的数据源适配器
public class DruidDataSourceFactory extends UnpooledDataSourceFactory {
public DruidDataSourceFactory() {
this.dataSource = new DruidDataSource();
}
}
<dataSource type="pers.tianyu.utils.DruidDataSourceFactory">
<property name="driverClassName" value="${druid.driver}"/>
<property name="url" value="${druid.url}"/>
<property name="username" value="${druid.username}"/>
<property name="password" value="${druid.password}"/>
dataSource>
MyBatis 可以根据不同的数据库厂商执行不同的语句。
告诉mybatis去哪里找映射文件
<mappers>
<package name="pers.tianyu.mapper"/>
mappers>
最终会被加载到同一目录下
注意点
步骤
进入文件模板
添加模板