zoukankan      html  css  js  c++  java
  • MyBatis学习笔记一:MyBatis最简单的环境搭建

     MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础

    1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做

    mybatis的环境,普通java项目即可 )

    2.Person.java(纯POJO对象类)

    package com.orange.model;
    
    public class Person {
    
        private String name;
        
        private String address;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
        
        
    }

    3.相应的Mapper映射文件PersonMapper.xml(最好在后面加上Mapper组成model_nameMapper.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">
        
    <!-- 命名空间为com.orange.model.PersonMapper -->
    <mapper namespace="com.orange.model.PersonMapper">
        <!-- 返回的结果为com.orange.model.Person -->
        <select id="selectPerson" resultType="com.orange.model.Person">
            select * from person
        </select>    
    </mapper>

    这里使用了最简单的方式配置其中select * from person的返回结果mybatis会根据POJO对象中的set方法注入,数据库中数据的字段也必须是一致的否则无法注入

    当然,mybatis提供了方法解决字段和属性不一致的问题

    4.mybatis的主配置文件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>
        <!-- 环境配置,可以配置多个环境,但是只会使用一个,defaut的值是哪个环境的id的值,即使用哪个环境 -->
        <environments default="default">
            <environment id="default">
                <!-- 使用JDBC事务管理器 -->
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED" >
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://172.16.100.10:3306/mybatis?characterEncoding=utf-8"/>
                    <property name="username" value="mysql"/>
                    <property name="password" value="mysql"/>
                </dataSource>
            </environment>
        </environments>
        
        <!-- 引入映射文件 -->
        <mappers>
            <mapper resource="com/orange/model/PersonMapper.xml"/>
        </mappers>
    </configuration>

    5.数据库表的配置

    6.测试类Test1.java

    package mybatistest;
    
    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 com.orange.model.Person;
    
    public class Test1 {
    
        public static void main(String[] args){
            try {
                // 读取配置文件到InputStream
                InputStream is =  Resources.getResourceAsStream("mybatis.xml");
                
                // 创建SqlSessionFactory工厂
                SqlSessionFactory factory =  new SqlSessionFactoryBuilder().build(is);
                
                // 开启SqlSession
                SqlSession session =  factory.openSession();
                
                // 使用session查询,这里的第一个参数就是定义的Mapper映射的命名空间和对应的语句组成,如果需要参数,可以加入参数
                Person person = (Person)session.selectOne("com.orange.model.PersonMapper.selectPerson");
                
                System.out.println("name: " + person.getName());
                System.out.println("address: " + person.getAddress());
                
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    7.测试结果

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/djoker/p/6562037.html
Copyright © 2011-2022 走看看