2.Mybatis入门程序(单表的增删改成)
视频地址:http://edu.51cto.com/sd/be679
这里讲的单表的增删改查,是由mapper代理的增删改查,先来看看步骤:
1.jar包的导入
2.配置全局的配置文件
3.建立接口
4.编写mapper.xml
5.测试
工程结构:这个你们自己可以调整,不一定和我一样

目录解析:
com.etc.mapper:这个包放的就相当于是dao的接口(com.etc.dao)
config/mapper:这个放的就是操作数据库的相当于dao的实现类(com.etc.dao.impl)
mybatis-config.xml:这个就是mybatis的全局配置文件
com.etc.test: 测试你增删改查是否成功
1.jar的导入(其实只要最后两个就可以了,这里这么多是因为后期还会用到一些所以就全都加进去省的麻烦)

2.配置全局配置配置文件(目前只有两个:数据源,告诉mybatis实现类mapper.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>
<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/student" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/student-mapper.xml"/>//mapper.xml的位置
</mappers>
</configuration>
3.编写接口
public interface StudentMapper {
//增加一个学生
public void addStudent(Student student);
//删除一个学生
public void deleteById(int sid);
//更新一个学生
public void updateStudent(Student student);
//根据ID查找学生
public Student findById(int sid);
//查询全部的学生
public List<Student> findAll();
}
4.编写mapper.xml
其中:
namespace:命名空间
id:唯一标识
parameterType:传入的参数类型(全路径)
resultType(放回的结果集记录的类型,这里是你单条记录是什么类型,多条记录就是什么类型)
使用mapper代理的开发模式有几个注意点:
1.mapper的命名空间指向的必须是你的接口全路径
2.mapper底下语句的id必须和你接口的方法名一致
3.mapper底下语句的参数类型必须和你接口的入参类型一致
4..mapper底下语句的返回结果类型必须和你接口中的一致(集合的话,匹配单条记录)
5.你要把mapper配置到mybatis的全局配置中去
<mappers>
<mapper resource="mapper/student-mapper.xml"/>//mapper.xml的位置
</mappers>
<?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">
<!--命名空:作用:就是对sql进行分类化管理 -->
<mapper namespace="com.etc.mapper.StudentMapper">
<!-- 添加用户 -->
<insert id="addStudent" parameterType="com.etc.entity.Student">
insert into t_student (name,sex,hobbies) value(#{name},#{sex},#{hobbies})
</insert>
<!-- 根据ID删除学生 -->
<delete id="deleteById" parameterType="java.lang.Integer">
delete from t_student where sid=#{sid}
</delete>
<!-- 更新学生信息 -->
<update id="updateStudent" parameterType="com.etc.entity.Student">
update t_student set name=#{name},sex=#{sex},hobbies=#{hobbies} where sid=#{sid}
</update>
<!--根据ID查找学生 -->
<select id="findById" parameterType="java.lang.Integer" resultTypep="com.etc.entity.Student">
select sid sid_,name name_,sex sex_,hobbies hobbies_ from t_student where sid=#{sid}
</select>
<!-- 查找全部学生 -->
<select id="findAll" parameterType="com.etc.entity.Student" resultType="com.etc.entity.Student">
select * from t_student
</select>
</mapper>
5.编写测试代码(Junit测试)(实体类记得给一个空的构造函数供初始化,否则会报初始化异常)
@Test
public void findById() throws IOException{
//mybatis的配置文件
String resource="mybatis-config.xml";
//得到配置文件流
InputStream inputStream= Resources.getResourceAsStream(resource);
//创建会话工厂,需要传入Mybatis的配置文件信息
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂得到SqlSession
SqlSession session=sessionFactory.openSession();
//创建StudentMapper对象,mybatis自动生成代理对象
StudentMapper studentMapper=session.getMapper(StudentMapper.class);
Student student=studentMapper.findById(1);
System.out.println(student);
//资源释放
session.close();
}
2.Mybatis入门程序(单表的增删改成)的更多相关文章
- java实战应用:MyBatis实现单表的增删改
MyBatis 是支持普通 SQL查询.存储过程和高级映射的优秀持久层框架.MyBatis 消除了差点儿全部的JDBC代码和參数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于 ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)
day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...
- hibernate对单表的增删改查
ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单表的增删改查 向区域表中增加数据: 第一步: 新建一个Da ...
- django模型层 关于单表的增删改查
关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- mybatis入门--单表的增删改操作
单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- ...
- Mybatis(一)实现单表的增删改查
1.1 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并 ...
- MyBatis入门程序之表关联
一.一对一查询(ResultType比较简单,只需要指向扩展的类:ResultMap逐个匹配比较麻烦,可以配置属性autoMapping="true",还可以可以实现延迟加载) 1 ...
- 23Spring_JdbcTemplate来实现单表的增删改查
第一步建表:
随机推荐
- Linux压缩那些事儿
tar简介 Linux的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩.所以在了解解压缩之前就必须先了解打包命令. Lin ...
- 数据结构C语言实现系列——线性表(线性表链接存储(单链表))
#include <stdio.h>#include <stdlib.h>#define NN 12#define MM 20typedef int elemType ;/** ...
- Shell 环境变量 & 参数变量
环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\u@\h \w]$就 ...
- 转: MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
相关参考资料: MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. gr ...
- javac
http://openjdk.java.net/groups/compiler/ http://crazyjavahacking.org/tag/javac/ http://openjdk.java. ...
- div的显示和隐藏
本文从学习角度出发,仅当做笔记.高手可以忽略本文. 借助div的display属性可以实现div的显示或隐藏,而且在隐藏后不占用原来显示的空间. js控制显示和隐藏的代码: <script ty ...
- SPRING + THYMELEAF 配置
1.使用的是Spring EL而不是Ognl.2.访问上下文的Bean用${@myBean.doSomething()}3.th:field,th:errors,th:errorclass用于form ...
- LVS+Keepalived负载均衡配置
简介 lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高. lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在ke ...
- ReorderList 的使用
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> ...
- vi编辑器的简单使用
Esc --进入扩展模式 a i o --进入插入模式 w --保存 q --退出 wq!--强制保存退出 p --粘贴 前面加数字表示粘贴多少行 u --复原前一个操作 Carl+r - ...