mybatis_2

Mybatis主配置文件详解

配置文件的作用

  1. mybatis一共有两个配置文件(都是.xml文件):一个是映射文件mapper,一个是主配置文件文件mapper.
  2. 主配置文件中可以注册db.properties属性文件(也就是配置数据源的文件),方便使用.
  3. 注册实体类的全限定类名的别名
  4. 配置MyBatis的运行环境,即数据源与事务管理器.
  5. 注册映射文件Mapper.

Mybatis配置文件实现注册db.properties属性文件

------db.properties
jdbc.driver=com.mysql.jdbc.Driver
//当连接数据库时候出现时区异常的时候后面加上这句话就好了:
------useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis_project?useSSL=false
jdbc.username=root
jdbc.password=root

------mybatis.xml 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--注册配置文件,告诉mybatis去哪里找配置文件-->
    <properties resource="db.properties"></properties>
    
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--去配置文件中读取jdbc的信息-->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--注册映射文件-->
        <mapper resource="com/ctgu/dao/StudentDaoMapper.xml"/>
    </mappers>
</configuration>

Mybatis主配置文件注册实体类的全限定类名的别名

<typeAliases>
        <typeAlias type="com.ctgu.bean.Student" alias="student">
        </typeAlias>
    </typeAliases>
    
    这样子以后就可以用`student`代替Student这个类了,一般我们的别名就是类名首字母小写.
------还有一种写法:因为我们有时候会创建很多bean,所以要写很多行,很麻烦,我们可以把这个交给mybatis去做
<typeAliases>
        <package name="com.ctgu.bean"></package>
    </typeAliases>
这样之后,bean包下面的所有类,mybatis都会给他取个别名
名称就是类名首字母小写,比如StudentMap,那么它的默认别名就是studentMap.

Mybatis主配置文件配置MyBatis的运行环境
我们在开发的过程中,可能会有很多的数据库给我们使用,比如我们自己电脑上会有一个,服务器会有一个,客户也会有一个,我们不能在哪里用就去改配置文件吧,这也蛮麻烦,所以Mybatis支持多数据源配置哈哈哈哈,就是可以同时配置多个数据库,这个没连接上连接另一个

当你想切换数据库的时候,修改<environments default="development">default的内容为对应数据源的id即可
比如我想用test的数据源,我就讲其修改为<environments default="test">,它就会去使用测试数据库了.

-------environments标签中environment 标签中的内容就是在配置数据库环境
-------可以有多个environment 标签配置多个数据源
-------注意在db.properties中记得配置不同数据源的参数就可以了

<environments default="development">
        <!--开发环境-->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--去配置文件中读取jdbc的信息-->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>

        <!--测试环境-->
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--去配置文件中读取jdbc的信息-->
                <property name="driver" value="${test.driver}"/>
                <property name="url" value="${test.url}"/>
                <property name="username" value="${test.username}"/>
                <property name="password" value="${test.password}"/>
            </dataSource>
        </environment>
        
    </environments>

Mybatis主配置文件注册映射文件Mapper

------就是下面的内容,就表示注册mapper.xml映射文件
------此时mybatis就知道了sql语句在哪里了,他就会去里面找.

<mappers>
        <!--注册映射文件-->
        <mapper resource="com/ctgu/dao/StudentDaoMapper.xml"/>
    </mappers>

注意: 我们在写配置文件的时候,一般都写全限定类名,就是包名.类名的形式

好了配置文件的基本东西就知道了,这里接着写一个小东西

Mybatis获取主键

在前一篇博客mybatis-1中,我在创建数据库的时候使主键id自增,我们就不需要手动输入主键,当插入数据库之后我们就能知道这条数据的id,其实我们可以在数据插入到数据库前获取主键 ,即这样做:

------resultType表示返回的时int类型的数据
------keyProperty表示要返回的属性是id
------order="AFTER"表示获取的是"假如成功插入后"的数据
		此时就算你在事务提交之前获取id,它的id值也会是`如果事务提交之后`的id
------order="BEFORE"表示获取还没插入前的id,那么一定是0
		即你不管在事务提交前还是事务提交后获取id,都是0
		
<selectKey resultType="int" keyProperty="id" order="AFTER">
            select @@identity
        </selectKey>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值