• 中文
    • English
  • 注册
  • 查看作者
  • MyBatis:简单使用

    一.  创建数据库

    1.  创建数据库

    CREATE DATABASE demo;

    2.  创建数据表

    CREATE TABLE BOOK(
    BOOK_ID INT(6) PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(100),
    AUTHOR VARCHAR(100),
    PRICE DOUBLE(6,2)
    );

    3.  插入数据

    INSERT INTO BOOK (NAME,AUTHOR,PRICE) VALUES('西游记','吴承恩',9.9);
    INSERT INTO BOOK (NAME,AUTHOR,PRICE) VALUES('水浒站','施耐庵',19.9);

    二.   添加依赖

    Mybatis官网下载最新版本,解压后将根目录的文件添加到本地项目的lieb文件夹:

    MyBatis:简单使用

    接下来打开lib目录,可以看到下面的12个jar包:

    MyBatis:简单使用

    将上面的lib目录下的所有文件也添加到本地项目的lib文件夹

    接下来再将Mysql的驱动文件添加到本地项目的lib文件夹,到这里,本地项目的lib文件夹下一共有以下14个jar包:

    MyBatis:简单使用

    在进行下一步前,我们先创建一个Book的实体类:

    package io.zhangjia.entity;
    
    public class Book {
        /*建议严格遵守驼峰命名法*/
        private Integer bookId;
        private String name;
        private String author;
        private Double price;
    
        public Integer getBookId() {
            return bookId;
        }
    
        public void setBookId(Integer bookId) {
            this.bookId = bookId;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public Double getPrice() {
            return price;
        }
    
        public void setPrice(Double price) {
            this.price = price;
        }
    
        @Override
        public String toString() {
            return "Book{" +
                    "bookId=" + bookId +
                    ", name='" + name + '\'' +
                    ", author='" + author + '\'' +
                    ", price=" + price +
                    '}';
        }
    }

    三.  配置文件

    一共需要配置两个文件:mybatis-config.xml和项目名Mapper.xml,首先配置项目名Mapper.xml:

    1.   右击src,新建一个File:

    MyBatis:简单使用

    2.  输入文件名:BookMapper.xml,点击OK

    MyBatis:简单使用

    3.  编辑BookMapper.xml,添加以下内容:

    (注意:resultType是将每条查询结果封装成什么类型,比如Book类就是Book,即使查询全部的书,resultType也不应该是List<Book>,同理,比如List<Map<String,Object>>的resultType应该是map)

    <?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:命名空间,应该设置为数据层接口的限定名,简洁起见,这里以zhangjia为例-->
    <mapper namespace="zhangjia">
        <!--
            语句对象:
                id:是语句的唯一标识,不能重复,一般设置为数据层的方法名,同时建议数据层的方法不要重载
                resultType:将将每条查询结果封装成什么类型,比如下面我们将每个查询结果封装成一个Book的实体类,必须是全类名
        -->
    
          <select id="queryById" resultType="io.zhangjia.entity.Book">
        <!--  查询单条语句,和JDBC中不同,占位符不再使用? 而是使用#{字段名} -->
        SELECT * FROM BOOK WHERE BOOK_ID = #{BOOK_ID}
        </select>
        <!--  查询多条语句 -->
        <select id="queryAll" resultType="io.zhangjia.entity.Book">
            SELECT * FROM BOOK;
        </select>
      
    </mapper>

    如果你直接复制上面的代码,请将红框里的内容根据自己的项目详情替换:

    MyBatis:简单使用

    接下来配置mybatis-config.xml:

    1.   右击src,新建一个File:

    MyBatis:简单使用

    2.  输入文件名:mybatis-config.xml,点击OK

    MyBatis:简单使用

    3.  编辑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>
            <!--
                开启自动驼峰命名转换为数据库的命名方式,如果不开启,那么bookId将无法获取,一直是nul
            -->
            <settings>
                <setting name="mapUnderscoreToCamelCase" value="true"/>
            </settings>
        <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://localhost:3306/数据库名(注意是数据库名,不是数据表名)"/>
                    <property name="username" value="数据库用户名"/>
                    <property name="password" value="数据库密码"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
    <!--     如果有路径,需要这样配置:   <mapper resource="xxx/xxx/.../BlogMapper.xml"/>-->
            <mapper resource="xxx/xxx/.../项目名Mapper.xml"/>
        </mappers>
    </configuration>

    以我们的刚刚创建的数据库为例,则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>
        <!--
            开启自动驼峰命名转换为数据库的命名方式,如果不开启,那么bookId将无法获取,一直是nul
        -->
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        <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://localhost:3306/demo"/>
                    <property name="username" value="root"/>
                    <property name="password" value="zhangjia"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="BookMapper.xml"/>
    <!--   如果不是同级目录,需要这样配置: <mapper resource="xxx/xxx/.../BookMapper.xml"/>-->
        </mappers>
    </configuration>

    如果你直接复制上面的代码,请将红框里的内容根据自己的项目详情替换:

    MyBatis:简单使用

    四.  开启日志

    开启日志的步骤也非常简单,右击src,新建名为log4j.properties的文件后,添加以下内容即可:

    # Global logging configuration
    log4j.rootLogger=DEBUG, stdout
    #log4j.rootLogger=ERROR, stdout 如果不想开启DEBUG模式,可以将rootLogger设置为ERROR
    # MyBatis logging configuration...
    log4j.logger.org.mybatis.example.BlogMapper=TRACE
    # Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    MyBatis:简单使用

    五.  执行sql语句

    编写测试类,执行sql语句,其中:

     resource的地址应和

    package io.zhangjia.util;
    
    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 java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) throws IOException {
    //      从XML中构建SqlSessionFactory,也就是mybatis-config.xml文件的地址
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //       从sqlSessionFactory中获取SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
    /*      其中zhangjia是<mapper namespace="zhangjia">设置的命名空间
            queryById <select id="queryById"设置的语句唯一表示
            2是占位符,代表查询bookId = 2 的记录
            selectOne代表结果为单条
    */
            Object o = sqlSession.selectOne("zhangjia.queryById", 2);
            System.out.println("o = " + o);
    
    //           selectList代表查询结果为多条
            List<Object> objects = sqlSession.selectList("zhangjia.queryAll");
            for (Object ot : objects) {
                System.out.println("ot = " + ot);
    
            }
            sqlSession.close();
            inputStream.close();
        }
    }

  • 0
  • 0
  • 0
  • 2k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: