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

 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. request和response的常用方法

    一.request   1.setAttribute()在Request域中存储数据  2.setCharacterEncoding()设置请求参数的编码方式,只对post请求有效  3.getMet ...

  2. python3 写excel文件 xlsxwriter模块

    之前一直用这个传说中可以让python飞起来的xlwings模块来写入excel文件,今天发现xlsxwriter模块,发现这才是飞起来的feel!! 使用体验对比: xlwings:写入7000+单 ...

  3. Django上传文件和上传图片(不刷新页面)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. V-REP Remote API(C++)实现简单的关节转动

    基础内容参考:https://www.cnblogs.com/eternalmoonbeam/p/10753149.html V-REP客户端设置: 在V-REP场景文件中需要添加三个实体,包括两个形 ...

  5. 非web环境的注解配置的spring项目应用(non-web, Spring-data-jpa, JavaConfig, Java Application, Maven, AnnotationConfigApplicationContext)

    非web环境的spring应用 springframework提供的spring容器,非常适合应用于javaweb环境中. 同时,spring组件的低耦合性为普通java应用也提供了足够的支持. 以下 ...

  6. xcode打包命令

    xcodebuild clean -workspace Myproject.xcworkspace -scheme myProject xcodebuild archive -workspace My ...

  7. css:伪类和伪元素

    一:伪类 1.   :active   想被激活的元素添加样式 2.   :focus   向拥有键盘输入焦点的元素添加样式 3.   :hover   当鼠标悬浮在元素上方时,向元素添加样式 4.  ...

  8. CountDownLatch原理及使用场景

    CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量.每当一个线程完成了自己的任务后,计数器的值就会减1.当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁 上 ...

  9. 如何解决 快速点击多次触发的bug 期望快速点击只一次生效

    var lastClick; lockClick(){ var nowClick = new Date(); if (lastClick === undefined) { lastClick = no ...

  10. CSS预处器的了解

    到目前为止,在众多优秀的CSS预处理器语言中就属Sass.LESS和Stylus最优秀,讨论的也多,对比的也多. 1.Sass背景介绍 Sass是对CSS(层叠样式表)的语法的一种扩充,诞生于2007 ...