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 ...
随机推荐
- python-day19 Django模板,路由分发,ORM
@获取文件所有数据 request.FILES: request.POST.get('fafafa')#拿到文件名: user = request.POST.get('user',None)#用get ...
- 加载配置文件-properties
Properties jdbcProp = new Properties(); jdbcProp.load(getClass().getResourceAsStream("/jdbc.pro ...
- 关于python的一些想法
我来自信息管理与信息系统专业,大一学过c语言但不太精通.学习python是为了学会这门新语言,据了解python会慢慢成为主流编程语言. 因为对绘图方面很感兴趣,希望老师能够在课上多讲一些这方面的东西 ...
- go 语言学习笔记(一)
本次学习目的:熟悉了解 go 语言特点,实现基本功能. 1.readfile.go package main import ( "bufio" "fmt" &q ...
- Delphi 窗口操作
unit UnitWinUtils; interface uses Windows; Type TDWA128=Array [..] of LongWord; TDWA256=Array [..] o ...
- cookies相关概念
1.什么是Cookie Cookie实际上是一小段的文本信息.客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie.客户端浏览器会把Cookie保存 ...
- MATLAB入门笔记
% MATLAB:MATLAB 为 Matrix Laboratory ,用来处理矩阵可编程可实现算法逻辑的计算工具% % eg:1 绘制正弦和余弦曲线x=[0:0.1:4*pi]; %建立角度向量p ...
- vs中添加库文件WinMM.Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\WinMM.Lib;
- PhoenixFD插件流体模拟——UI布局【Gird】详解
流体网格 本文主要讲解Grid折叠栏中的内容 主要内容 Overview 综述 Parameters 参数 General 普通参数 Example: Scene Scale Example: Gri ...
- python--第二十三天总结(一对多和多对多)
Django 的 ORM 有多种关系:一对一,多对一,多对多. 各自定义的方式为 : 一对一: OneToOneField 多对一: ForeignKey 多 ...