zoukankan      html  css  js  c++  java
  • mybatis之第一个mybatis程序(一)

    1、新建一个java项目,并在该项目下新建相应的目录以及文件:

    其中lib文件夹下为依赖的jar包:mybatis.jar为mybatis依赖,mysql-connector-java.jar为连接mysql数据库依赖,log4j为打印日志依赖。

    dtd文件夹中的dtd文件是为了在mybatis配置文件中按下"alt+/" 有标签提示,相关操作见前一篇。

    config用来存储一些配置文件以及mapper,需要右键点击该文件夹,然后将该文件夹选择为Use as Source Folder

    db.properties为连接数据库的一些属性。

    log4j.xml为配置日志文件。

    mybatis-config.xml为配置mybatis的文件。

    2、Employee.java

    package com.gong.mybatis.bean;
    
    public class Employee {
        private Integer id;
        private String lastName;
        private String gender;
        private String email;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        @Override
        public String toString() {
            return "Employee [id=" + id + ", lastName=" + lastName + ", gender=" + gender + ", email=" + email + "]";
        }
        
    }

    3、db.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis
    jdbc.username=root
    jdbc.password=123456

    4、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>

    5、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>
        <properties resource="db.properties"></properties>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}" />
                    <property name="url" value="${jdbc.url}" />
                    <property name="username" value="${jdbc.username}" />
                    <property name="password" value="${jdbc.password}" />
                </dataSource>
            </environment>
        </environments>
        <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
        <mappers>
            <mapper resource="EmployeeMapper.xml" />
        </mappers>
    </configuration>

    说明:properties标签用于引入外部的一些配置。在environments中的dataSource下可配置连接数据库的一些信息,具体的value值可以使用$来获取外部资源的相关属性值。同时我们还要配置mapper文件,在该文件中主要是编写与sql相关的映射,其具体位置根据Mapper中的属性的不同会稍有不同,以后再单独写。

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

    select标签用于从数据库中查询数据,id为标识该查询语句的唯一标识,resultType为返回的结果。

    7、在数据库中新建一个名为mybatis的数据库,然后新建一个tbl_employee表,相关信息如下:

    8、TestMybatis.java

    package com.gong.mybatis.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    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 org.junit.Test;
    
    import com.gong.mybatis.bean.Employee;
    
    public class TestMybatis {
    
        @Test
        public void test() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream is = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            SqlSession openSession = sqlSessionFactory.openSession();
            //获取sqlSession实例,能够直接执行已经映射好的sql语句
            try {
             //返回值类型为Employee,方法为EmployeeMapper.xml中namespace的值加上id标识   
                Employee employee = openSession.selectOne("com.gong.mybatis.EmployeeMapper.getEmpById",1);
                System.out.println(employee);
            }finally {
                openSession.close();
            }    
        }
    
    }

    该文件用于单元测试,测试配置是否成功。

    (1)根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
    (2)sql映射文件;配置了每一个sql,以及sql的封装规则等。
    (3)将sql映射文件注册在全局配置文件中
    (4)写代码:

    • 根据全局配置文件得到SqlSessionFactory;
    • 使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
    • 一个sqlSession就是代表和数据库的一次会话,用完关闭

    (5)使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。

    执行test方法为单元测试,在控制台输出:

    说明Mybatis程序运行成功。需要注意的是数据库中的字段名和实体类中的要相对应。在数据库中为last_name,在mapper.xml文件中对其取名为lastName。 

  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12208809.html
Copyright © 2011-2022 走看看