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

MyBatis学习笔记一:MyBatis最简单的环境搭建的更多相关文章

  1. Mybatis学习笔记(一) —— mybatis介绍

    一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  2. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  3. Mybatis学习笔记(二) —— mybatis入门程序

    一.mybatis下载 mybaits的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 下载完后的目录结构: 二. ...

  4. Mybatis学习笔记(八) —— Mybatis整合spring

    一.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ...

  5. Python学习笔记 (1)Hello World(环境搭建+输出Hello World!)

    随想 高考发挥失常.科三遇火车发挥失常,各种不顺……突然发现假期都快没了,才想起高考前想象的这个假期要做的一堆事,现在来多完成一件吧. 这几篇博客仅只是我的学习笔记,凑合看吧.我这个python小白看 ...

  6. 《精通并发与Netty》学习笔记(01 - netty介绍及环境搭建)

    一.Netty介绍     Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.     ...

  7. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

  8. 【Spring学习笔记-1】Myeclipse下Spring环境搭建

    *.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...

  9. Spark学习笔记--Spark在Windows下的环境搭建

    本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...

随机推荐

  1. Python批量重命名文件

    批量替换文件名中重复字符: # -*- coding: UTF-8 -*- import os path = raw_input("请输入文件夹路径:") oldname = ra ...

  2. Codeforce 370C Mittens 巧妙数学题

    这道题目我一开始想错了,觉得只要排好序,再从头到尾把可以相互交换的进行下交换就可以了...事实证明是错的.正确的解法比较巧妙,而且写法非常好,值得学习 首先,要注意的一个规律是,假如最大的颜色数字出现 ...

  3. shift+回车,换行。断点。

    在Idea中,shift+回车可以在一行的任意一地方换行. 断点的小知识. debug启动程序后左下角会出现断点的功能选项. 一个竖列 一个横行,没有请求时是灰的. 这里主要讲竖列. 这个是沉默全部断 ...

  4. mybatis的XML配置文件中,typeHandler、jdbcType、javaType的使用

    1.前言 typeHandler.jdbcType.javaType都是用来处理java数据类型和jdbc数据库数据类型的转换问题,但在xml的不同位置使用需要注意引号使用问题. 2.在xml的不同位 ...

  5. Tensorflow学习教程------实现lenet并且进行二分类

    #coding:utf-8 import tensorflow as tf import os def read_and_decode(filename): #根据文件名生成一个队列 filename ...

  6. [NOI2014]魔法森林(LCT)

    蒟蒻又发现自己还没写过LCT…… 首先显然按照权值a从小到大排序,维护b的最小生成树.然后直接扫,代价是加入b的最大值,然后动态加边,因为有边权,所以在lct中边应该理解为点.每次连接(u,v)时,若 ...

  7. python 拆解包

    Python 拆解包 转自:https://www.jianshu.com/p/22c538a58bcc python中的解包可以这样理解:一个list是一个整体,想把list中每个元素当成一个个个体 ...

  8. android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码

    Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...

  9. 合并石子(非dp版)

    题:https://ac.nowcoder.com/acm/contest/4137/N 分析:注意题意,收益是a[i]*a[i+1],所以分析得,是∑∑a[i]*a[j] #include<b ...

  10. Linux集群软件安装实战

    一.需求和思路 1. 需求描述 公司有N个节点的集群,需要统一安装一个软件(jdk)需要开发一个脚本程序,实现对集群中的N个节点批量自动下载.安装jdk 2. 思路 1)编写一个启动脚本,用来发送一个 ...