跳转至

入门的配置和使用

依赖的环境#

  1. jar包 mybatis 3.3.0 和 mysql-connector-java 5.1.37
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.3.0</version>
    </dependency>
        <dependency>
    <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.37</version>
    </dependency>
    
    1. 数据库,使用的是mysql

      创建数据库(mybatis20151125)
      创建表 user

      Create TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, userName varchar(50) DEFAULT NULL, userAge int(11) DEFAULT NULL, userAddress varchar(200) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; > 插入数据

      insert into user VALUES ('1', '111', '111', 'beijing');

创建的是一个Maven项目(Java工程)#

  • 项目结构图:

  • 项目文件的内容

  • Configuration.xml

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        <?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.sun.useMyBatis3.useMyBatis3.model.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/mybatis20151125"/>
                    <property name="username" value="root"/>
                    <property name="password" value="000000"/>
                    </dataSource>
                </environment>
            </environments>
    
            <!-- 对应的Mapper -->
            <mappers>
                <mapper resource="com/sun/useMyBatis3/useMyBatis3/model/User.xml"/>
            </mappers>
        </configuration>
    
  • User.java

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
        package com.sun.useMyBatis3.useMyBatis3.model;          
        public class User {
    
            private String id;
            private String userName;
            private String userAge;
            private String address;
    
            public String getId() {
                return id;
            }
            public void setId(String id) {
                this.id = id;
            }
            public String getUserName() {
                return userName;
            }
            public void setUserName(String userName) {
                this.userName = userName;
            }
            public String getUserAge() {
                return userAge;
            }
            public void setUserAge(String userAge) {
                this.userAge = userAge;
            }
            public String getAddress() {
                return address;
            }
            public void setAddress(String address) {
                this.address = address;
            }
        }
    
  • User.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
        <?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.sun.useMyBatis3.useMyBatis3.model.UserMapper">
            <select id="selectUserByID" parameterType="int" resultType="User">
                select * from `user` where id = #{id}
            </select>
        </mapper>
    
    • UserTest.java
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      package com.sun.useMyBatis3.useMyBatis3.test;
      
      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.sun.useMyBatis3.useMyBatis3.model.User;
      
      public class UserTest {
      
          private static SqlSessionFactory sqlSessionFactory;
          private static Reader reader;
      
          static {
              try{
                  //
                  reader = Resources.getResourceAsReader("Configuration.xml");
                  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      
          public static SqlSessionFactory getSqlSessionFactory(){
              return sqlSessionFactory;
          }
      
          public static void main(String [] args) {
              SqlSession sqlSession = getSqlSessionFactory().openSession();
              try{
                  User user = (User) sqlSession.selectOne("com.sun.useMyBatis3.useMyBatis3.model.UserMapper.selectUserByID",1);
                  System.out.println(user.getId());
                  System.out.println(user.getUserName());
                  System.out.println(user.getUserAge());
                  System.out.println(user.getAddress());          
              } finally{
                  sqlSession.close();
              }
          }
      }
      

以接口的方式配置#

  • 接口类 UserImpl.java

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    package com.sun.useMyBatis3.useMyBatis3.model.impl;
    
    import com.sun.useMyBatis3.useMyBatis3.model.User;
    /**
     * 以接口的方式调用
     * 2015年11月25日 下午10:55:51
     *
     */
    public interface UserImpl {
    
        public User selectUserByID(int id);
    
    }
    
  • User.xml namespace后面的内容要对应自己的接口

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    <?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和id确定了要执行的sql-->
    <mapper namespace="com.sun.useMyBatis3.useMyBatis3.model.impl.UserImpl">
        <select id="selectUserByID" parameterType="int" resultType="User">
            select * from `user` where id = #{id}
        </select>
    </mapper>
    
    • 测试类(UserTest.java)

      package com.sun.useMyBatis3.useMyBatis3.test;

      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.sun.useMyBatis3.useMyBatis3.model.User; import com.sun.useMyBatis3.useMyBatis3.model.impl.UserImpl;

      /* * 测试MyBatis * 2015年11月25日 下午10:11:47 * @author * /

      public class UserTest {

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      private static SqlSessionFactory sqlSessionFactory;
      private static Reader reader;
      
      static {
          try{
              //
              reader = Resources.getResourceAsReader("Configuration.xml");
              sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
      
      public static SqlSessionFactory getSqlSessionFactory(){
          return sqlSessionFactory;
      }
      
      public static void main(String [] args) {
          SqlSession sqlSession = getSqlSessionFactory().openSession();
          try{            
              UserImpl userImpl = sqlSession.getMapper(UserImpl.class);
              User user1 = userImpl.selectUserByID(1);
              System.out.println(user1.getAddress());
              System.out.println(user1.getUserName());
          } finally {
              sqlSession.close();
          }
      }
      

      }