MyBatis学习(一):简单的运行
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" /><!-- 数据库链接信息,注:分号改为&转义符,防止报错 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/sqltest?useUnicode=true&characterEncoding=UTF-8&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学习(一):简单的运行相关推荐
- MyBatis学习:简单认识一下MVC架构模式和三层架构
1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.本篇博客阐述一下MVC架构模式和三层架构,以及明晰一下我们通常在Web项目中的编 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...
- 事务中mybatis通过id查不到但是通过其他条件可以查到_40打卡 MyBatis 学习
第57次(mybatis) 学习主题:mybatis 学习目标: 1 掌握框架的概念 2 掌握mybatis环境搭建 对应视频: http://www.itbaizhan.cn/course/id/8 ...
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- MyBatis学习总结一
Mybatis学习总结一 1.Mybatis介绍 2.Mybatis架构图 2.1.架构图的意义 2.1.1.JDBC编写 2.1.2.反思问题 2.2.Mybatis架构图 3.入门案例 3.1.下 ...
- ant的下载与安装——mybatis学习笔记之预备篇(一)
看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...
- MyBatis学习随记
1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 Public static void main(String[] args) { Conn ...
- Mybatis学习笔记(一) —— mybatis介绍
一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- MyBatis多参数传递之混合方式——MyBatis学习笔记之十五
在本系列文章的<MyBatis多参数传递之Map方式示例>一文中,网友mashiguang提问如下的方法如何传递参数:public List findStudents(Map condit ...
- Mybatis学习一
1.Mytatis入门程序 代码如下: package myBatis.cn.junit;import java.io.IOException; import java.io.InputStream ...
最新文章
- opencv图像灰度重心算法
- 在主机中通过xdebug远程调试Vagrant虚拟机中drush脚本的方法
- 升级openssh带来的问题
- 如何改进yolov3_揭秘YOLOv3鲜为人知的关键细节
- java 重用性_Java开发重用性必备的三大核心知识点
- PHP 中get_magic_quotes_gpc()函数说明
- 基于k8s多集群隔离环境下的devops实现
- ubuntu14.04禁用自动待机保持屏幕亮度
- 自定义组件-BreadcrumbTreeView 的使用
- php字符串如何比较大小写,PHP字符串函数strcmp(二进制安全比较字符串,区分大小写)...
- SSM框架02--mybatis(1)
- RFID技术与应用 复习用
- java 动态性之反射机制 详解 案例,mybatis字段映射原理
- excel 行列互换 绿色工具(怎么把行变成列,把列变成行)
- 漫谈数据结构系列(一)之僧敲月下门
- 我的世界热力膨胀JAVA_我的世界热力膨胀MOD矿物类型介绍
- android 取消系统默认手机加密(全盘加密)
- 如何解除80端口被占用
- ACE1.0动态搜索框OpenHarmony组件开发大赛参与组件-Search_DialogJS
- springBoot入门总结(八)使用 jta+atomikos 整合springBoot分布式事务
热门文章
- es6 modules 和commonjs
- sql 时间转换格式 convert(varchar(10),字段名,转换格式)
- 利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类
- 打表(1215)七夕节
- MyEclipse+Tomcat+JSP开发环境配置
- SilverLight中的基本图形(转)
- 论.NET反射、委托与模式关系 zt- -
- treebagger matlab,MATLAB – TreeBagger example
- 滚动条禁止_平南人用了几十年的这种小东西,将全面禁止生产!你家还有某?...
- LED的本质和发光原理是什么,彩色的LED灯是怎么做出来的