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>
    

      

  • 相关阅读:
    二叉树后序遍历
    二叉树中序遍历
    二叉树的前序遍历
    字符串转整数
    DVWA靶场——File Inclusion(文件包含)
    DVWA-CSRF
    DVWA--COMMAND INJECTION
    DVWA练习一 暴力破解
    pikachu--SSRF
    pikachu---XXE
  • 原文地址:https://www.cnblogs.com/yui66/p/9841778.html
Copyright © 2011-2022 走看看