2.平凡之路-初识MyBatis

2017-08-23  本文已影响0人  胖先森

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。[来自官方文档]

1.MyBatis的优点和缺点

2.MyBatis安装

首先我们需要声明一下iBatis和MyBatis都是一个组织开发,只是版本不相同而已,就想我们学习的Java的版本命名规则类似,实际上MyBatis就是iBatis的一个大版本号的提升。
下载地址:https://github.com/mybatis/mybatis-3/releases
官方文档:http://www.mybatis.org/mybatis-3/

MyBatis解压目录说明

3.MyBatis的环境搭建

(1) 新建Java项目

新建Java项目

(2) 新建MyBatis核心配置文件

个人建议将核心配置文件建立在mybatis-config.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>

</configuration>
    <!-- 配置数据库环境 -->
    <environments default="development">
        <environment id="development">
            <!-- 事务管理器:保证数据的完整性和一致性 -->
            <!-- 框架:默认情况下CUD操作需要手动提交事务 -->
            <transactionManager type="JDBC" />
            <!-- 使用的是连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/cy42_mss" />
                <property name="username" value="root" />
                <property name="password" value="shxt" />
            </dataSource>
        </environment>
    </environments>

百度Java如何实行连接池的原理?

    <mappers>
        <mapper resource="com/shxt/model/ShxtMapper.xml"/>
    </mappers>

(3) 新建MyBatis映射文件

<?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="命名空间,唯一的不能重复"> -->
<mapper namespace="shxt.cy42.mss">
  
</mapper>

目前我们使用的传统模式,那么namespace一般建议使用持久化类的全路径com.shxt.model.User这样的字符串保持一致,方便后面代码处理.
但是,我们现在没有持久化类,所以就是设置了一个简单的字符串

<!-- 定制SQL语句 -->
  <insert id="add01">
    INSERT INTO skill  (skill_name,num) VALUES ('JS',75)
  </insert>

(4) 测试代码

public class API的调用过程演示 {
    public static void main( String[] args ) {
        //读取核心配置文件的位置
        //InputStream is = Resources.getResourceAsStream("com/shxt/model/mybatis-config.xml");
        SqlSession sqlSession = null;
        try {
            //1.读取核心配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //2.创建SqlSession工厂
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            //3.获取SqlSession 
            //****** SqlSession完成所有的持久化操作CRUD
            sqlSession = sqlSessionFactory.openSession();
            //4.关键步骤: 定位执行SQL语句 重点重点重点
            //****如何定位  (namespace+"."+id)
            int row = sqlSession.insert("shxt.cy42.mss.add01");
            //5.针对于CUD操作需要手动提交事务
            sqlSession.commit();
            System.out.println("影响的行数:"+row);
        } catch (IOException ex) {
            ex.printStackTrace();
        }finally {
            //6.关闭资源
            if(sqlSession!=null){
                sqlSession.close();
            }
        }
    }

}
image.png
上一篇下一篇

猜你喜欢

热点阅读