mybatis入门

mybatis-config.xml  

MyBatis 配置文件的 configuration 标签主要包括:

configuration 配置
properties 属性
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
databaseIdProvider 数据库厂商标识
mappers 映射器

configuration
    properties--配置文件可以用于dataSource里面使用,可以用url或者resource指定路径,可以有property子标签
    typeAliases--设置实体类的别名package子标签,然后再mapper.xml中可以直接使用类名,不用全名
    environments--设置连接池,事务等
    mappers--使用的mapper文件在哪mapper子标签的resource属性和url属性

<package name="com.shiyanlou.mybatis.mapper" />
<mapper class="com.shiyanlou.mybatis.mapper.UserMapper"/>
这两种方法需要将 mapper 接口类名和 mapper.xml 映射文件名称保持一致,且在一个目录中

此外由于IDEA maven项目默认不会把src下除java文件外的文件打包到classes文件夹下,需要在maven的pom中增加配置如下

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
    </build>

XxxMapper.xml

映射文件包含的顶级元素:

cache:给定命名空间的缓存配置。
cache-ref:其他命名空间缓存配置的引用。
resultMap:描述如何从数据库结果集中来加载对象。
sql:可被其他语句引用的可重用语句块。
insert:映射插入语句
update:映射更新语句
delete:映射删除语句
select:映射查询语句

mapper标签 namespace指定mapper类
resultMap--指定返回的map,当数据库中的字段与实体类的字段名称不一致时可以使用这种方法,也可以在具体额查询语句中使用as引入别名

resultMap 的子元素包括:
constructor:用来将结果注入到一个实例化好的类的构造方法中
    idArg: ID 参数,标记结果作为 ID
    arg:注入到构造方法的一个普通结果
id: 一个 ID 结果,标记结果作为 ID
result:注入到字段或 JavaBean 属性的普通结果--都有column和property属性的
association:复杂的类型关联,多个结果合成的类型
    嵌入结果映射:结果映射自身的关联,也可以引用一个外部结果映射
collection:复杂类型的集 也可以引用一个外部结果映射
discriminator:使用结果值来决定使用哪个结果集
    case:基本一些值的结果映射,也可以引用一个外部结果映射

select 返回时可以使用 resultType 或 resultMap,但不能同时使用

useGeneratedKeys="true" keyProperty="id"这个属性可以在插入的时候生成主键

useGeneratedKeys、keyProperty 和 keyColumn 仅对 insert 和 update 有用。同时只有数据库支持自增长主键字段(比如 MySQL、SQL Server)才可以设置 useGeneratedKeys="true",像 Oracle 则不支持自增长 id,如果设置 useGeneratedKeys="true" 就会报错。

$和#的区别

一般用#号
$是字符串拼接的,且括号里面必须写value。但是如果传入参数是列名的话必须用$.
模糊查询的时候#直接用,而$需要加单引号。因为是拼接。
一些sql的内联函数也可以在这个时候使用,中文字符串排序可以使用这个方法
order by CONVERT(chineseColumnName USING gbk)

XxxMapper

接口类

使用方法

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值