MybatisMapper 动态映射(增删改查)
//接口内容以及注意事项
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 动态映射(增删改查)的更多相关文章
- Java对象转JSON时如何动态的增删改查属性
1. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON字符串增加额外字段 假如我们有这样结 ...
- (一)Mybatis基本配置,Statement方式,动态代理增删改查
首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...
- 使用C语言封装数组,动态实现增删改查
myArray.h : #pragma once //包含的时候只包含一次 #include <stdio.h> #include <stdlib.h> #include &l ...
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...
- MybatisMapper 映射框架(增删改查 原始模式)
//增删改查 package TestDemo; import java.io.IOException; import java.io.InputStream; import java.util.Da ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- 02.Mybatis的动态代理方式实现增删改查
动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...
- 12 Servlet_04 Servlet增删改查 静态页面与动态页面 EL表达式 table表格的一些样式
今天学习了servlet的增删改查: 存储数据 setAttribute(String name,Object obj );获取数据 getAttribute(String name);删除数据 re ...
- MyBatis学习(三)MyBatis基于动态代理方式的增删改查
1.前言 上一期讲到MyBatis-Statement版本的增删改查.可以发现.这种代码写下来冗余的地方特别多.写一套没啥.如果涉及到多表多查询的时候就容易出现问题.故.官方推荐了一种方法.即MyBa ...
- Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息
首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...
随机推荐
- Jmeter5.1.1的汉化
Jmeter的汉化: 在菜单导航栏,选择options-->choose language-->chinese(simplified)中文简体 默认打开汉化: 编辑jmeter.bat: ...
- python shutil模块&random模块
shutil模块 import shutil shutil.copyfileobj(open("os_.py", "r"), open("os_2.p ...
- 《python编程快速上手》
第一部分 编程基础 @表达式 ** % // @ >>> int(3.4) 3 >>>round(3.555,2)3.56 @判断条件时:0和0.0和‘’都是Fal ...
- MS SQL 数据库状态为SUSPECT(可疑)的处理方法
原文出处:http://www.cnblogs.com/kerrycode/archive/2013/06/10/3131360.html 当SQL SERVER数据库状态为质疑(SUSPECT)状态 ...
- pgsql 常用命令
1.连接到pgsql数据库 psql -U postgres 2.查看所有数据库 \l 3.连接到数据库test \c test 4.查看数据库所有表以及视图 \d 5.查看数据库所有的表 \dt 6 ...
- Echart ,X轴显示的为tooltip内显示的一部分内容放在上面显示的一部分如下图所示
如图所示:X轴只显示tooltip部分内容解决方案 在xAxis下面,实现方法如下 axisLabel: { interval: 0, formatter:function(value) { var ...
- mysql学习二、SQL常用数据类型
一.常用数据类型 二.选择数据类型的原则: 1 业务需要 2 满足第一个条件下,需要存储空间最小的. 三.常用的选择数据类型思路:
- Binder吐槽学习
通过 ProcessState::self()->startThreadPool()新加了一个Binder线程,然后通过IPCThreadState::self()->joinThread ...
- .net MVC简洁的登录页面
初学mvc,参考别人的代码写的 界面效果如下: 代码如下: @{ Layout = null; } <!DOCTYPE html> <html> <head> &l ...
- PostgreSQL 锁等待诊断详解
摘要PostgreSQL和大多数传统RDBMS一样,都设计了大量的锁来保证并发操作的数据一致性. 同时PG在设计锁等待时,以队列方式存储等待锁. 参考 ProcSleep()@src/backend/ ...