mybatis核心配置文件的配置
<?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>
    <!-- 加载properties配置文件 -->
    <properties resource="db.properties"></properties>
    
    <!-- mybatis起别名 -->
    <typeAliases>
        <!-- 
            type: 起别名的类型
            alias: 别名,别名没有大小写区分
        <typeAlias type="cn.itcast.pojo.User" alias="user"/>
        -->
        
        <!-- 
            批量扫描包,批量起别名
                别名: 就是类名
          -->
        <package name="cn.itcast.pojo"/>
    </typeAliases>
    
    
    <!-- 和spring整合后 environments配置将废除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理 -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url"
                    value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <!-- 
            mapper标签:引入映射文件
                url: 必须要写绝对路径
                resource: 相对路径
                
        -->
        <mapper resource="User.xml"/>
        
        <!-- 
            Class属性: 指定接口的全路径名称
                1: 接口文件和映射文件必须在同一个包下
                2: 接口文件和映射文件必须名称相同,除了后缀名
        <mapper class="cn.itcast.mapper.UserMapper"/>
        -->
        
        <!-- 
        批量加载映射文件
            1: 接口文件和映射文件必须在同一个包下
            2: 接口文件和映射文件必须名称相同,除了后缀名
        -->
        <package name="cn.itcast.mapper"/>
        
    </mappers>
    
</configuration>
 
<mapper namespace="test">:相当于一个名称如果有多个实体类里面有多个一样的方法,为了方便区分
CRUD
    <select id="findById" parameterType="int" resultType="cn.itcast.pojo.User">
        select * from user where id = #{id}
    </select>
    <!-- 模糊查询性张的 -->
    <select id="findLikeusername" parameterType="string" resultType="cn.itcast.pojo.User">
        select * from user where username like '%张%'
    </select>
    
    <insert id="insertUser" parameterType="cn.itcast.pojo.User">
        insert into user(username,sex,address,birthday) values(#{username},#{sex},#{address},#{birthday})
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select LAST_INSERT_ID()
        </selectKey>
    </insert>
    
    <update id="updateUser" parameterType="cn.itcast.pojo.User">
        update user set username = #{username}  where id = #{id};
    </update>
    
    <delete id="deleteUser" parameterType="cn.itcast.pojo.User">
        delete from user where id = #{id}
    </delete>
    使用动态代理的方式开发
    <mapper namespace="cn.itcast.mapper.UserMapper">:namespace必须是接口的全限定类名
    而且xml配置文件必须的跟接口的名称保持一致
 
核心配置文件的dtd约束
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
配置文件的dtd约束
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 
 
 
5.6.1. #{}和${}
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
 
${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。
 
 
5.6.2. parameterType和resultType
parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。
resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中
 
5.6.3. selectOne和selectList
selectOne查询一条记录,如果使用selectOne查询多条记录则抛出异常:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 3
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:70)
selectList可以查询一条或多条记录。
 
 
自定义别名
    <typeAliases>
        <!-- 单个别名定义 -->
        <typeAlias alias="user" type="cn.itcast.mybatis.pojo.User" />
        <!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) -->
        <package name="cn.itcast.mybatis.pojo" />
        <package name="其它包" />
    </typeAliases>
 
    必须在property上面和datasource下面
    mybatis自带的别名
    别名    映射的类型
        _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    这个是比double还要大的,如果银行开发double是容不下这么大的数字的就用这个
        bigdecimal    BigDecimal 这个是比上面那个还要大
        map    Map
        
        
        7.4.1. <mapper resource=" " />
            使用相对于类路径的资源(现在的使用方式)
            如:<mapper resource="sqlmap/User.xml" />
 
        7.4.2. <mapper class=" " />
                使用mapper接口类路径
                如:<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>
 
                注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
 
