> Java > java지도 시간 > 본문

Java에서 MyBatis의 빠른 시작 예제 분석

PHPz
풀어 주다: 2023-05-10 08:16:07
앞으로
1475명이 탐색했습니다.

    1. MyBatis란

    간단히 말하면 MyBatis는 JDBC 개발을 단순화하기 위한 탁월한 지속성 계층 프레임워크입니다. MyBatis 자체는 Apache의 오픈 소스 프로젝트로, 원래는 iBatis라고 불렸으며 2010년에 프로젝트가 Google Code로 이동되어 MyBatista로 이름이 변경되었습니다. 2013년에 프로젝트가 GitHub로 이전되었습니다. MyBatis是一款优秀的持久层框架,用于简化JDBC开发。MyBatis本身是Apache的一个开源项目,期初叫做iBatis,2010年这个项目前移到google code,并改名为MyBatista。在2013年该项目迁移到GitHub。

    概念中的持久层怎么理解?指将数据保存到数据库的那一层代码。在海量的代码中,为了保证每一块代码的职责单一,把同数据库操作的代码叫做持久层。同时,JavaEE三层架构中,表现层负责页面的展示,业务层负责逻辑的处理,而持久层就是负责将数据存储到数据库中。

    什么是框架?框架是指一个半成品的软件,是一套可重用的,通用的,软件基础代码模型,同时,在框架基础之上进行开发大量的节省了成本,而且更加的规范,通用且扩展性较强。

    2. JDBC存在的缺点

    既然我们使用MyBatis来简化JDBC开发,那么JDBC究竟存在什么缺点呢?

    硬编码

    首先在注册驱动,获取链接的时候,字符串信息如果发生变动,例如密码,此时需要手动修改。其次,在定义sql语句时候,使用字符串同样使得代码的维护性变差。

    操作繁琐

    当我们手动设置参数和手动设置结果集时,存在着操作繁琐的问题。

    下面JDBC使用的一段代码做展示:

    Java에서 MyBatis의 빠른 시작 예제 분석

    3.Mybatis简化JDBC开发

    既然JDBC开发存在硬编码,操作繁琐的缺点,那么怎么解决这些问题呢?首先我们把字符串写到单独的配置文件中,解决JDBC硬编码的问题,其次,可以采用一种方法来自动完成JDBC操作繁琐的代码。于是,我们使用MyBatis来简化JDBC开发。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。

    퍼시스턴스 레이어 개념을 어떻게 이해하나요

    ? 데이터베이스에 데이터를 저장하는 코드 레이어를 말합니다. 대규모 코드에서는 각 코드 조각이 단일 책임을 갖도록 하기 위해 동일한 데이터베이스에서 작동하는 코드를 지속성 계층이라고 합니다. 동시에 JavaEE 3계층 아키텍처에서는 프리젠테이션 계층이 페이지 표시를 담당하고 비즈니스 계층이 논리 처리를 담당하며 지속성 계층이 데이터베이스에 데이터를 저장하는 일을 담당합니다.

    프레임워크란 무엇인가요

    ? 프레임워크는 반제품 소프트웨어를 의미하며 동시에 재사용이 가능한 범용 소프트웨어 코드 모델 집합입니다. 프레임워크는 많은 비용을 절약할 수 있으며, 비용을 절감하고, 더욱 표준화되고, 다재다능하며 확장성이 뛰어납니다.

    2. JDBC의 단점
    1. MyBatis를 사용하여 JDBC 개발을 단순화하는데, JDBC의 단점은 무엇인가요?

    2. 하드 코딩

    3. 먼저 드라이버를 등록하고 링크를 받을 때 비밀번호 등 문자열 정보가 변경되면 수동으로 수정해야 합니다. 둘째, SQL 문을 정의할 때 문자열을 사용하면 코드 유지 관리가 덜 쉬워집니다.

      복잡한 연산

      매개변수를 수동으로 설정하고 결과셋을 수동으로 설정하게 되면 연산이 번거로워지는 문제가 있습니다.
    4. 다음은 JDBC에서 데모용으로 사용하는 코드입니다.

      Java's MyBatis Quick Start 예제 분석
    5. 3. Mybatis는 JDBC 개발을 단순화합니다

      JDBC 개발에는 하드 코딩과 번거로운 작업이라는 단점이 있는데, 이러한 문제를 어떻게 해결합니까? 첫째, JDBC 하드 코딩 문제를 해결하기 위해 문자열을 별도의 구성 파일에 작성합니다. 둘째, 지루한 JDBC 연산 코드를 자동으로 완성하는 방법을 사용할 수 있습니다. 따라서 우리는 JDBC 개발을 단순화하기 위해 MyBatis를 사용합니다. MyBatis는 거의 모든 JDBC 코드와 매개변수 설정 작업, 결과 세트 획득 작업을 제거합니다.
    6. 예: 구성 파일에 매개변수 정보를 쓰고 나중에 하드 코딩 문제를 해결하기 위해 사용할 때 직접 읽습니다

      <environment id="test">
                  <transactionManager type="JDBC"/>
                  <dataSource type="POOLED">
                      <!--数据库连接信息-->
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                      <property name="username" value="root"/>
                      <property name="password" value="1234"/>
                  </dataSource>
              </environment>
          </environments>
      로그인 후 복사

      시중에는 지속성 계층 프레임워크에 대한 선택이 많이 있지만 MyBatis 국내 시장에서는 선택의 폭이 넓습니다.
    4. 마이바티스 빠른 시작 | 실제 프로젝트에 대한 자세한 설명

    사용자 테이블의 모든 데이터를 빠르게 쿼리하는, 즉 사용자 테이블의 데이터를 사용자에게 입력하는 것으로 마이바티스를 시작합니다. 그런 다음 서로를 컬렉션에 넣어 작업을 완료합니다. 다음 단계를 통해 작업을 완료하세요:
    1. 사용자 테이블 생성, 데이터 추가
    2. 모듈 생성, 좌표 가져오기
    3. MyBatis 코어 구성 파일 작성, 연결 정보 교체를 통해 하드 코딩된 문제 해결
    4. SQL 매핑 파일 작성, SQL 문 통합 관리, 코딩 문제 해결

    코드 작성

    Java에서 MyBatis의 빠른 시작 예제 분석

    코드 작성 시 다음 단계를 따르세요.

    POJO 클래스 정의

    핵심 구성 파일을 로드하고 sqlSessionFactory 개체 가져오기Java에서 MyBatis의 빠른 시작 예제 분석

    sqlSession 개체 가져오기 및 sql 문 실행

    Release resources

    전체 프로젝트 구조 표시:

    다음 데모에서는 자세한 데모를 사용하여 빠르게 시작합니다. MyBatis:

    사용자 테이블 생성, 데이터 추가:

    create database mybatis;
    use mybatis;
    drop table if exists tb_user;
    create table tb_user(
    	id int primary key auto_increment,
    	username varchar(20),
    	password varchar(20),
    	gender char(1),
    	addr varchar(30)
    );
    INSERT INTO tb_user VALUES (1, &#39;小张&#39;, &#39;abc&#39;, &#39;男&#39;, &#39;北京&#39;);
    INSERT INTO tb_user VALUES (2, &#39;小李&#39;, &#39;123&#39;, &#39;女&#39;, &#39;天津&#39;);
    INSERT INTO tb_user VALUES (3, &#39;小美&#39;, &#39;456&#39;, &#39;女&#39;, &#39;上海&#39;);
    로그인 후 복사

    여기에서는 MySQL 데이터베이스가 사용되며, 데이터베이스 시각화 도구로 navicat이 사용됩니다.

    idea에서 모듈 생성 및 좌표 가져오기:

    idea에서 새 프로젝트를 클릭하고 빌드 시스템으로 Maven을 선택한 다음 프로젝트 이름을 입력하고(여기서는 MyBatis-demo가 사용됨) 그룹 ID와 아티팩트 ID를 설정합니다. 그리고 만들기를 클릭하세요. 그런 다음 종속성을 가져오고 다음 종속성 코드를 pom.xml 파일에 배치합니다.

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>x.x.x</version>
    </dependency>
    로그인 후 복사

    그런 다음 mysql 종속성, junit 좌표 및 logback 좌표를 가져오고 logback.xml 구성 파일을 리소스에 붙여넣습니다. 작성: 🎜
    <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
                <scope>test</scope>
            </dependency>
            <!-- 添加slf4j日志api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.20</version>
            </dependency>
            <!-- 添加logback-classic依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
            <!-- 添加logback-core依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
    로그인 후 복사
    🎜 🎜 MyBatis 핵심 구성 파일: 🎜🎜🎜MyBatis-demo/src/main/resources에 새로운 구성 파일 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>
        <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:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="abc123"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!--加载sql的映射文件-->
            <mapper resource="UerMapper.xml"/>
        </mappers>
    </configuration>
    로그인 후 복사
    🎜🎜SQL 매핑 파일을 작성하세요: 🎜🎜🎜MyBatis-demo/src/main/resources에 SQL 매핑 파일 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="test">
        <select id="selectAll" resultType="com.example.pojo.User">
            select * from tb_user;
        </select>
    </mapper>
    로그인 후 복사
    🎜MyBatis의 핵심 구성 파일을 수정하여 SQL 매핑 파일을 로드합니다. 🎜
      <mappers>
            <!--加载sql的映射文件-->
            <mapper resource="UserMapper.xml"/>
      </mappers>
    로그인 후 복사
    🎜🎜위 작업을 완료한 후 코딩을 시작할 수 있습니다. 먼저 POJO 클래스를 정의합니다. 🎜🎜
    package com.example.pojo;
    public class User {
        private Integer id;
        private String username;
        private String password;
        private String gender;
        private String addr;
        public Integer getId() {
            return id;
        }
        public String getUsername() {
            return username;
        }
        public String getPassword() {
            return password;
        }
        public String getGender() {
            return gender;
        }
        public String getAddr() {
            return addr;
        }
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username=&#39;" + username + &#39;\&#39;&#39; +
                    ", gender=&#39;" + gender + &#39;\&#39;&#39; +
                    ", addr=&#39;" + addr + &#39;\&#39;&#39; +
                    &#39;}&#39;;
        }
    }
    로그인 후 복사
    🎜🎜핵심 구성 파일을 로드하고 sqlSessionFactory 개체를 얻습니다. 🎜🎜🎜먼저 MyBatisDemo.java를 만들어야 합니다. 파일을 작성하고 기본 메소드를 추가하십시오. 🎜
    public class MyBatisDemo {
        public static void main(String[] args) throws IOException {
        	//加载MyBatis核心配置文件
            String resource = "mybatis.config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }
    }
    로그인 후 복사

    获取sqlSession对象,执行sql语句:

    //获取SqlSession对象,用它来执行sql
            SqlSession sqlSession=sqlSessionFactory.openSession();
            //执行sql
            List<User> users = sqlSession.selectList("test.selectALL");
            System.out.println(users);
    		//释放资源
            sqlSession.close();
    로그인 후 복사

    到这里我们就完成了整个项目的构建,接下来我们运行程序,可以看到,我们成功的查询到tb_user中的数据!

    Java에서 MyBatis의 빠른 시작 예제 분석

    위 내용은 Java에서 MyBatis의 빠른 시작 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:yisu.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