## MyBatisDao编写【mapper代理方式实现】

step1: 写一个接口,并写抽象方法

 package com.sjl.mapper;

 import com.sjl.model.User;

 public interface UserMapper {
/*
* 保存一个用户
* */
public int save(User user);//返回受影响的行数
public User findUserById(int id);
}

step2: 在同包下建一个UserMapper.xml(具体sql方法的显现类的方法的实现),这个相当于

是DAO的实现类,MyBatis会为mapper接口生成动态代理实现类;(配置文件相当于是DAO的

实现类,里面是一些具体的增删改查的方法)

(说明:入参,返回值,id等要与接口类中的对应,具体看下面的注释)

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sjl.mapper.UserMapper">
<insert id="save" parameterType="com.sjl.mapper.User">
insert into user(username,sex,birthday,address)
value (#{username},#{sex},#{birthday},#{address});
</insert> <!--受影响的返回的行数不用写,可以不用写,无意义--> <select id="findUserById" parameterType="int"
resultType="com.sjl.mapper.User"> </select> </mapper>
<!--
com.sjl.mapper.UserMapper 包名+接口名
id="save" 方法名
parameterType="com.sjl.mapper.User" 入参
resultType 返回结果
--> step3:在src下的sqlconf.xml中的添加如下内容,加载执行DAO方法的映射文件;
<mappers>
<!--写映射文件的名字-->
<mapper resource="com/gyf/mapper/UserMapper.xml"></mapper>
</mappers>

step4:测试类;
 package com.sjl.test;

 import com.sjl.mapper.UserMapper;
import com.sjl.model.User;
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.After;
import org.junit.Before;
import org.junit.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List; public class Demo02 {
SqlSession session; @Before
public void before() throws IOException{
System.out.println("before...获取session");
//a)读取配置文件;
InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
//b)通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂 。
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
// c)通过SqlSessionFactory创建SqlSession。
session=sessionFactory.openSession();
}
@After
public void after(){ //关闭SqlSession。
session.close();
} @Test
public void test1() throws IOException{
//通过session拿到这个接口的代理 代理直接转成接口的实现类,并指向UserMapper这个接口
UserMapper userMapper=session.getMapper(UserMapper.class); //获取数据
System.out.println(userMapper.findUserById(1)); //保存
User user2=new User("xx","x",new Date(),"xx");
userMapper.save(user2);
session.commit();
}
51 }

--------------------------------------------------------------------------------------------------

MyBatis 入门程序步骤:

1).用Mysql终端建库、建表;

2).添加核心jar包和依赖(Mysql驱动jar);

3).建立日志log4j.properties(用于控制台输出sql的);

4).依据数据库字段进行写一个javaBean

5).src目录下建一个xxxMapper.xml这个映射文件是用来配置sql的。

6)  .src目录下建一个核心配置文件mybatis-config.xml用来配置数据库和数据库连接池等信息,并添加一个文件来加载所有的映射;

7).src目录下建一个测试包,测试包下建一个测试类。

mybatis的dao的mapper写法的更多相关文章

  1. mybatis开发Dao的Mapper动态代理方式

    1. 开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体跟Dao原始方法中接口实现类的方法相 ...

  2. mybatis使用Dao和Mapper方式

    1.配置jdcp.properties数据库连接文件 #mysql database setting jdbc.type=mysql jdbc.driver=com.mysql.jdbc.Driver ...

  3. Mybatis的Dao向mapper传多个参数(三种解决方案)转自《super超人》

    第一种方案 : DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id=" ...

  4. Mybatis的Dao向mapper传多个参数(三种解决方案)

    第一种方案 : DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id=" ...

  5. mybatis的dao向mapper.xml传入多参数

    https://www.cnblogs.com/super-chao/p/7722411.html 如果两种不同类型的参数传入,parameterType可以不写,直接获取#{0},#{1}就可以传入 ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...

  7. mybatis根据数据库表结构自动生成实体类,dao,mapper

    首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifac ...

  8. mybatis自动生成service、dao、mapper

    1.config.properties ## 数据库连接参数 jdbc.driverClass = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://loca ...

  9. MyBatis开发Dao层的两种方式(Mapper动态代理方式)

    MyBatis开发原始Dao层请阅读我的上一篇博客:MyBatis开发Dao层的两种方式(原始Dao层开发) 接上一篇博客继续介绍MyBatis开发Dao层的第二种方式:Mapper动态代理方式 Ma ...

随机推荐

  1. 关于运行python脚本产生__pycache__

    是什么? 用python编写好一个工程,在第一次运行后,总会发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种 *.pyc 或者 *.pyo 文件. python脚本编 ...

  2. 异常的Error与Exception

    一般不可处理:Error:是jvm抛出的严重性问题.已经严重影响程序执行  例如:内存溢出等情况这种问题发生一般不针对处理,直接修改程序. 可处理:Exception: 该体系的特点:子类的后缀名都是 ...

  3. CentOS 查看系统 CPU 个数、核心数、线程数

    1.查看 CPU 物理个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看 CPU 核心数量 grep 'core id' /proc/ ...

  4. DL中train\dev\test集

    转自:https://blog.csdn.net/l8947943/article/details/80328721 training set:训练集是用来训练模型的.遵循训练集大,开发,测试集小的特 ...

  5. 【RPC】综述

    RPC定义 RPC(Remote Procedure Call)全称远程过程调用,它指的是通过网络,我们可以实现客户端调用远程服务端的函数并得到返回结果.这个过程就像在本地电脑上运行该函数一样,只不过 ...

  6. 5个Spark应用实例

    Spark简介: Spark是UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别.最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入HD ...

  7. IntelliJ IDEA 普通java工程如何转为maven工程

    1.项目上右键 Add Framework Support. 2.选择maven,点击OK.

  8. JAVA编程思想学习笔记4-chap10-12-斗之气4段

    1.内部类:Iterator 2..this生成对外部类的引用 3..new:通过外部类对象创建内部类对象 package com.chengjie; public class TestInnerCl ...

  9. Cocos Creator scrollview添加事件的两种方法

    scrollview添加事件 方法一这种方法添加的事件回调和使用编辑器添加的事件回调是一样的,通过代码添加, 你需要首先构造一个 cc.Component.EventHandler 对象,然后设置好对 ...

  10. Unittest + python

    Unittest简单应用 #_*_coding:utf8_*_ import unittest from selenium import webdriver import time class Tes ...