知识为进步之母,而进步又为富强之源泉。这篇文章主要讲述mybatis的dao的mapper写法相关的知识,希望能为你提供帮助。
p.p1 { margin: 0.0px 0.0px 13.0px 0.0px;
text-align: justify;
font: 16.0px Arial;
color: #000000 }
span.s1 { }
span.s2 { font: 16.0px "PingFang TC" }## MyBatis的Dao编写【mapper代理方式实现】
【mybatis的dao的mapper写法】
step1: 写一个接口,并写抽象方法
1 package com.sjl.mapper; 2 3 import com.sjl.model.User; 4 5 public interface UserMapper { 6/* 7* 保存一个用户 8* */ 9public int save(User user); //返回受影响的行数 10public User findUserById(int id); 11 }
step2: 在同包下建一个UserMapper.xml(具体sql方法的显现类的方法的实现),这个相当于
是dao的实现类,mybatis会为mapper接口生成动态代理实现类;
(说明:入参,返回值,id等要与接口类中的对应,具体看下面的注释)
1 < ?xml version="1.0" encoding="UTF-8" ?> 2 < !DOCTYPE mapper 3PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 6 < mapper namespace="com.sjl.mapper.UserMapper"> 7< insert id="save" parameterType="com.sjl.mapper.User"> 8insert into user(username,sex,birthday,address) 9value (#{username},#{sex},#{birthday},#{address}); 10< /insert> 11 12< !--受影响的返回的行数不用写,可以不用写,无意义?--> 13 14< select id="findUserById" parameterType="int" 15resultType="com.sjl.mapper.User"> 16 17< /select> 18 19 < /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:测试类;
1 package com.sjl.test; 2 3 import com.sjl.mapper.UserMapper; 4 import com.sjl.model.User; 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 import org.junit.After; 10 import org.junit.Before; 11 import org.junit.Test; 12 13 import java.io.IOException; 14 import java.io.InputStream; 15 import java.util.Date; 16 import java.util.List; 17 18 public class Demo02 { 19SqlSession session; 20 21@Before 22public void before() throws IOException{ 23System.out.println("before...获取session"); 24//a)读取配置文件; 25InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml"); 26//b)通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂 。 27SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is); 28// c)通过SqlSessionFactory创建SqlSession。 29session=sessionFactory.openSession(); 30} 31@After 32public void after(){ 33 34//关闭SqlSession。 35session.close(); 36} 37 38@Test 39public void test1() throws IOException{ 40//通过session拿到这个接口的代理代理直接转成接口的实现类,并指向UserMapper这个接口 41UserMapper userMapper=session.getMapper(UserMapper.class); 42 43//获取数据 44System.out.println(userMapper.findUserById(1)); 45 46//保存 47User user2=new User("xx","x",new Date(),"xx"); 48userMapper.save(user2); 49session.commit(); 50} 51 }
推荐阅读
- Installing Apps Kattis - installingapps (贪心 + 背包)
- 微信扫一扫二维码跳转手机外部浏览器打开下载app的链接是怎么实现的
- Android6.0 添加Menu菜单组件
- 微信APP为什么有的软件下载不了 如何实现微信跳转浏览器下载APP
- android主线程ActivityThread
- 微信浏览器无法跳转到apk下载链接微信分享的app下载不了
- 还在期待安卓9.0吗(Android 10.0要来了)
- Appium-desktop使用时的一些配置
- 做自己的安卓拍照应用,其实很简单