7.4.3. <package name=""/>
                注册指定包下的所有mapper接口
                如:<package name="cn.itcast.mybatis.mapper"/>
                注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mybatis的知识点的更多相关文章

  1. mybatis的知识点总结

    1.接口绑定:两种方法,基于注解或者基于xml文档mapper,但要注意mapper的namespace要与接口路径完全一致. 2.orm格式转换:通过设置resultMap和ResultType,将 ...

  2. Mybatis常用知识点总结

    1. #{}和${}的区别是什么? ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc ...

  3. Mybatis基础知识点

    1. Mybatis框架优缺点 优点: 1. 易于上手和掌握. 2. sql写在xml里,便于统一管理和优化. 3. 解除sql与程序代码的耦合. 4. 提供映射标签,支持对象与数据库的orm字段关系 ...

  4. Mybatis核心知识点

    一.初识Mybatis框架 mybatis是一个持久层的框架,是apache下的顶级项目. mybatis托管到goolecode下,再后来托管到github下(https://github.com/ ...

  5. Mybatis相关知识点(二)

    Mybatis解决jdbc编程的问题 1. 数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据连接池,使用 ...

  6. Mybatis相关知识点(一)

    MyBatis入门 (一)介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code, ...

  7. 2019-04-04 Mybatis学习知识点

    1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...

  8. mybatis入门(三):mybatis的基础特性

    mybatis的知识点: 1.mybatis和hibernate本质区别和应用场景 hibernate:是一个标准的ORM框架(Ojbect relation mapper对象关系映射).入门门槛较高 ...

  9. 2020面试还搞不懂MyBatis?快看看这27道面试题!(含答案和思维导图)

    前言 MyBatis是一个优秀的持久层ORM框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statem ...

随机推荐

  1. vue.js初学,笔记1,安装

    最近学习vue.js,下面是笔记: 说明:因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事.来自官网:"这 ...

  2. Scala入门系列(十):函数式编程之集合操作

    1. Scala的集合体系结构 Scala中的集合体系主要包括(结构跟Java相似): Iterable(所有集合trait的根trait) Seq(Range.ArrayBuffer.List等) ...

  3. 基于 HTML5 Canvas 的 3D 压力器反序列化

    在实际应用中,我觉得能够通过操作 JSON 文件来操作 3D 上的场景变化是非常方便的一件事,尤其是在做编辑器进行拖拽图元并且在图元上产生的一系列变化的时候,都能将数据很直观地反应给我们,这边我们简单 ...

  4. DOM操作整理

    DOM获取 1. 直接获取 document.getElementById("box_id") 通过ID获取 document.getElementsByName("my ...

  5. TCP的十一种状态与三次握手分析(有图)

    我们知道TCP是面向连接的,我们只知道有连接断开,其实内部还有一些比较复杂的状态.去了解各个状态之间的切换有助于我们更加深入的了解TCP.下面我们就来分析各个状态. 1.如下图示(图源百度)图中显示出 ...

  6. 黑马day16 jquery&amp;内容过滤选择器&amp;可见度选择器

    内容过滤选择器的过滤规则主要体如今它所包括的子元素和文本内容上 .:contains(text) 使用方法: $("div:contains('John')")    返回值  集 ...

  7. java多线程编程核心技术——全书总结

    这本书大致上是看完了,不过第七章结束的匆匆忙忙很不好. 不过好在还是看完了,勉强算吧. 回想这一年,挺感慨的,心里一直谋求着进步,却很难行动起来. 仔细想想确实啊,想一直进步肯定要牺牲自己的业余时间, ...

  8. 以通配符(%)开始的like字符串,走索引

    在对oracle的SQL优化过程中经常会遇到[like'%abc']破坏索引的问题,但是如果真有此类需求,该如何在不破坏索引的基础上进行查询呢. [sql] view plain copy sys@m ...

  9. 分享一个开源免费、目前最好的API接口管理平台----eoLinker

    一.概况 eoLinker 是目前业内领先.国内最大的在线 API 接口管理平台,提供自动生成 API 文档.API 自动化测试.Mock 测试.团队协作等功能,旨在解决由于前后端分离导致的开发效率低 ...

  10. nginx日常维护常用命令

    http://www.jb51.net/article/47750.htm 一.简明nginx常用命令 1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. ...