1.Mybatis - 搭建

作者: 风云雄霸天下123456 | 来源:发表于2017-10-28 17:23 被阅读5次

参考

  1. Mybatis 官方
  2. MyBatis学习总结(一)——MyBatis快速入门

安装

  • 说明
    1. 基于Maven
  • 步骤
    • 安装包pom
      <dependencies>
        <!-- Mysql基础 -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.44</version>
        </dependency>
        <!-- Mybatis基础 -->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.5</version>
        </dependency>
      </dependencies>
      
    • 设置配置文件conf.xml
      • 路径
        src/main/resources/conf.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>
            <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/db" />
                        <property name="username" value="username" />
                        <property name="password" value="password" />
                    </dataSource>
                </environment>
            </environments>
        
            <!-- mappers加载 -->
            <mappers>
                <!-- 注册userMapper.xml文件,
                userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->
                <mapper resource="userMapper.xml"/>
            </mappers>
        
        </configuration>
        
    • 第一个实例
      • User.java
        package com.mingwang.simpleapp;
        
        /**
         * @author gacl
         * users表所对应的实体类
         */
        public class User {
        
            //实体类的属性和表的字段名称一一对应
            private int id;
            private String name;
            private int age;
        
            public int getId() {
                return id;
            }
        
            public void setId(int id) {
                this.id = id;
            }
        
            public String getName() {
                return name;
            }
        
            public void setName(String name) {
                this.name = name;
            }
        
            public int getAge() {
                return age;
            }
        
            public void setAge(int age) {
                this.age = age;
            }
        
            @Override
            public String toString() {
                return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
            }
        }
        
      • userMapper.xml
        • 路径
          src/main/resources/userMapper.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">
          <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
          例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
           -->
          <mapper namespace="userMapper">
              <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
              使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
              resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
              User类就是users表所对应的实体类
              -->
              <!--
                  根据id查询得到一个user对象
               -->
              <select id="getUser" parameterType="int"
                      resultType="com.mingwang.simpleapp.User">
                  select * from users where id=#{id} limit 1
              </select>
          </mapper>
          
      • Test.java(可运行)
        package com.mingwang.simpleapp;
        
        import org.apache.ibatis.session.SqlSession;
        import org.apache.ibatis.session.SqlSessionFactory;
        import org.apache.ibatis.session.SqlSessionFactoryBuilder;
        
        import java.io.InputStream;
        
        /**
         * Created by mingwang on 2017/10/28.
         */
        public class Test {
        
            public static void main(String [] args) {
        //        System.out.println("Hello ");
                test();
            }
        
            public static void test()
            {
                //mybatis的配置文件
                String resource = "conf.xml";
                //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
                InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
                //构建sqlSession的工厂
                SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
                //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
                //Reader reader = Resources.getResourceAsReader(resource);
                //构建sqlSession的工厂
                //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
                //创建能执行映射文件中sql的sqlSession
                SqlSession session = sessionFactory.openSession();
                /**
                 * 映射sql的标识字符串,
                 * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
                 * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
                 */
                String statement = "userMapper.getUser";//映射sql的标识字符串
                //执行查询返回一个唯一user对象的sql
                User user = session.selectOne(statement, 10);
                System.out.println(user);
            }
        }
        

相关文章

网友评论

    本文标题:1.Mybatis - 搭建

    本文链接:https://www.haomeiwen.com/subject/iljspxtx.html