Mybatis之mapper代理方法
2016-09-21 20:00
393 查看
开发规范:
在mapper.xml中namespace等于mapper接口地址
mapper.java接口中的方法名和mapper.xml中statement的id一致
mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。
mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致
mapper接口:
在mapper.xml中namespace等于mapper接口地址
mapper.java接口中的方法名和mapper.xml中statement的id一致
mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。
mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致
mapper接口:
package com.itachi.mybatis.mapper; import java.util.List; import com.itachi.mybatis.bean.User; public interface UserMapper { public abstract User findUserById(int id) throws Exception; public abstract void insertUser(User user) throws Exception; public abstract void deleteUser(int id) throws Exception; public abstract void updateUser(User user) throws Exception; public abstract List<User> findAll() throws Exception; }映射文件:
<?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.itachi.mybatis.mapper.UserMapper"> <select id="findUserById" parameterType="int" resultType="com.itachi.mybatis.bean.User"> select * from user where id=#{id} </select> <select id="findAll" resultType="com.itachi.mybatis.bean.User"> select * from user </select> <insert id="insertUser" parameterType="com.itachi.mybatis.bean.User"> insert into user(username, birthday, sex, address) values(#{username}, #{birthday}, #{sex}, #{address}) </insert> <update id="updateUser" parameterType="com.itachi.mybatis.bean.User"> update user set username=#{username}, birthday=#{birthday}, sex=#{sex}, address=#{address} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from user where id=#{id} </delete> </mapper>配置文件:
<?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> <!-- 和spring整合后,environments配置将废除 --> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis --> <transactionManager type="JDBC"/> <!-- 数据库连接池,由mybatis控制 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/???"/> <property name="username" value="???"/> <property name="password" value="???"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/User.xml"/> <mapper resource="mapper/mapper.xml"/> </mappers> </configuration>测试类:
package com.itachi.mybatis.test; 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.Before; import org.junit.Test; import com.itachi.mybatis.bean.User; import com.itachi.mybatis.mapper.UserMapper; public class UserMapperTest { private SqlSessionFactory sqlSessionFactory; // 此方法是在执行testFindUserById之前执行 @Before public void setUp() throws Exception { // 创建sqlSessionFactory // mybatis配置文件 String resource = "Mybatis-config.xml"; // 得到配置文件流 InputStream inputStream = Resources.getResourceAsStream(resource); // 创建会话工厂,传入mybatis的配置文件信息 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } @Test public void findUserByIdTest() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.findUserById(1); System.out.println(user); } @Test public void insertUserTest() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = new User(); user.setAddress("冰岛"); user.setBirthday(new Date()); user.setSex("1"); user.setUsername("itachi"); userMapper.insertUser(user); sqlSession.commit(); sqlSession.close(); } @Test public void updateUserTest() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = new User(); user.setId(30); user.setUsername("长的萨"); userMapper.updateUser(user); sqlSession.commit(); sqlSession.close(); } @Test public void deleteUserTest() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.deleteUser(30); sqlSession.commit(); sqlSession.close(); } @Test public void findAllTest() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> list = userMapper.findAll(); for (User user : list) { System.out.println(user); } } }总结:与dao方法开发相比,mapper代理方法降低了硬编码带来的不便,因此推荐使用mapper代理方法
相关文章推荐
- 【MyBatis学习04】mapper代理方法开发dao
- MyBatis Mapper代理使用方法详解
- 【Mybatis】——mapper代理方法
- 【MyBatis学习04】mapper代理方法开发dao
- Mybatis之使用mapper代理方法开发dao(程序员只需要写mapper接口(dao接口))(12)
- 10_Mybatis开发Dao方法——mapper代理实现
- mybatis的mapper动态代理方法
- Mybatis学习(05)-mapper代理方法开发dao && 输入映射和输出映射
- mybatis mapper代理方法实现单表的增删改查
- Mybatis (三)原始DAO开发和mapper代理方法
- Mybatis中mapper代理方法替换原始Dao开发方法
- 【MyBatis学习04】mapper代理方法开发dao
- Mybatis中mapper代理方法
- 【MyBatis学习04】mapper代理方法开发dao
- MyBatis_mapper代理开发方法
- mybatis学习笔记,mapper代理方法的使用
- [置顶] 【Mybatis】深入浅出Mybatis(六)——mapper代理方法使用
- 【MyBatis学习04】mapper代理方法开发dao
- mybatis框架(2)---mapper代理方法
- Mybatis mapper代理开发方法实现增删改查