//接口内容以及注意事项

 package cn.jy.mybatis.mapper;

 import java.util.List;

 import cn.jy.mybatis.pojo.User;

 public interface UserMapper {
//四个原则
//1 .xml中的名称空间要绑定此接口 <mapper namespace="cn.jy.mybatis.mapper.UserMapper">
//2 接口的方法名必须跟 .xml文件的id名一致
//3 接口中的方法的返回值类型要跟 .xml返回值类型一致
//4 接口中的方法的参数类型要跟 .xml文件的传入的参数类型一致 User findUserById(int id);
List<User> findUserByUserName(String username);
void insertUser(User u);
void updateUserById(User u);
void deleteUserById(int u);
}

//.xml 配置文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <!-- sql语句 -->
6 <mapper namespace="cn.jy.mybatis.mapper.UserMapper">
7 <!-- 通过id 查找用户 -->
8 <select id="findUserById" parameterType="Integer" resultType="cn.jy.mybatis.pojo.User">
9 select * from user where id=#{qiang}
10 </select>
11 <!-- 模糊查询 -->
12 <select id="findUserByUserName" parameterType="String" resultType="cn.jy.mybatis.pojo.User">
13 select * from user where username like "%"#{qaingtong}"%"
14 </select>
15 <!--添加用户 -->
16 <insert id="insertUser" parameterType="cn.jy.mybatis.pojo.User" >
17 insert into user (username,birthday,address,sex)values (#{username},#{birthday},#{address},#{sex})
18 </insert>
19 <!-- 更新 -->
20 <update id="updateUserById" parameterType="cn.jy.mybatis.pojo.User">
21 update user
22 set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}
23 where id=#{id}
24 </update>
25 <!-- 删除 -->
26 <delete id="deleteUserById" parameterType="Integer">
27 delete from user
28 where id=#{DDDD}
29 </delete>
30 </mapper>

//sqlMapConfig.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.lijun.mybatis.pojo.User" alias="User"/> -->
<package name="cn.jy.mybatis.pojo"/>
</typeAliases>
<!-- 和spring整合后 environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/day58?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlMap/User.xml"/> <!-- 上一篇所用到的-->
<mapper resource="cn/jy/mybatis/mapper/UserMapper.xml"/>
</mappers>
</configuration>
 //测试类
 package cn.jy.mybatis.mapper;

 import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; import cn.jy.mybatis.pojo.User; public class MybatisMapperTest {
@Test
public void TestMapper() throws IOException{
String re="sqlMapConfig.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(re);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession openSession = build.openSession(); //帮助我们给接口创建实现类
UserMapper mp=openSession.getMapper(UserMapper.class); //1 根据id查找
// User findUserById = mp.findUserById(22);
// System.out.println(findUserById); //2 根据名字模糊查找
// List<User> findUserByUserName = mp.findUserByUserName("小明");
// for(User a:findUserByUserName){
// System.out.println(a);
// }
//3 添加操作
// User user = new User();
// user.setAddress("北京");
// user.setBirthday(new Date());
// user.setSex("男");
// user.setUsername("殷總");
// mp.insertUser(user);
// openSession.commit(); //4 更新操作
User user = new User();
user.setAddress("北京");
user.setBirthday(new Date());
user.setId(31);
user.setSex("男");
user.setUsername("王总666");
mp.updateUserById(user);
openSession.commit();
//刪除操作
// User user = new User();
// mp.deleteUserById(26);
// openSession.commit();
}
}
//文件位置关系

												

MybatisMapper 动态映射(增删改查)的更多相关文章

  1. Java对象转JSON时如何动态的增删改查属性

    1. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON字符串增加额外字段 假如我们有这样结 ...

  2. (一)Mybatis基本配置,Statement方式,动态代理增删改查

    首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...

  3. 使用C语言封装数组,动态实现增删改查

    myArray.h : #pragma once //包含的时候只包含一次 #include <stdio.h> #include <stdlib.h> #include &l ...

  4. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  5. MybatisMapper 映射框架(增删改查 原始模式)

    //增删改查 package TestDemo; import java.io.IOException; import java.io.InputStream; import java.util.Da ...

  6. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  7. 02.Mybatis的动态代理方式实现增删改查

    动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...

  8. 12 Servlet_04 Servlet增删改查 静态页面与动态页面 EL表达式 table表格的一些样式

    今天学习了servlet的增删改查: 存储数据 setAttribute(String name,Object obj );获取数据 getAttribute(String name);删除数据 re ...

  9. MyBatis学习(三)MyBatis基于动态代理方式的增删改查

    1.前言 上一期讲到MyBatis-Statement版本的增删改查.可以发现.这种代码写下来冗余的地方特别多.写一套没啥.如果涉及到多表多查询的时候就容易出现问题.故.官方推荐了一种方法.即MyBa ...

  10. Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息

    首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...

随机推荐

  1. abc

    无类型: 汇编弱类型.静态类型 : C/C++弱类型.动态类型检查: Perl/PHP强类型.静态类型检查 :Java/C#强类型.动态类型检查 :Python, Scheme静态显式类型 :Java ...

  2. 在下载SOPC代码的过程中遇到的一些错误

    (1)Error (209015): Can't configure device. Expected JTAG ID code 0x02D120DD for device 2, but found ...

  3. Tesseract--主要API功能介绍

    tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中.     从其处理过程中,不难得出:它还需要有一个image处理的类,及相关的方法:这样子, ...

  4. 魔力Python——对象

    Python之中,一切皆对象. 本文分为4部分: 1. 面向对象:初识 2. 面向对象:进阶 3. 面向对象:三大特性----继承,多态,封装 4. 面向对象:反射 0. 楔子 面向过程和面向对象的是 ...

  5. mockito 异常Reason: java.io.IOException: invalid constant type: 18

    原因: mockito内部使用的javassit的版本不一致导致的,修改为一直版本即可. 异常内容: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jd ...

  6. springboot性能优化

    一.扫描优化 原文链接:http://www.studyshare.cn/blog-front/blog/details/1135 SpringBoot项目中的启动类,会使用@SpringBootAp ...

  7. NSIS 查找目录下的所有文件夹

    在制作安装包的时候,需要查看下某一目录下的所有文件夹的名称.经过查资料发现需要用到NSIS 的一个插件Locate.下载该插件后,会在NSIS的安装目录 ...Program Files\NSIS\P ...

  8. JSP/Servlet基础

    动态网页的技术 html+css javascript(弱语言) jquery(改造) jsp(java的html) servlet(核心) S2SH:structs2 (springmvc) spr ...

  9. 项目需求分析与建议-NABCD模型

    N(Need 需求) 首先我们的创意解决了现有阶段学校查空余教师的问题,充分解决了同学们上自习却找不到教室的苦衷,同时也会适当的拓展一些适当的学习计时功能或者每日一语等等,来帮助同学们来控制好学习时间 ...

  10. Hbase--知识点总结3

    Hbase知识点总结:  hbase表中为什么列族的数量不能太多? 因为当一个列族数据溢写的时候,其他列族也会发生数据溢写,但是其他列族中数据的数量还没有达到溢写的阈值,就会导致产生的小文件数量增多. ...