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.测试结果

  • 相关阅读:
    Python中匿名函数的应用
    Python中界面阻塞情况的解决方案
    Python中的协程,gevent模块
    Python中的进程和线程
    Python中的正则表达式用法
    Jquery瀑布流效果(下篇)
    安卓不支持keypress事件
    让MAC OS也能使用LL LA L等LS的别名
    git 常用命令
    javascript中的apply与call
  • 原文地址:https://www.cnblogs.com/djoker/p/6562037.html
Copyright © 2011-2022 走看看