首页 > 其他 > 详细

Mybatis学习笔记

时间:2018-09-03 12:33:12      阅读:188      评论:0      收藏:0      [点我收藏+]

1、Mybatis简单入门

/**

 * 一、mabatis是一个持久层框架,是apache下的顶级项目

 * mybatis让开发者专注于sql中,通过mybatis提供的映射方式

 *      自由灵活生成(半自动化,大部分需要开发者编写sql)满足需要的sql语句

 * mybatis可以将向preparedStatement中的输入参数自动进行输入映射,

 *      将查询结果集灵活映射成Java对象(输出映射)

 *

 * 二、SqlMapConfig.xml(mybatis的全局配置文件)    配置mybatis的运行环境

 *      配置了数据源,事务等mybatis运行环境

 * 配置映射文件(配置sql语句)

 * mapper.xml(映射文件)

 *

 * 三、SqlSessionFactory会话工厂

 * 作用:创建SqlSession

 *

 * SqlSession(会话)

 * 作用:操作数据库(发出sql增删改查)

 *

 * Executor(执行器)

 * 作用:SqlSession内部通过执行器操作数据库

 *                                    POJO(Plain Ordinary Java Object)简单的Java对象,普通的JavaBeans

 * mapperd statement(底层封装对象)                输入参数类型:Java简单类型,hashmappojo自定义

 * 作用:对数据库存储封装,包括sql语句,输入参数、输出结果类型

 *

 * mysql

 *

 * 四、Mybatis的运行原理(执行流程)

 *      1、创建mybatis的全局配置文件

 *      2、通过配置文件创建会话工厂SqlSessionFactory

 *      3、根据会话工厂创建会话SqlSession,一个接口,面向用户即程序员的接口

 *      4、SqlSession会话操作数据库,内部通过执行器(也是一个接口:基本执行器,缓存执行器)

 * 操作数据库

 *      5、mapped statement(底层封装对象)

 * @author 陌上花开

 *

 */

 

Mybatis:

       1、mybatis配置文件SqlMapConfig.xml

       2、mybatis核心:

              mybatis输入映射

              mybatis输出映射

       3、mybatis的动态sql

Ibatis:

 

2、环境搭建:(通过实例:根据id查找数据库信息)

              1、创建数据库,并在eclipse中创建与之对应的JavaBean       User.java

private int userId;

    private String userName;

              2、导入jar包

              3、建立mybatis的配置文件SqlMapConfig.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>

    <!-- 和spring整合后environments配置將移除 -->

    <environments default="development">

        <environment id="development">

            <!-- 使用jdbc事物管理,事物控制由mybatis進行 -->

           <transactionManager type="JDBC" />

            <!-- 数据库连接池,由mybatis管理 -->

           <dataSource type="POOLED">

               <property name="driver" value="com.mysql.jdbc.Driver" />

               <property name="url" value="jdbc:mysql://localhost:3306/travel?characterEncoding=utf-8" />

               <property name="username" value="root" />

               <property name="password" value="123456" />

           </dataSource>

        </environment>

    </environments>

    <!-- 加载映射文件 -->

    <mappers>

        <mapper resource="sqlmap/User.xml"/>

    </mappers>

 

</configuration>

              4、创建sqlmap文件夹,在其文件夹下创建数据库表与sql语句的映射配置文件User.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">

 

<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离

注意:使用mapper代理方法开发,namespace有特殊重要的作用

-->

<mapper namespace="test">

    <!-- 在映射文件中配置很多sql语句 -->

    <!-- 通过select执行数据库查询

    id:标识映射文件中的sql,称为statement的ID

            将sql语句封装到mappedStatement对象中

     #{}标识一个占位符号

     parameterType:指定输入参数的类型

     #{userId}:其中的userId表示接收输入的参数,参数名就是userId

     如果输入参数是简单类型,#{}中的参数名可以任意,可以是value或其他名称

    

     resultType:指定sql输出结果所映射的Java对象类型

        select指定resultType表示将单条记录所映射成的Java对象

    -->

    <select id="findUserById" parameterType="int" resultType="com.fzy.mybatis.po.User">

        select * from users where userId = #{userId}

    </select>

</mapper>

              5、在mybatis配置文件中,加载映射配置文件

<mappers>

        <mapper resource="sqlmap/User.xml"/>

    </mappers>

              6、为了看到整个执行的过程,可以配置一个log4j.properties让log4j生效

# Global logging configuration

 

# 在开发环境下日志级别要设置称DEBUG,生产环境设置成info或error

 

log4j.rootLogger=DEBUG, stdout

# MyBatis logging configuration...

 

#log4j.logger.org.mybatis.example.BlogMapper=TRACE

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

 

# Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

              7、通过配置文件创建会话工厂SqlSessionFactory

//mybatis配置文件

        String resource = "SqlMapConfig.xml";

//SqlSession sqlSession;

        //得到配置文件名

        inputStream = Resources.getResourceAsStream(resource);   

        //创建会话工厂,传入mybatis的配置文件信息

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

 

              8、根据会话工厂创建会话SqlSession(一个接口,面向用户即程序员的接口,作用是操作数据库(发出sql增删改查))

//通过工厂得到SqlSession

        SqlSession sqlSession = sqlSessionFactory.openSession();

 

              9、SqlSession操作数据库,内部通过执行器(executor:一个接口,基本执行器,缓存执行器)操作数据库

              10、mappedStatement(底层封装对象),作用:对数据库存储封装,包括sql语句,输入参数,输出结果类型。

//通过SQLSession操作数据库

        //第一个参数:映射文件中statement的id,等于=namespace.statement的id

        //第二个参数:指定和映射文件中所匹配的parameterType类型的参数

        // sqlSession.selectOne结果是与映射文件所匹配的resultType类型的对象

        User user = sqlSession.selectOne("test.findUserById", 1);

System.out.println(user);

        //释放资源

        sqlSession.close();

Mybatis学习笔记

原文:https://www.cnblogs.com/fzywhy/p/9577832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!