zoukankan      html  css  js  c++  java
  • MyBatis学习笔记

    1.MyBatis介绍

            MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
           每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
           用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

    2.MyBatis快速入门

    (1)所需主要jar包(可忽略版本)

        mybatis-3.3.0.jar -- MyBatis

        mysql-connector-java-5.1.7-bin.jar -- mysql驱动

    (2)搭建测试工程,例如

     

    (3)MyBatis配置文件说明

       mybatiseConfig.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>
        <!-- 注册实体类 -->
        <typeAliases>
            <typeAlias alias="UserInfo" type="com.demo.model.UserInfo"/>
        </typeAliases>
        
        <!-- 数据库配置 -->
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息(个人配置信息) -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/demo" />
                    <property name="username" value="root" />
                    <property name="password" value="ymb@123" />
                </dataSource>
            </environment>
        </environments>
    
        <!-- 注册sql映射文件 -->
        <mappers>
            <mapper resource="com/demo/dao/mapper/UserInfo.xml"/>
        </mappers>
    </configuration>

     (4)sql映射文件配置说明

        UserInfo.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.demo.dao.UserMapper">
        <!-- 根据id获取用户信息 -->
        <select id="selectUserInfo" parameterType="int" resultType="UserInfo">
            SELECT
                id AS id,
                name AS userName,
                pass_word AS passWord,
                email AS email
            FROM
            tbl_demo_user_info
            WHERE id = #{id}
        </select>
        
        <!-- 获取所有用户信息 -->
        <select id="selectUserInfoList" resultType="UserInfo">
            SELECT
                id AS id,
                name AS userName,
                pass_word AS passWord,
                email AS email
            FROM
            tbl_demo_user_info
        </select>
    </mapper>

    (5)实体类

        UserInfo.java

    package com.demo.model;
    
    import lombok.Data;
    
    /**
     * 用户信息实体类
     * 
     * @author Super Yu
     * @version 2017.03.22
     */
    @Data
    public class UserInfo {
        
        private int id;
        
        private String userName;
        
        private String passWord;
        
        private String email;
    
    //    @Override
    //    public String toString() {
    //        return "UserInfo [id=" + id + ", userName=" + userName + ", passWord=" + passWord + ", email=" + email + "]";
    //    }
        
    }

    (6)测试类

      TestTestMyBatis.java

    package com.demo.test;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import com.demo.model.UserInfo;
    
    public class TestMyBatis {
        public static void main(String[] args) {
            //mybatis配置文件路径
            String resource = "conf/mybatiseConfig.xml";
            Reader reader = null;
            SqlSession session;
            
            try {
                //加载mybatis配置文件
                reader = Resources.getResourceAsReader(resource);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //构建sqlSession的工厂
            SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
            //创建能执行映射文件中sql的sqlSession
            session = sqlMapper.openSession();
            
            //按条件查询
            UserInfo userInfo = session.selectOne("selectUserInfo", 1);
            
            //查询所有
            List<UserInfo> userInfoList = session.selectList("selectUserInfoList");
            
            System.out.println(userInfo.toString());
            System.out.println(userInfoList.toString());
        }
    
    }

    (7)结果输出

    UserInfo(id=1, userName=蔚, passWord=123456, email=yy@163.com)
    [UserInfo(id=1, userName=蔚, passWord=123456, email=yy@163.com), UserInfo(id=2, userName=yu1, passWord=123, email=123@.com), UserInfo(id=3, userName=yu2, passWord=123456, email=yy@163.com)]

     (8)数据库

  • 相关阅读:
    CSS3实战:让我们尽情的圆角吧
    IE9、 Firefox、Safari, Chrome的CSS3圆角属性
    css清除浮动的几种方法整理
    display:inline-block的深入理解
    CSS display 属性详解
    ul 、ol li 继承原有样式的问题
    CSS的继承性
    CSS文档流与块级元素和内联元素(文档)
    HTML5 中的块级链接
    常用icon以及color颜色RGB值和对应颜色效果图
  • 原文地址:https://www.cnblogs.com/super-yu/p/7191257.html
Copyright © 2011-2022 走看看