Mybatis面向接口编程、参数传递
来源:互联网 发布:淘宝网变形金刚玩具 编辑:程序博客网 时间:2024/05/17 03:42
先写一个接口:
package com.dw.dao;import java.util.List;import com.dw.entity.User;public interface UserDao { public void insertUser(User user); public void deleteUser(Integer id); public List selectById(Integer id); public void updateUser(User user);}
这里不再写接口的实现类,通过xml文件,并在其中写入要执行的逻辑的sql语句;通过getMapper()方法可以得到该接口的代理对象:
xml:
<?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.dw.dao.UserDao"> //这里要写接口的类名 <insert id="insertUser" parameterType="com.dw.entity.User"> insert into user(username,password) values(#{username},#{password}) </insert> <delete id="deleteUser" parameterType="com.dw.entity.User"> delete from user where user.id=#{id} </delete> <select id="selectById" resultType="com.dw.entity.User"> //id要与接口中的方法名一致 select * from user as u where u.id=#{id} </select> <update id="updateUser" parameterType="com.dw.entity.User"> update user as u set u.username=#{username},u.password=#{password} where u.id=#{id} </update> </mapper>
测试:
package com.dw.dao.test;import java.io.IOException;import java.io.InputStream;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 com.dw.dao.UserDao;import com.dw.entity.User;public class daoTest {private SqlSession session;private InputStream inputStream ;private SqlSessionFactory sessionFactory;private UserDao userDao;//测试增删查改 @Test public void testInsert(){ init(); User user = new User(); user.setUsername("纣王"); user.setPassword("123456"); userDao.insertUser(user); session.commit(); destory(); } @Test public void testDelete(){ init(); userDao.deleteUser(4); session.commit(); destory(); } @Test public void testSelect(){ init(); User user = (User)(userDao.selectById(3).iterator().next()); System.out.println("user:"+user); session.commit(); destory(); } @Test public void testUpdate(){ init(); User user = (User)(userDao.selectById(2).iterator().next()); user.setUsername("张三"); userDao.updateUser(user); session.commit(); destory(); } private void init(){try {inputStream = Resources.getResourceAsStream("config.xml");sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);session = sessionFactory.openSession();userDao = session.getMapper(UserDao.class);} catch (IOException e) {e.printStackTrace();<parameterMap type="com.dw.entity.User" id="userMap"> <parameter property="username"/> <parameter property="password"/> </parameterMap> <insert id="inserMap" parameterMap="userMap"> insert into user(username,password) values(#{u},#{p}) </insert>
}}private void destory(){if(session != null){session.close();}if(inputStream != null){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}} }-------------------------------------------------------------------------------------------------------------------
参数传递:
1、八种基本类型、POJO类 ,可以用parameterType也可以不用
2、Map 类型:
可以使用parameterMap , 也可以不用:
使用parameterMap 时:
<parameterMap type="com.dw.entity.User" id="userMap"> <parameter property="username"/> <parameter property="password"/> </parameterMap> <insert id="inserMap" parameterMap="userMap"> insert into user(username,password) values(#{u},#{p}) </insert>@Test public void testMap(){ init(); Map<String, String> mp = new HashMap<String, String>(); mp.put("u", "冷锋"); mp.put("p", "123456"); userDao.inserMap(mp); session.commit(); destory(); }注意 u 、p参数要一致
阅读全文
0 0
- Mybatis面向接口编程、参数传递
- mybatis--面向接口编程
- Mybatis面向接口编程
- Mybatis 面向接口编程
- Mybatis面向接口编程
- mybatis面向接口编程的小案例
- MyBatis入门学习二:面向接口编程
- MyBatis-----MyBatis传递数组参数
- MyBatis 实战-使用 maven 构建(2)- 面向接口编程
- 自学mybatis(二)-----面向接口编程实现CRUD
- mybatis传递多种参数
- mybatis 之参数传递
- mybatis传递参数
- mybatis传递参数
- mybatis多参数传递
- Mybatis参数传递记录
- Mybatis参数传递总结
- MyBatis多参数传递
- 【Mybatis学习】Mybatis的解析和运行简要介绍
- 简单排序
- MFC列表控件的使用
- 深入理解Java虚拟机(7)
- android屏幕适配
- Mybatis面向接口编程、参数传递
- POJ
- 逆序数&行列式&矩阵乘法&逆矩阵【线性代数】
- EMOTIVE EPOC和EPOC + 快速入门指南
- 【量化小讲堂-Python&Pandas系列18】平均趋向指标(ADX)策略在A股的实证
- HTTP状态码
- ActionScript 中的继承
- react---react router4.0路由中如何异步动态加载组件,webpack使用require.ensure()生成异步chunk
- javaSE