视频地址: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. Appium 解决不能输入中文字符问题

    只需在初始化driver方法时,写这两行代码即可:   capabilities.setCapability("unicodeKeyboard", "True" ...

  2. dedecms recommend 注入 exp

    我看没人用python写过发过 所以我就发一下 喜欢用python的就用我这个吧 不喜欢的就用JAR那个或者PHP那个吧 #coding:GBK import  re import urllib &q ...

  3. RF 测试代码体会

    这里的需求是完成一个cc2540 RF测试程序.实现功能为开发板按键控制 RF 发射频率的改变. 首先被告知要用PTM来做这个测试程序,然后我去了PTM的介绍文档,地址为 http://process ...

  4. Codeforces Round #341 Div.2 A. Wet Shark and Odd and Even

    题意是得到最大的偶数和 解决办法很简单 排个序 取和 如果是奇数就减去最小的奇数 #include <cstdio> #include <cmath> #include < ...

  5. HSDB

    select t from java.lang.Thread t $JAVA_HOME/bin/java -classpath $JAVA_HOME/lib/sa-jdi.jar sun.jvm.ho ...

  6. 加快phpstorm、rubymine、pycharm系列IDE运行速度的方法

    对jetbrains公司出品的IDE均有效,以rubymine为例: 打开C:\Program Files\JetBrains\RubyMine 6.3.3\bin,打开 rubymine.exe.v ...

  7. 在sql语句中添加php变量

    在sql语句中使用{}将php变量扩起来,php就会解析{}中的内容. //案件统计 function getCount($dsql,$tableName,$year){ //诉讼案件总数,总金额 $ ...

  8. 甲状腺癌怎样早发现 可B超检查

    2013-12-13 14:40:00.0 本文来源:人民网 点击参与跟帖 原标题:健康之道:甲状腺癌怎样早发现 摘要:甲状腺癌怎样早发现呢?隐早期以甲状腺结节的方式存在,且以匿方式生长,可能在人们偶 ...

  9. Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持

    .net framework 4.5下测试成功,使用RedisSessionStateProvider 2.2.1保持session数据,通过Haproxy保持会话数据.首先在PM下安装RedisSe ...

  10. sql server中的 SET NOCOUNT ON 的含义

    每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用 ...