博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.Mybatis两种开发模式
阅读量:5221 次
发布时间:2019-06-14

本文共 4299 字,大约阅读时间需要 14 分钟。

普通模式

自定义接口,接口实现类。

思考:需要sqlSessionFactory,生产sqlSession

UserDao:

package dao;import java.util.List;import domain.User;public interface UserDao {	//根据Id查询用户	public User findUserByID(Integer id);	//根据用户名进行模糊查询	public List
findUserByUsername(String username);}

UserDaoImpl:

package dao.impl;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import dao.UserDao;import domain.User;public class UserDaoImpl implements UserDao{		//namespace	private String ns="test.";	private SqlSessionFactory sqlSessionFactory;	public UserDaoImpl(SqlSessionFactory sqlSessionFactory){		this.sqlSessionFactory=sqlSessionFactory;	}		public User findUserByID(Integer id) {		SqlSession sqlSession=sqlSessionFactory.openSession();		User user = sqlSession.selectOne(ns+"findUserByID",id);				return user;	}	public List
findUserByUsername(String username) { SqlSession sqlSession=sqlSessionFactory.openSession(); List
list=sqlSession.selectList(ns+"findUserByUsername", username); return list; }}

Main3:

package test;import static org.hamcrest.CoreMatchers.nullValue;import java.io.IOException;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 dao.UserDao;import dao.impl.UserDaoImpl;import domain.User;public class Main3 {	SqlSessionFactory sqlSessionFactory=null;		@Before	public void beforeConf() throws IOException{		String resources="sqlMapConfig.xml";		InputStream inputStream=Resources.getResourceAsStream(resources);		sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);			}		//普通dao开发模式	@Test	public void commonDao(){		UserDao userDao=new UserDaoImpl(sqlSessionFactory);		//根据Id查询用户		User user1 = userDao.findUserByID(16);		System.out.println("user1:::"+user1);				//根据名字模糊查询用户		List
list = userDao.findUserByUsername("张"); System.out.println(list); }}

  

接口代理开发模式

自需要定义接口。

开发约定:

l 映射文件namespace必须是接口全类路径名。

l 映射文件的Statementid必须和接口的方法名一致。

sqlMapConfig.xml:

User.xml:

UserMapper:

package dao;import java.util.List;import domain.User;public interface UserMapper {	//根据Id查询用户	public User findUserByID(Integer id);	//根据用户名进行模糊查询	public List
findUserByUsername(String username);}

Main1:

package test;import java.io.IOException;import java.io.InputStream;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 dao.UserMapper;import domain.User;public class Main1 {	SqlSessionFactory sqlSessionFactory=null;		@Before	public void beforeConf() throws IOException{				String resources = "sqlMapConfig.xml";		InputStream inputStream = Resources.getResourceAsStream(resources);		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);	}	//接口代理开发模式	@Test	public void proxyInterface(){		SqlSession sqlSession=sqlSessionFactory.openSession();				//获取代理对象		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);		//根据Id查询		User user = userMapper.findUserByID(24);		System.out.println(user);				//根据用户名进行模糊查询		List
users=userMapper.findUserByUsername("张"); System.out.println(users); }}

  

SqlMapConfig.xml配置文件

 

 

  

 

  

  

 

  

转载于:https://www.cnblogs.com/syj1993/p/8605899.html

你可能感兴趣的文章
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
js += 含义(小知识)
查看>>
B2321 [BeiJing2011集训]星器 数学&&物理
查看>>
201571030319 四则运算
查看>>
RestTemplate 调用本地服务 connection refused
查看>>
.NET方向高级开发人员面试时应该事先考虑的问题
查看>>
台达PLC modbus 不支持04功能码
查看>>
python学习笔记--装饰器
查看>>
发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!
查看>>
discuz 常用脚本格式化数据
查看>>
MS CRM 2011 创建基于Fetch的报表 -- 进阶版
查看>>
zabbix 监控zookeeper
查看>>