zoukankan      html  css  js  c++  java
  • mybatis入门--配置

    1.导入jar包

     mybatis-x.x.x.jar 导入到lib目录下,

    如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:

    1 <dependency>
    2           <groupId>org.mybatis</groupId>
    3           <artifactId>mybatis</artifactId>
    4           <version>3.4.6</version><!--版本号 -->
    5       </dependency>
    6   </dependencies>

    2. XML 构建 SqlSessionFactory

    每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。

    从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。

    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="jdbc.properties">
            <property name="jdbc.username" value="root"/>
            <property name="jdbc.password" value="root"/>
        </properties>
        
        <!--单个别名配置        -->
        <typeAliases>
        <!--
            type:  全路径名
            alias:自定义的别名 (别名不区分大小写)
          -->
            <!-- <typeAlias type="cn.tz.pojo.User" alias="user"/> -->
            
            
            <!-- 包扫描的配置
                name:这个是你要扫描的包       
                别名:就是类的名称   不区分大小写
             -->
            <package name="cn.tz.pojo"/>
        </typeAliases>
        
        <!--跟spring整合的时候是会废除的  -->
        <environments default="test">
            <environment id="test">
            <!--使用的是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="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
        <!-- 加载配置文件 -->
        <mappers>
        <!-- 扫描 -->
            <package name="cn.xxx.dao"/>
        </mappers>
    </configuration>

    测试代码

    @Test
        public void test1() throws IOException{
            //编写sql语句
            //配置user映射文件
            //编写测试程序
            //写代码
            //加载配置文件
            //第一步   创建SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //第二部    加载核心配置文件
            InputStream inputStream = Resources.getResourceAsStream("config/SqlMapConfig.xml");
            //第三部      创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
            //第四部   SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //第五步  得到user对象
            User user = sqlSession.selectOne("getUserById", 1);
            // 第六步  打印
            System.out.println(user);
            //第七部    关闭资源
            sqlSession.close();
        }

     3.mapper映射的 SQL 语句

    <?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">
    <!--namespace 命名空间    用于隔离sql语句     -->
    <mapper namespace="user">
    <!-- id   语句的唯一表示
        parameterType  入参的类型
        resultType    返回结果的数据类型
        #{}       相当于jdbc的?号
           -->
        <select id="getUserById" parameterType="int" resultType="cn.xxx.pojo.User" >
            select
                `id`,
                `username`,
                `birthday`,
                `sex`,
                `address`
            from `user`
            where id =#{id}
        </select>
  • 相关阅读:
    函数节流和防抖
    记一次面试
    继承
    对象的几种创建方法
    对象的简单认识
    HTTP、HTTPS、SOCKS代理的概念(到底是什么意思?)
    Nginx 相关介绍(正向代理和反向代理区别)
    Markdown:怎么用?以及为什么要用Markdown?
    Google 凭什么要赔给 Oracle 88 亿?
    雷军:《我十年的程序员生涯》系列之三(失败的大学创业经历)
  • 原文地址:https://www.cnblogs.com/alomsc/p/10455423.html
Copyright © 2011-2022 走看看