zoukankan      html  css  js  c++  java
  • MyBatis-01(HelloWorld)

    一、MyBatis简介

      MyBatis是一个半自动的ORM框架,把编写SQL语句交给程序员,优化SQL语句。

      Hibernate是一个全自动的ORM框架,从Javabean---数据库数据记录,自动生成SQL语句,不利于SQL的优化。

      在GitHub下载mybatis所需版本(jar包,官方文档)。https://github.com/mybatis/mybatis-3/releases

    二、Hello World

    编写一个简单的MyBatis程序。

    1.环境搭建

    在idea中创建一个java工程

    在项目中导入所需jar包:

    步骤:File-->Project Structure-->Modules-->Dependencies中手动导入jar包,点击+号,选择JARs or directories...

    2.代码

     1)建JavaBean:Employee.java

    package com.atguigu.mybatis.bean;
    
    /**
     * @Author 谢军帅
     * @Date2019/11/10 17:06
     * @Description
     */
    public class Employee {
        private Integer id;
        private String lastName;
        private String email;
        private String gender;
    }

     2)建配置conf文件:

    然后右键Mark Directory as --> Sources Root(类路径),下边放配置文件

    a. log4j.xml:打印日志。

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
       <param name="Encoding" value="UTF-8" />
       <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) 
    " />
       </layout>
     </appender>
     <logger name="java.sql">
       <level value="debug" />
     </logger>
     <logger name="org.apache.ibatis">
       <level value="info" />
     </logger>
     <root>
       <level value="debug" />
       <appender-ref ref="STDOUT" />
     </root>
    </log4j:configuration>

    b. mybatis.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://localhost:3306/mybatis_sgg"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 将我们写好的sql 映射文件一定要注册到全局配置为中-->
        <mappers>
            <mapper resource="EmployeeMapper.xml"/>
        </mappers>
    </configuration>

    c. EmployeeMapper.xml:SQL映射配置文件。

    <?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.atguigu.mybatis.EmployeeMapper">
    
        <!--
            namespace:名称空间
            id:唯一标识
            resultType:返回值类型
            #{id}:从传递过来的参数中取出id值
        -->
    
        <select id="selectEmp" resultType="com.atguigu.mybatis.bean.Employee">
          select id,last_name lastName,email,gender from tbl_employee where id = #{id}
        </select>
    </mapper>

    3)测试Test

    package com.atguigu.mybatis.test;
    
    import com.atguigu.mybatis.bean.Employee;
    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;
    
    /**
     * @Author 谢军帅
     * @Date2019/11/10 17:46
     * @Description
     */
    public class MyBatisTest {
    
        /*
        * 1、根据全局配置文件(全局配置文件)创建一个SqlSessionFactory对象
        *       有数据源一些运行环境的信息
        * 2、sql映射文件;配置了每一个SQL,以及SQL的封装规则等。
        * 3、将SQL映射文件注册在全局配置文件中
        * 4、写代码:
        *   1)根据全局配置文件得到SqlSessionFactory;
        *   2)使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
        *       一次SqlSession就是代表和数据库的一次会话,用完关闭。
        *   3)使用sql的唯一标识来告诉Mybatis执行哪个SQL。
        * */
    
        public static void main(String[] args) throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
            //2、获取SqlSession实例,能直接执行已经映射的sql语句
            //sql的唯一标识
            //执行SQL要用的参数
            SqlSession sqlSession =     sqlSessionFactory.openSession();
    
            try {
                Employee employee = sqlSession.selectOne("com.atguigu.mybatis.EmployeeMapper.selectEmp",1);
    
                System.out.println(employee);
                System.out.println(employee.getLastName());
            }finally {
                sqlSession.close();
            }
        }
    }

    注意:当JavaBean的字段和数据库表中的字段不一样时,MyBatis映射不了,这里在查询数据库时可以使用别名。

  • 相关阅读:
    python模块--time模块
    python模块--如何相互调用自己写的模块
    Animating Views Using Scenes and Transitions
    fragment 切换
    android textview 设置text 字体
    android intent 5.1
    android EditView ime
    animation of android (4)
    animation of android (3)
    animation of android (2)
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/11831992.html
Copyright © 2011-2022 走看看