• 一.Mybatis 入门


    一、什么是Mybatis?

    MyBatis前身是ibatis,是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

    MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。

    二、ORM的共同思想

    无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:

      1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.

      2. 由sessionfactory  产生 session.

      3. 在session 中完成对数据的增删改查和事务提交等.

      4. 在用完之后关闭session 。

      5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

    官方的教程:http://mybatis.github.io/mybatis-3/, 如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html

    三、Mybatis环境搭建

    mybatis 的开发环境搭建,选择: eclipse j2ee 版本,oracle,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。

    首先建立一个名字为 MyBaits 的 dynamic web project 

      1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。

      2. 将 mybatis-3.2.0.jar拷贝到 web工程的lib目录

       或者在pom.xml中加入jar包依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>mybatis06</groupId>
        <artifactId>mybatis06</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                        <warSourceDirectory>WebContent</warSourceDirectory>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.4</version>
            </dependency>
        </dependencies>
    </project>

      3.建库,建表,准备数据

      4.创建Mybatis配置文件Configuration.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>
        
        <typeAliases>
            <!--java 类所对应的别名,映射文件中的resultType可以为student -->
            <typeAlias type="com.pojo.Student" alias="student"/>
        </typeAliases>
        <environments default="development">
        <!-- 数据库开发环境 -->
            <environment id="development">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                    <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                    <property name="username" value="java" />
                    <property name="password" value="java123" />
                </dataSource>
            </environment>
        </environments>
        <!-- 对象的映射文件注册 -->
        <mappers>
            <mapper resource="com/pojo/Student.xml"></mapper>
        </mappers>
    </configuration>  

      5.创建持久层:

        实体类、实体类对应的dao层接口、实体类对应的Mapper映射文件。

        并将Student.xml映射文件在Configuration.xml中注册。

      Student.java

    package com.pojo;
    
    import java.util.Date;
    
    public class Student {
        int stuid;
        String stuName;
        int stuAge;
        Date stuDate;
        String stuSex;
        String stuProfess;
        public int getStuid() {
            return stuid;
        }
        public void setStuid(int stuid) {
            this.stuid = stuid;
        }
        public String getStuName() {
            return stuName;
        }
        public void setStuName(String stuName) {
            this.stuName = stuName;
        }
        public int getStuAge() {
            return stuAge;
        }
        public void setStuAge(int stuAge) {
            this.stuAge = stuAge;
        }
        public Date getStuDate() {
            return stuDate;
        }
        public void setStuDate(Date stuDate) {
            this.stuDate = stuDate;
        }
        public String getStuSex() {
            return stuSex;
        }
        public void setStuSex(String stuSex) {
            this.stuSex = stuSex;
        }
        public String getStuProfess() {
            return stuProfess;
        }
        public void setStuProfess(String stuProfess) {
            this.stuProfess = stuProfess;
        }
    }

      IStudentDAO.java

    package com.dao;
    
    import com.pojo.Student;
    
    public interface IStudentDAO {
        Student getStudentById(int stuid);
    }

      Student.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.dao.IStudentDAO">
        <select id="getStudentById" parameterType="int" resultType="com.pojo.Student">
            select * from student where stuid=#{id}    
        </select>
    </mapper>

      6.编写测试类

      Test.java
    package com.pojo;
    
    import java.io.IOException;
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class Test {
        public static void main(String[] args) throws IOException {
            //读取核心的配置文件
            Reader reader = Resources.getResourceAsReader("Configuration.xml");
            //创建会话工厂
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
            //数据库会话
            SqlSession session = factory.openSession();
    
            //查询一个对象  第一个参数字符串是由Student.xml 中的namespace+id组成
            Student stu = session.selectOne("com.dao.IStudentDAO.getStudentById",5);
    
            System.out.println(stu.getStuName());
            System.out.println(stu.getStuDate());
    
            session.close();
        }
    }
  • 相关阅读:
    Matlab高级教程_第一篇:Matlab基础知识提炼_01
    量化投资_量化投资系统框架的DIY_02_01
    计量经济与时间序列_时间序列之物理含义
    计量经济与时间序列_协整和误差修正模型
    数学之美_正态分布(Python代码)
    [转载] ./configure,make,make install的作用
    [转载]Deep Learning(深度学习)学习笔记整理
    AJAX XML 实例
    百度搜索插件源码
    apache 服务器在ubuntu上图片无法显示解决
  • 原文地址:https://www.cnblogs.com/wlxslsb/p/10794925.html
Copyright © 2020-2023  润新知