zoukankan      html  css  js  c++  java
  • MyBatis入门学习笔记(一)

    一、什么是MyBatis?

     Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL、存储过程以及高级映射。

    二、hibernate和mybatis对比

    共同:采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,完成对数据库的持久化操作。

    区别:Hibernate是全自动化ORM的映射工具,底层已经封装好,可以不用写sql语句。Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL

    三、配置文件讲解

    mybatis配置文件mybatis.cfg.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>
    
      <!-- 引入外部配置文件 -->
      <properties resource="mysql.properties"></properties>
       
       <!-- 配置mybatis运行环境 -->
         <environments default="cybatis">
            <environment id="cybatis">
                <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
                <transactionManager type="JDBC" />
                
                <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
                <!-- POOLED 表示支持JDBC数据源连接池 -->
                <!-- UNPOOLED 表示不支持数据源连接池 -->
                <!-- JNDI 表示支持外部数据源连接池 -->
                <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="${jdbc.password}" />
                </dataSource>
            </environment>
        </environments> 
        
    </configuration>
    

      

    UserMapper.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.cy.mybatis.mapper.UserMapper">
    <!-- 自定义返回结果集 -->
       <resultMap id="userMap" type="UserBean">
            <id property="id" column="id" javaType="java.lang.Integer"></id>
            <result property="username" column="username" javaType="java.lang.String"></result>
            <result property="password" column="password" javaType="java.lang.String"></result>
            <result property="account" column="account" javaType="java.lang.Double"></result>
        </resultMap>
    <!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->    
    <!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys 
                方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->    
    <!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
    <!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值  -->
    
    
        <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
            insert into t_user (username,password,account) values (#{username},#{password},#{account})
        </insert>
        
        <update id="updateUser" >
          update t_user set username=#{username},password=#{password},account=#{account} where id=#{id}
        </update>
        
        <delete id="deleteUser" parameterType="int">
         delete from t_user where id=#{id}  
        </delete>
        
        <select id="selectUserById" parameterType="int" resultMap="userMap">
         select * from t_user where id=#{id}
        </select>
        
        <select id="selectAllUser" resultMap="userMap">
         select * from t_user
        </select>
        
        
    </mapper>
    

      

    需要为mybatis.cfg.xml里注册UserMapper.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>
    
      <!-- 引入外部配置文件 -->
      <properties resource="mysql.properties"></properties>
      
      
       <!-- 为JAVA Bean起类别名 -->
       <typeAliases >
            <!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名
            <typeAliase type="com.cy.mybatis.beans.UserBean" alias="UserBean"/> -->
            <!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->
            <package name="com.cy.mybatis.beans"/>
       </typeAliases>
       
       
       <!-- 配置mybatis运行环境 -->
         <environments default="cybatis">
            <environment id="cybatis">
                <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
                <transactionManager type="JDBC" />
                
                <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
                <!-- POOLED 表示支持JDBC数据源连接池 -->
                <!-- UNPOOLED 表示不支持数据源连接池 -->
                <!-- JNDI 表示支持外部数据源连接池 -->
                <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="${jdbc.password}" />
                </dataSource>
            </environment>
        </environments> 
        
        
        <mappers>
            <!-- 告知映射文件方式1,一个一个的配置
            <mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/>-->
            <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
            <package name="com/cy/mybatis/mapper"/>
        </mappers>
    </configuration>
    

      

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/yui66/p/9841778.html
Copyright © 2011-2022 走看看