1、准备工作

jar包:

  mybatis-3.4.4.jar,下载地址:https://github.com/mybatis/ignite-cache/releases

  mysql-connector-java-5.1.40-bin.jar,下载地址:https://dev.mysql.com/downloads/connector/j/

项目目录结构:

数据库建标语句

/*如果已经存在此数据库,先删除*/
drop database if exists sqltest  ;
/*创建并设置编码为UTF-8*/
create database sqltest default character set utf8 ;
/*选择数据库*/
use sqltest ;/*删除已有的学生表*/
drop table if exists tb_student ;/*创建学生表*/
CREATE TABLE `tb_student` (`id` int(11) NOT NULL AUTO_INCREMENT,`stuId` varchar(45) DEFAULT NULL,`name` varchar(45) DEFAULT NULL,`clsId` varchar(45) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*插入学生的数据*/
insert into tb_student (stuId,name,clsId) value ('1001','张三','201') ;
insert into tb_student (stuId,name,clsId) value ('1002','李四','201') ;
insert into tb_student (stuId,name,clsId) value ('1003','王五','201') ;
insert into tb_student (stuId,name,clsId) value ('1004','赵六','202') ;
insert into tb_student (stuId,name,clsId) value ('1005','巩发财','202') ;
insert into tb_student (stuId,name,clsId) value ('1006','柏拉图','202') ;
insert into tb_student (stuId,name,clsId) value ('1007','钱老虎','203') ;
insert into tb_student (stuId,name,clsId) value ('1008','杨伟','203') ;
insert into tb_student (stuId,name,clsId) value ('1009','陈海','203') ;

二、代码编写

实体类Student:

package org.yoki.edu.main.vo;public class Student {private Integer id;private String stuId;private String name;private String clsId;/*省略setter、getter方法*/}

MyBatis的配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- typeAliases必须写在environments和mappers前面,不然报错,这是dtd格式限制的 --><typeAliases><!-- 用于在实体类的映射文件进行使用student,而不用每次使用类的全名 --><typeAlias type="org.yoki.edu.main.vo.Student" alias="student" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!-- 数据库链接信息,注:分号改为&amp;转义符,防止报错 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/sqltest?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><mappers><!-- 实体类的映射文件 --><mapper resource="org/yoki/edu/main/vo/StudentMapper.xml" /></mappers></configuration>

实体类Student配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace随意内容 -->
<mapper namespace="this.is.student.mapper.namespace"><!-- 方法一 --><!-- type属性对应与在MyBatis配置文件中typeAliases标签下定义的引用 --><resultMap id="studentMapper" type="student"><!-- 属性名称<>列名 --><id property="id" column="id" /><result property="stuId" column="stuId" /><result property="name" column="name" /><result property="clsId" column="clsId" /></resultMap><!-- resultMap属性值对应 --><select id="selectById" resultMap="studentMapper">select * from tb_student where id = #{id}</select><!-- 方法二 --><!-- resultType可以使用类的全名,也可以使用MyBatis配置文件中typeAliases标签下定义的引用 -->
<!--     <select id="selectById" resultType="org.yoki.edu.main.vo.Student"> -->
<!--         select * from tb_student where id = #{id} -->
<!--     </select> --></mapper>

SessionUtils(用于初始化SqlSessionFactory和提供获取SqlSession的接口):
package org.yoki.edu.utils;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;public class SessionUtils {private static SqlSessionFactory fa = null ;static{/*静态代码块,在类加载后执行*/String resource = "org/yoki/edu/utils/mybatis-config.xml" ;InputStream input;try {/*获取配置文件的输入流*/input = Resources.getResourceAsStream(resource);/*根据输入流生成SqlSessionFactory*/fa = new SqlSessionFactoryBuilder().build(input) ;int j = 0 ;} catch (IOException e) {e.printStackTrace();}}public SqlSession getSqlSession(){if(null == fa)return null;SqlSession session = fa.openSession() ;return session ;}}

StudentDao(这里偷懒没有使用接口):

package org.yoki.edu.main.dao;import org.apache.ibatis.session.SqlSession;
import org.yoki.edu.main.vo.Student;
import org.yoki.edu.utils.SessionUtils;public class StudentDao {private SessionUtils utils = new SessionUtils() ;public Student getById(Integer id){SqlSession session = utils.getSqlSession() ;/*selectOne的第一个参数对应映射文件的namespace + '.' + (select、update、insert、delete)id*/Student st = session.selectOne("this.is.student.mapper.namespace" + ".selectById", id) ;return st ;}}

测试类:

package org.yoki.edu.main;import org.yoki.edu.main.dao.StudentDao;
import org.yoki.edu.main.vo.Student;public class MainRun {public static void main(String[] args) {StudentDao dao = new StudentDao() ;Student st = dao.getById(2) ;System.out.println(st);}}

结果:

转载于:https://www.cnblogs.com/FlyingPuPu/p/6918154.html

MyBatis学习(一):简单的运行相关推荐

  1. MyBatis学习:简单认识一下MVC架构模式和三层架构

    1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.本篇博客阐述一下MVC架构模式和三层架构,以及明晰一下我们通常在Web项目中的编 ...

  2. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  3. 事务中mybatis通过id查不到但是通过其他条件可以查到_40打卡 MyBatis 学习

    第57次(mybatis) 学习主题:mybatis 学习目标: 1 掌握框架的概念 2 掌握mybatis环境搭建 对应视频: http://www.itbaizhan.cn/course/id/8 ...

  4. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  5. MyBatis学习总结一

    Mybatis学习总结一 1.Mybatis介绍 2.Mybatis架构图 2.1.架构图的意义 2.1.1.JDBC编写 2.1.2.反思问题 2.2.Mybatis架构图 3.入门案例 3.1.下 ...

  6. ant的下载与安装——mybatis学习笔记之预备篇(一)

    看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...

  7. MyBatis学习随记

    1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Conn ...

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

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

  9. MyBatis多参数传递之混合方式——MyBatis学习笔记之十五

    在本系列文章的<MyBatis多参数传递之Map方式示例>一文中,网友mashiguang提问如下的方法如何传递参数:public List findStudents(Map condit ...

  10. Mybatis学习一

    1.Mytatis入门程序  代码如下: package myBatis.cn.junit;import java.io.IOException; import java.io.InputStream ...

最新文章

  1. opencv图像灰度重心算法
  2. 在主机中通过xdebug远程调试Vagrant虚拟机中drush脚本的方法
  3. 升级openssh带来的问题
  4. 如何改进yolov3_揭秘YOLOv3鲜为人知的关键细节
  5. java 重用性_Java开发重用性必备的三大核心知识点
  6. PHP 中get_magic_quotes_gpc()函数说明
  7. 基于k8s多集群隔离环境下的devops实现
  8. ubuntu14.04禁用自动待机保持屏幕亮度
  9. 自定义组件-BreadcrumbTreeView 的使用
  10. php字符串如何比较大小写,PHP字符串函数strcmp(二进制安全比较字符串,区分大小写)...
  11. SSM框架02--mybatis(1)
  12. RFID技术与应用 复习用
  13. java 动态性之反射机制 详解 案例,mybatis字段映射原理
  14. excel 行列互换 绿色工具(怎么把行变成列,把列变成行)
  15. 漫谈数据结构系列(一)之僧敲月下门
  16. 我的世界热力膨胀JAVA_我的世界热力膨胀MOD矿物类型介绍
  17. android 取消系统默认手机加密(全盘加密)
  18. 如何解除80端口被占用
  19. ACE1.0动态搜索框OpenHarmony组件开发大赛参与组件-Search_DialogJS
  20. springBoot入门总结(八)使用 jta+atomikos 整合springBoot分布式事务

热门文章

  1. es6 modules 和commonjs
  2. sql 时间转换格式 convert(varchar(10),字段名,转换格式)
  3. 利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类
  4. 打表(1215)七夕节
  5. MyEclipse+Tomcat+JSP开发环境配置
  6. SilverLight中的基本图形(转)
  7. 论.NET反射、委托与模式关系 zt- -
  8. treebagger matlab,MATLAB – TreeBagger example
  9. 滚动条禁止_平南人用了几十年的这种小东西,将全面禁止生产!你家还有某?...
  10. LED的本质和发光原理是什么,彩色的LED灯是怎么做出来的