MyBatis案例&增删改查
一、MyBatis入门案例:
①:引入jar包

②:创建实体类 Dept,并进行封装

③ 在Src下创建大配置mybatis-config.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>
<typeAliases>
<typeAlias type="cn.happy.entity.Dept" alias="Dept"/>
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="wj" />
<property name="password" value="9090" />
</dataSource>
</environment>
</environments>
<!--映射文件:描述某个实体和数据库表的对应关系 -->
<mappers>
<mapper resource="cn/happy/entity/Dept.xml" /> <mapper resource="cn/happy/entity/Mapper.xml" />
</mappers>
28 </configuration>
注:其中的几个常用元素作用如下:
environments元素:用于配置多个数据环境,可映射多个数据库信息
在MyBatis中有两种事务管理器类型(即type="JDBC/MANAGED")
JDBC:直接使用了JDBC控制事务
MANAGED:MyBatis自己不负责控制事务,它会让容器来管理事务的整个生命周期
数据源类型有三种:UNPOOLED、POOLED、JNDI
①UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。
②POOLED:采用连接池以避免创建新的连接实例时必要的初始连接和认证时间
③JNDI:为了使用如Spring或应用服务器这类的容器
mappers元素:包含所有mapper的列表。告诉MyBatis到哪里去找SQL语句。主要是定义Sql映射文件
④:创建小配置 Dept.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"> <mapper namespace="cn.happy.entity.Dept"> <!-- 查询 -->
<select id="selectDept" resultType="Dept">
select * from Dept
</select>
注:id:唯一标识:通过此id,程序可唯一锁定一条SQL 、parameterType:参数类型、resultType:结果类型
⑤测试类:进行查询所有部门
public class Test1 {
SqlSession session ;
@Before
public void initData() throws Exception{
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
Reader reader=new FileReader("src/mybatis-config.xml");
SqlSessionFactory factory=builder.build(reader);
session = factory.openSession();
}
/*
* 查询
*/
@Test
public void selectDeptTest() throws Exception{
List<Dept> selectList = session.selectList("selectDept");
for (Dept dept : selectList) {
System.out.println(dept.getDeptName());
}
}

二、同理 增、删、改
如图所示:

因为在大配置中有别名的使用。参数类型设置成Dept即可

三、使用selectOne()方法【带条件查询】
通过编号来查询部门信息

四、session.getMapper()方法的实现
获取到接口的具体实现类
注:使用接口编程需要注意:namespace需要定义为接口的全限定名。映射语句的id配置需要与接口中的方法名相同

MyBatis案例&增删改查的更多相关文章
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- ssm框架(Spring Springmvc Mybatis框架)整合及案例增删改查
三大框架介绍 ssm框架是由Spring springmvc和Mybatis共同组成的框架.Spring和Springmvc都是spring公司开发的,因此他们之间不需要整合.也可以说是无缝整合.my ...
- MyBatis的增删改查。
数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查
使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
- Spring Boot入门系列(六)如何整合Mybatis实现增删改查
前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...
- Mybatis实例增删改查(二)
创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...
随机推荐
- FZU 2098 刻苦的小芳(卡特兰数,动态规划)
Problem 2098 刻苦的小芳 Accept: 42 Submit: 70 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Descr ...
- StartUML-时序图
- xdotool xdotool模拟击键和鼠标移动--CutyCapt是一个截图工具,xvfb-run
最近在做一个生成网站缩略图的功能,从网上查到相关资料,现与大家分享,xvfb这个软件,安装上之后一条命令就能执行此操作.很容易的就生成了自己想要的缩略图. xvfb-run -运行在一个虚拟的X服务器 ...
- rbac - 界面、权限
一.模板继承 知识点: users.html / roles.html 继承自 base.html 滑动时,固定 position: fixed;top:60px;bottom:0;left:0;wi ...
- centos7 python3 安装
mkdir /usr/python3.5 tar -xf Python-3.5.1.tgz cd Python-3.5.1 ./configure --prefix=/usr/python3.5 ma ...
- 解决MySQL报错:1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'informat
解决MySQL报错:1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'informat ...
- centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课
centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课 ...
- 当IDENTITY_INSERT设置为OFF时不能向表插入显示值。(源:MSSQLServer,错误码:544)
错误提示"事务和快照同步时提示:当IDENTITY_INSERT设置为OFF时不能向表插入显示值.(源:MSSQLServer,错误码:544)" 原因:在SQL2008同步时到S ...
- java-mybaits-00201-DAO-SqlSession使用范围
1.SqlSession的使用范围 SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等. 通过SqlSessionFactory创建SqlSession,而SqlSessionF ...
- python之threading.local
简述: threading.local是全局变量但是它的值却在当前调用它的线程当中 作用: 在threading module中,有一个非常特别的类local.一旦在主线程实例化了一个local,它会 ...