MyBatis常见接口和jar包介绍

来源:互联网 发布:随机数抽奖软件 编辑:程序博客网 时间:2024/06/08 06:04

MyBatis常见接口和jar包介绍

1、mybatis的jar包

        mybatis的核心包只有一个mybatis-3.x.0.jar,另外还有一些【可选】的依赖包(日志、代理等所需要的),在下载的压缩包中可以找到.
     下载地址:https://github.com/mybatis/mybatis-3/releases
2、 mybatis框架中一般需要俩种文件:
        第一种:mybatis的配置文件: mybatis-config.xml,其中包括数据库连接信息,类型别名等等
            特点:
                名字一般是固定的
                位置是src下面
            示例:
           
 <?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="Student" type="com.briup.pojo.Student" />                </typeAliases>                <environments default="development">                  <environment id="development">                    <transaction Manager type="JDBC" />                     <dataSource type="POOLED">                    <!--                    <property name="driver" value="com.mysql.jdbc.Driver" />                      <property name="url" value="jdbc:mysql://localhost:3306/test" />                      -->                    <property name="driver" value="oracle.jdbc.driver.OracleDriver" />                      <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:XE" />                      <property name="username" value="test" />                      <property name="password" value="test" />                    </dataSource>                  </environment>                </environments>                <mappers>                  <mapper resource="com/briup/pojo/StudentMapper.xml" />                </mappers>              </configuration>   
        第二种:mybatis的映射文件:XxxxxMapper.xml,这个xml文件中包括Xxxx类所对应的数据库表的各种增删改查sql语句
            特点:
                名字一般为XxxxMapper.xml,Xxxx是对应类的名字
                位置不固定,一般放到一个专门的package里面
            实例:
         
   <?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.briup.pojo.StudentMapper">                <resultMap type="Student" id="StudentResult">                  <id property="id" column="id" />                  <result property="name" column="name" />                  <result property="email" column="email" />                </resultMap>                <select id="findAllStudents" resultMap="StudentResult">                      SELECT * FROM STUDENTS                </select>                <select id="findStudentById" parameterType="int" resultType="Student">                   SELECT ID AS STUDID, NAME, EMAIL                        FROM STUDENTS WHERE ID=#{Id}                </select>                <insert id="insertStudent" parameterType="Student">                   INSERT INTO STUDENTS(ID,NAME,EMAIL)                        VALUES(#{id },#{name},#{email})                </insert>              </mapper>      
3、 mybatis中的映射接口XxxxMapper.java(对XxxxMapper.xml中的sql语句进行映射)
        mybatis中除了必须的jar包、各种xml配置文件之外,一般还需要有调用sql语句执行的接口XxxxMapper.java
        示例:      
 public interface StudentMapper{            List<Student> findAllStudents();              Student findStudentById(Integer id);              void insertStudent(Student student);          } 
        注意:接口中的方法的名字和XML文件定义的SQL映射语句的名称要相同
        同时我们不需要去实现该接口,因为mybatis中提供了相应的方式在运行期间动态生成该接口的实现类对象(动态代理技术,spring框架中会详些讲解动态代理).
4、mybatis中的SqlSession接口和sqlSessionFactory接口
        SqlSession接口的实现类对象是mybatis中最重要的一个对象,我们可以使用该对象动态获得XxxxMapper.java接口的实现类对象,然后就可以调用到XxxxMapper.java接口中方法所映射的sql语句(在xml文件中配置的sql语句)。
        sqlSessionFactory接口的实现类对象是一个工厂对象,专门负责来产生SqlSession对象的
        例如:      
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");          SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession sqlSession = sqlSessionFactory.openSession();                 //第一种执行sql语句的方式  通过XxxxMapper接口的实现类对象来调用        //动态获得XxxxMapper接口的实现类        StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);        studentMapper.insertStudent(new Student(1,"tom","123@.qq.com"));                 //第二种执行sql语句的方式  执行调用XxxxMapper.xml中写好的sql语句        //也可以【不通过】Mapper接口执行映射的SQL        //然而,使用 Mapper接口是最佳实践 ,但我们也能够通过以下方式实现,使用全限定名调用接口        //sqlSession.selectOne("com.briup.pojo.StudentMapper.findStudentById",1);


2 0