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来实现单表的增删改查
第一步建表:
随机推荐
- Appium 解决不能输入中文字符问题
只需在初始化driver方法时,写这两行代码即可: capabilities.setCapability("unicodeKeyboard", "True" ...
- dedecms recommend 注入 exp
我看没人用python写过发过 所以我就发一下 喜欢用python的就用我这个吧 不喜欢的就用JAR那个或者PHP那个吧 #coding:GBK import re import urllib &q ...
- RF 测试代码体会
这里的需求是完成一个cc2540 RF测试程序.实现功能为开发板按键控制 RF 发射频率的改变. 首先被告知要用PTM来做这个测试程序,然后我去了PTM的介绍文档,地址为 http://process ...
- Codeforces Round #341 Div.2 A. Wet Shark and Odd and Even
题意是得到最大的偶数和 解决办法很简单 排个序 取和 如果是奇数就减去最小的奇数 #include <cstdio> #include <cmath> #include < ...
- HSDB
select t from java.lang.Thread t $JAVA_HOME/bin/java -classpath $JAVA_HOME/lib/sa-jdi.jar sun.jvm.ho ...
- 加快phpstorm、rubymine、pycharm系列IDE运行速度的方法
对jetbrains公司出品的IDE均有效,以rubymine为例: 打开C:\Program Files\JetBrains\RubyMine 6.3.3\bin,打开 rubymine.exe.v ...
- 在sql语句中添加php变量
在sql语句中使用{}将php变量扩起来,php就会解析{}中的内容. //案件统计 function getCount($dsql,$tableName,$year){ //诉讼案件总数,总金额 $ ...
- 甲状腺癌怎样早发现 可B超检查
2013-12-13 14:40:00.0 本文来源:人民网 点击参与跟帖 原标题:健康之道:甲状腺癌怎样早发现 摘要:甲状腺癌怎样早发现呢?隐早期以甲状腺结节的方式存在,且以匿方式生长,可能在人们偶 ...
- Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
.net framework 4.5下测试成功,使用RedisSessionStateProvider 2.2.1保持session数据,通过Haproxy保持会话数据.首先在PM下安装RedisSe ...
- sql server中的 SET NOCOUNT ON 的含义
每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用 ...