【mybatis基础】mybatis开发dao两种方法
来源:互联网 发布:sass for mac中文版 编辑:程序博客网 时间:2024/06/05 03:27
mybatis是一个支持普通SQL查询,存储过程和高级映射的优秀的持久层的框架,是apache下的顶级项目。mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO映射成数据库中的记录。
其中,开发dao有两种方法,一种原始的dao开发方法,程序员需要写dao接口和dao实现类。另一种是mapper代理方法,程序员只需要写mapper接口相当于dao接口。
原始dao开发方法
1.编写dao接口(UserDao)
public interface UserDao {// 根据id查询用户信息public User findUserById(int id) throws Exception;}
2.编写dao实现类
public class UserDaoImpl implements UserDao {// 需要向dao实现类中注入SqlSessionFactory// 这里通过构造方法注入private SqlSessionFactory sqlSessionFactory;public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}@Overridepublic User findUserById(int id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();//这里的test.findUserById是与下面的映射文件user.xml中的namespace+id有关。User user = sqlSession.selectOne("test.findUserById", id);// 释放资源sqlSession.close();return user;}}
3.编写映射文件(user.xml)
<mapper namespace="test"><select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">SELECT * FROM USER WHERE id=#{value}</select></mapper>
4.编写测试类
public class UserDaoImplTest {private SqlSessionFactory sqlSessionFactory;// 此方法是在执行testFindUserById之前执行@Beforepublic void setUp() throws Exception {// 创建sqlSessionFactory// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);// 创建会话工厂,传入mybatis的配置文件信息sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testUserDaoImpl() throws Exception{// 创建UserDao的对象UserDao userDao = new UserDaoImpl(sqlSessionFactory);// 调用UserDao的方法User user = userDao.findUserById(1);System.out.println(user);}}测试结果:
mapper代理方法
1.编写mapper.java(UserMapper.java相当于java接口)
public interface UserMapper {// 根据id查询用户信息public User findUserById(int id) throws Exception;}
2.编写mapper.xml(UserMapper.xml)
<mapper namespace="cn.itcast.mybatis.mapper.UserMapper"><!--通过id查询用户表的记录 --><select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">SELECT * FROM USER WHERE id=#{value}</select></mapper>
注意:
(1)在mapper.xml中namespace等于mapper接口地址
(2)mapper.java接口中的方法名和mapper.xml中statement的id一致
(3)mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。
(4)mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。
3.编写测试类
public class UserMapperTest {private SqlSessionFactory sqlSessionFactory;// 此方法是在执行testFindUserById之前执行@Beforepublic void setUp() throws Exception {// 创建sqlSessionFactory// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);// 创建会话工厂,传入mybatis的配置文件信息sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {SqlSession sqlSession=sqlSessionFactory.openSession();//创建UserMapper对象,mybatis自动生成mapper代理对象UserMapper userMapper =sqlSession.getMapper(UserMapper.class);//调用UserMapper的方法User user=userMapper.findUserById(1);System.out.println(user);sqlSession.close();}}测试结果:
现在最常用的方法是第二种使用mapper代理的方法,不过第一种也有公司在用所以两种都要知道。
2 0
- 【mybatis基础】mybatis开发dao两种方法
- Mybatis开发dao两种方法
- mybatis总结(4)---Mybatis 开发DAO两种方法
- 【MyBatis框架点滴】——MyBatis开发DAO的两种方法:原始DAO开发方法和Mapper代理方法
- MyBatis开发dao的两种方式
- mybatis开发dao方法
- mybatis开发dao方法
- mybatis开发DAO的2种方法
- MyBatis学习--mybatis开发dao的方法
- 【SpringMVC+mybatis】5.mybatis开发dao方法
- Mybatis开发dao的方法
- mybatis开发dao的方法
- mybatis开发dao的方法
- mybatis学习笔记(4)-开发dao方法
- 【MyBatis】开发dao方法的比较
- mybatis3--3.mybatis开发dao的方法
- mybatis 用原始的dao方法开发
- 【Mybatis】——开发DAO方法
- IOS在后台每隔一段时间执行一下 资料2
- 时间复杂度与空间复杂度
- bzoj 1176: [Balkan2007]Mokia 【CDQ分治】
- hdoj-5590-ZYB's Biology
- Java 代码块
- 【mybatis基础】mybatis开发dao两种方法
- Oracle 11g 管理Oracle 集群
- ios在后台每隔一段时间执行一下 资料3
- 24点游戏-穷举破解
- 二叉搜索树中找出比K大的最小的那个数
- LeetCode 242. Valid Anagram C语言
- BFS 搜索 Problem 1015 Knight Moves "马走日"之最少步数
- 关于Handler以及Looper,MessageQueen等
- hdoj-5591-ZYB's Game