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 ('','张三','') ;
insert into tb_student (stuId,name,clsId) value ('','李四','') ;
insert into tb_student (stuId,name,clsId) value ('','王五','') ;
insert into tb_student (stuId,name,clsId) value ('','赵六','') ;
insert into tb_student (stuId,name,clsId) value ('','巩发财','') ;
insert into tb_student (stuId,name,clsId) value ('','柏拉图','') ;
insert into tb_student (stuId,name,clsId) value ('','钱老虎','') ;
insert into tb_student (stuId,name,clsId) value ('','杨伟','') ;
insert into tb_student (stuId,name,clsId) value ('','陈海','') ;

二、代码编写
实体类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 configuration
PUBLIC "-//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 mapper
PUBLIC "-//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);
} }
结果:

MyBatis学习(一):简单的运行的更多相关文章
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis学习总结(一)简单入门案例
MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...
- MyBatis学习笔记一:MyBatis最简单的环境搭建
MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础 1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做 my ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- 【Todo】Mybatis学习-偏理论
之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html <SSM(SpringMVC+Spring+Myba ...
- MyBatis学习 之 四、MyBatis配置文件
目录(?)[-] 四MyBatis主配置文件 properties属性 settings设置 typeAliases类型别名 typeHandlers类型句柄 ObjectFactory对象工厂 pl ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- mybatis学习(一)一个在idea下的实例
今天总结的是mybatis,首先说mybatis是什么? MyBatis 是一个简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的 JDBC 冗余代 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
随机推荐
- Miracast HDCP 等知识
Miracast 通讯架构中关于视频数据处理流程的部分.整个视频数据处理及传输的流程,大致上分为几个阶段,一开始将撷取到系统的画面及声音进行压缩,而压缩后的影音数据再转为基本封包串流(Packetiz ...
- windows下 maven+selenium+testng项目搭建(七)
Selenium2.47.1 + Maven3.3.9 + TestNG6.8.8 windows准备好以下环境 1. Jdk,环境变量配置 2. maven环境3. eclipse 开发工具 ,ec ...
- 【前端学习笔记】2015-09-01 附二 关于jq选择器的简单运用
根据id来选择------$("#id") 根据class来选择------$(".classname") 根据tag来选择-------$("tag ...
- [转] 细说linux挂载——mount
转载的文章不能分类 这点比较坑 暂时先发到随笔里了 标题会标注的 找到一篇写的对挂载比较好的文章 收藏ing 作者:adagio Ubuntu社区 原帖网址:http://forum.ubu ...
- vue + django 的权限控制
用vue做前端页面, Django 提供api, 写了一个后台系统,结合方式是vue打包后的dist目录直接作为Django的静态目录, 这样的好处是不用配置Nginx具体的做法不在这里写了,记一下遇 ...
- Vijos 1323: 化工厂装箱员
题形:DP 题意:A,B,C三种物品,一共N个,顺序摆放,按顺序拿.每次手上最多能拿10个物品,然后可以将某个类别的物品分类放好,再从剩下的拿,补全10个.问最少放几次,可以把所有物品分类好. 思路: ...
- 一分钟学会Spring Boot多环境配置切换
一. 问题由来 开发环境.测试环境.生产环境--------我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到 ...
- Java 自定义序列化、反序列化
1.如果某个成员变量是敏感信息,不希望序列化到文件/网络节点中,比如说银行密码,或者该成员变量所属的类是不可序列化的, 可以用 transient 关键字修饰此成员变量,序列化时会忽略此成员变量. c ...
- BZOJ1003物流運輸 DP + SPFA
@[DP, SPFA] Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要\(n\)天才能运完.货物运输过程中一般要转 停好几个码头.物流公司通常会设计一条固定的运 ...
- BZOJ3295动态逆序对
一道比较傻的CDQ分治 CDQ: 主要用于解决三位偏序的问题 #include<cstdio> #include<cctype> #include<algorithm&g ...