Mybatis学习一

1.介绍:

   MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。

   MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。

   MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和

   Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

 

2.操作流程

   SqlSessionFactory:

       每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,

      一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。

      SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

    

  xml文件构建:

      用xml文件构建SqlSessionFactory实例是非常简单的事情。

      推荐在这个配置中使用类路径资源(classpath resource),--这是默认读取的资源路径

      但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。

      MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

 

3.特点(动态语句功能)

   MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,

   您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。

   动态语句能够完全解决掉这些痛苦。尽管与动态SQL一起工作不是在开一个party,但是MyBatis确实能通过在任何映射SQL语句中

   动态SQL:

           动态SQL元素对于任何使用过JSTL或者类似于XML之类的文本处理器的人来说,都是非常熟悉的。

            在上一版本中,需要了解和学习非常多的元素,但在MyBatis 3 中有了许多的改进,现在只剩下差不多二分之一的元素。

            MyBatis使用了基于强大的OGNL表达式来消除了大部分元素。

 

4.环境配置

   jar:mysql 5.5, jdk 1.8, mybatis3.2.3.jar,mysql-connector-java-5.1.25-bin.jar

   第一步:搭建项目

   第二步:创建数据库表

   第三步:创建 Mybatis 配置文件

        设置 mybatis 配置文件: Configure.xml, 在 src/config 目录下建立此文件

           <?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="User" type="com.yiibai.mybatis.models.User" />
          </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://127.0.0.1:3306/yiibai" />
                    <property name="username" value="root" />
                    <property name="password" value="" />
                </dataSource>
              </environment>
         </environments>

       <!-映射的xml sql-->
       <mappers>
           <!-- // power by http://www.yiibai.com -->
          <mapper resource="com/yiibai/mybatis/models/User.xml" />
       </mappers>
  </configuration>

 注:这种配置就只是作为学习了,工作中不可能是这种配置的    第四步:创建实体类和映射文件        创建实体:             public class User {
               private int id;
               private String name;
               private String dept;
               private String phone;
               private String website;
            }        创建映射文件:            <?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.yiibai.mybatis.models.UserMapper">
                <select id="GetUserByID" parameterType="int" resultType="User">
                      select * from `user` where id = #{id}
                </select>
          </mapper>             配置文件解释说明:          第一:配置文件 Configure.xml 是 mybatis 用来建立 sessionFactory,                     里面主要包含了数据库连接相关内容,还有 java 类所对应的别名,                     比如:<typeAlias alias="User" type="com.yiibai.mybatis.models.User"/> 这个别名非常重要,                     在具体的类的映射中,比如:User.xml 中 resultType 就是对应这个。                     要保持一致,这里的 resultType 还有另外单独的定义方式。
            第二:Configure.xml 里面 的<mapper resource="com/yiibai/mybatis/models/User.xml"/>是包含要映射的类的 xml 配置文件。          第三:在User.xml 文件里面主要是定义各种 SQL 语句,以及这些语句的参数,以及要返回的类型等等。      第五步:测试        import java.io.Reader;
       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.yiibai.mybatis.models.*;       public class HelloWord {
          private static SqlSessionFactory sqlSessionFactory;
          private static Reader reader;           //类加载执行           static {
                try {
                    reader = Resources.getResourceAsReader("config/Configure.xml");
                    sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
                } catch (Exception e) {
                     e.printStackTrace();
                 }
          }          //类加载执行
         public static SqlSessionFactory getSession() {
                 return sqlSessionFactory;
           }
  
         public static void main(String[] args) {
               SqlSession session = sqlSessionFactory.openSession();
                try {
                     User user = (User) session.selectOne("com.yiibai.mybatis.models.UserMapper.GetUserByID", 1);
                     if(user!=null){
                          String userInfo = "名字:"+user.getName()+", 所属部门:"+user.getDept()+", 主页:"+user.getWebsite();
                          System.out.println(userInfo);
                      }
              } finally {
                      session.close();
               }
         }      }   学习来源:https://www.yiibai.com/mybatis/install_configure.html#article-start
上一篇:mybatis 详细学习记录


下一篇:Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required