视频地址: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入门程序(单表的增删改成)的更多相关文章

  1. java实战应用:MyBatis实现单表的增删改

    MyBatis 是支持普通 SQL查询.存储过程和高级映射的优秀持久层框架.MyBatis 消除了差点儿全部的JDBC代码和參数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于 ...

  2. Django学习笔记(10)——Book单表的增删改查页面

    一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...

  3. python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)

    day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...

  4. hibernate对单表的增删改查

    ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单表的增删改查 向区域表中增加数据: 第一步: 新建一个Da ...

  5. django模型层 关于单表的增删改查

    关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  6. mybatis入门--单表的增删改操作

    单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- ...

  7. Mybatis(一)实现单表的增删改查

    1.1 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并 ...

  8. MyBatis入门程序之表关联

    一.一对一查询(ResultType比较简单,只需要指向扩展的类:ResultMap逐个匹配比较麻烦,可以配置属性autoMapping="true",还可以可以实现延迟加载) 1 ...

  9. 23Spring_JdbcTemplate来实现单表的增删改查

    第一步建表:

随机推荐

  1. python 深拷贝与浅拷贝

    浅拷贝的方式有: lst=[1,2,3] (1)直接赋值: lst_cp = lst (2)for循环遍历生成:lst_cp= [i for i in lst] (3)copy模块下,copy.cop ...

  2. HttpSendRequest同步请求不返回

    HttpSendRequest是基于socket实现的 在工作过程中发现当发送请求时 1.当网络没有连接时 会同步返回失败 2.当发送请求时 把网线拔下也是会同步返回失败 3.但是第三种情况 发送请求 ...

  3. CE5 WiFi开关

    WinCE的WiFi开关要依赖于WiFi模块的休眠功能还有模块厂商提供的驱动里面有支持电源管理功能.这里面用的是SDIO86861模块,WinCE5的系统,S3C2416的CPU. 头文件要包括:#i ...

  4. python requests库入门[转]

    首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: > ...

  5. Boot loader: Grub进阶[转]

    Boot loader: Grub进阶 本文记录grub的一些进阶配置 关於核心功能当中的 vga 配置 事实上,你的 tty1~tty6 除了 80x24 的解析度外,还能够有其他解析度的支持喔!但 ...

  6. kail-linux my need

    一  系统安装配置部分: 1. 安装:WPS Office wget  http://wdl.cache.ijinshan.com/wps/download/Linux/unstable/wps-of ...

  7. 解读(function($){...})(jQuery)

    function(arg){...}这就定义了一个匿名函数,参数为arg 而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(function(arg){.. ...

  8. C++模板元编程 - 函数重载决议选择工具(不知道起什么好名)完成

    这个还是基于之前实现的那个MultiState,为了实现三种类型“大类”的函数重载决议:所有整数.所有浮点数.字符串,分别将这三种“大类”的数据分配到对应的Converter上. 为此实现了一些方便的 ...

  9. springboot教程

    http://www.cnblogs.com/java-zhao/tag/spring-boot/ http://blog.csdn.net/liaokailin/article/category/5 ...

  10. [ActionScript 3.0] AS3.0 简单封装Socket的通信

    Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...