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 ...
随机推荐
- OO第二单元(电梯)单元总结
OO第一单元(求导)单元总结 这是我们OO课程的第二个单元,这个单元的主要目的是让我们熟悉理解和掌握多线程的思想和方法.这个单元以电梯为主题,从一开始的最简单的单部傻瓜调度(FAFS)电梯到最后的多部 ...
- Linux如何查看端口
Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...
- idea使用
一.IDEA 的下载及安装 打开IDEA的官网,如:http://www.jetbrains.com/ 然后到了主界面,点击下载如图: 图1 我们这里下载zip的,将它下载到你要保存的目录下,其次 ...
- PHP超全局变量$_SERVER分析
$_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建.不能保证每个服务器都 ...
- 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!
微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...
- Habits of Considerate People
Habits of Considerate People体贴人的八种习惯哲学家亚瑟·叔本华曾经说过:“蜡之可贵,在于燃烧自己温暖他人,人之可贵,在于屈尊敬贤彬彬有礼”,事实的确如此.善意与体贴能够抚慰 ...
- 【第二组】Hunter——beta版发布文档
软件测试报告 一.bug情况汇总 尚需解决以及难以解决的: 登录时会有卡顿,需要加入加载进度条(会添加的) 商城和背包功能尚未实现(需要修复) 美工水平太差,让人没有使用的欲望(大概接下来就专门做这个 ...
- 用spring的@Scheduled实现定时任务
先在spring的配置文件中添加扫描 在applicationContext.xml中添加 <task:annotation-driven/>,我用的是idea有提示功能 选择第一个后会 ...
- python中文件处理--判断文件读取结束方法
一.readline函数 按行遍历读取文件的方法,通过这个方法,readline() 每次只读取一行,通常比 .readlines() 慢得多.仅当没有足够内存可以一次读取整个文件时,才应该使用 .r ...
- webpack 4.0配置2
上个博客记录了webpack 的基本配置今天主要是css-loader的介绍,包括单独提出css,压缩css.js文件 这里使用的插件npm 地址:https://www.npmjs.com/pack ...