博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在web项目中应用Mybatis
阅读量:6004 次
发布时间:2019-06-20

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

  hot3.png

mybatis环境准备

  1. 加入所需jar包 工程结构

所需jar包,博主有上传资源

在开始之前我们有必要了解mybatis执行流程:

①SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定的)配置了数据源、事务等mybatis运行环境、配置映射文件(配置sql语句) mapper.xml(映射文件)、mapper.xml、mapper.xml.....

②SqlSessionFactory(会话工厂),根据配置文件创建工厂 作用:创建SqlSession

③SqlSession(会话),是一个接口,面向用户(程序员)的接口 作用:操作数据库(发出sql增、删、改、查)

④Executor(执行器),是一个接口(基本执行器、缓存执行器) 作用:SqlSession内部通过执行器操作数据库

⑤mapped statement(底层封装对象) 作用:对操作数据库存储封装,包括 sql语句,输入参数、输出结果类型

SqlMapConfig.xml

db.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8jdbc.username=rootjdbc.password=111111

log4j.properties

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

mybatis开发dao

  1. 开发原始dao的方法 ①dao接口
public interface UserDao {	//根据id查询用户信息	public User findUserById(int id) throws Exception;}

②dao接口实现类

public class UserDaoImpl implements UserDao{		//需要向dao实现类中SqlSessionFactory	//通过构造函数注入	private SqlSessionFactory sqlSessionFactory;	public UserDaoImpl(SqlSessionFactory sqlSessionFactory){		this.sqlSessionFactory = sqlSessionFactory;	}	@Override	public User findUserById(int id) throws Exception {		SqlSession sqlSession = sqlSessionFactory.openSession();		User user = sqlSession.selectOne("test.findUserById", id);		sqlSession.close();		return user;	}}

③测试代码

public class UserDaoImplTest {	//创建sqlSessionFactory	private SqlSessionFactory sqlSessionFactory;	@Before	public void setUp() throws Exception{		//加载mybatis配置文件		String resource = "SqlMapConfig.xml";		//得到配置文件流		InputStream inputStream = Resources.getResourceAsStream(resource);		//创建会话工厂,传入mybatis的配置文件信息		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);	}	@Test	public void testFindUserById() throws Exception {		//创建UserDao的对象		UserDao userDao = new UserDaoImpl(sqlSessionFactory);		//调用UserDao的方法,并打印		System.out.println(userDao.findUserById(1));	}}

测试结果

  1. mapper代理方法 ①mapper.java
public interface UserMapper {	public User findUserById(int id) throws Exception;}

②mapper.xml

③在SqlMapConfig.xml文件加载mapper.xml

④测试代码

public class UserMapperTest {	private SqlSessionFactory sqlSessionFactory;	@Before	public void setUp() throws Exception{		String resource = "SqlMapConfig.xml";		InputStream inputStream = Resources.getResourceAsStream(resource);		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);	}	@Test	public void testFindUserById() throws Exception {		SqlSession sqlSession = sqlSessionFactory.openSession();		//创建UserMapper对象,mybatis自动生成mapper代理对象		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);		User user = userMapper.findUserById(1);		sqlSession.close();		System.out.println(user);	}}

如果mapper方法返回单个pojo对象(非集合对象),代理对象内部通过selectOne查询数据库。 如果mapper方法返回集合对象,代理对象内部通过selectList查询数据库。

总结

在此博客中,只介绍了mybatis最简单的使用方法,适合初学者快速入门,但是想要深入了解mybatis,还需要大家一起努力(推荐看一些mybatis的培训视频)。

转载于:https://my.oschina.net/zili/blog/1031443

你可能感兴趣的文章
二分法和牛顿迭代法
查看>>
OutLook The profile name you entered already exists.Enter a different profile name.
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
The Unique MST
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
申请Let’s Encrypt免费证书,给自己网站增加https访问
查看>>
javascript+html 实现隐藏 显示
查看>>
BZOJ 2120 数颜色
查看>>
正则表达式学习笔记——基础知识
查看>>
织梦如何实现二级栏目导航的仿制
查看>>
网上购物系统(Task010)——FormView编辑更新商品详细信息
查看>>
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
《编程之美》——寻找发帖“水王”学习与扩展 转surymj博客
查看>>
Linux 虚拟机VMware安装失败,提示没有选择磁盘
查看>>
LeetCode-Permutations
查看>>
SpringMVC的REST风格的四种请求方式
查看>>
漫谈 Clustering (1): k-means(转)
查看>>