
MyBatis(二)——MyBatis入门实例
发布日期:2021-05-07 10:04:29
浏览次数:15
分类:精选文章
本文共 4080 字,大约阅读时间需要 13 分钟。
文章目录
一、创建student表(id,name,email,age)
二、新建maven项目、修改pom.xml文件
1、设置编码方式
2、加入依赖 mybatis依赖, mysql驱动, junit单元测试
3、加入资源插件
UTF-8 1.8 1.8 org.mybatis mybatis 3.5.6 mysql mysql-connector-java 5.1.27 junit junit 4.13.2 test src/main/java **/*.properties **/*.xml false
如果不配置资源插件,后面xml文件是找不到的:

3、创建实体类Student。定义属性, 属性名和列名保持一致
public class Student { private Integer id; private String name; private String email; private Integer age;}
4、创建Dao接口, 定义操作数据库的方法
public interface StudentDao { Student selectStudentById(Integer id);}
5、创建xml文件(mapper文件), 写sql语句
mybatis官方文档:
6、创建mybatis的主配置文件(xml文件):仅有一个, 放在resources目录下
1.定义创建连接实例的数据源(DataSource)对象
2.指定其他mapper文件的位置
7、创建测试的内容
public class MyTest { @Test public void testSelectById() throws IOException { //调用mybatis某个对象的方法,执行mapper文件中的sql语句 //mybatis核心类: SqlSessionFactory //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径 String config="mybatis.xml"; //2.读取主配置文件。使用mybatis框架中的Resources类 InputStream inputStream = Resources.getResourceAsStream(config); //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); //4.获取SqlSession对象。 SqlSession session = factory.openSession(); //5.指定要执行的sql语句的 id // sql的id = namespace+"."+ select|update|insert|delete标签的id属性值 String sqlId = "com.macay.dao.StudentDao"+"."+"selectStudentById"; // 6.通过SqlSession的方法,执行sql语句 Student student = session.selectOne(sqlId); System.out.println("使用mybatis查询一个学生:"+student); // 7.关闭SqlSession对象 session.close(); }}
结果如下:

8、MyBatis的一些重要对象
(1)、 Resources : mybatis框架中的对象, 一个作用读取 主配置信息。
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
(2)、SqlSessionFactoryBuilder:负责创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
(3)、SqlSessionFactory: 重要对象
SqlSessionFactory是重量级对象:创建此对象需要使用更多的资源和时间。 在项目中有一个就可以了。
DefaultSqlSessionFactory实现类public class DefaultSqlSessionFactory implements SqlSessionFactory { }
SqlSessionFactory接口:作用是SqlSession的工厂, 就是创建SqlSession对象。
SqlSessionFactory接口中的方法
openSession(): 获取一个默认的SqlSession对象, 默认是需要手工提交事务的。
openSession(boolean): boolean参数表示是否自动提交事务。 true: 创建一个自动提交事务的SqlSession false: 等同于没有参数的openSession(4)、SqlSession对象
SqlSession对象是通过SqlSessionFactory获取的。 SqlSession本身是接口
DefaultSqlSession: 实现类public class DefaultSqlSession implements SqlSession { }
SqlSession作用是提供了大量的执行sql语句的方法:
selectOne:执行sql语句,最多得到一行记录,多余1行是错误。
selectList:执行sql语句,返回多行数据 selectMap:执行sql语句的,得到一个Map结果 insert:执行insert语句 update:执行update语句 delete:执行delete语句 commit:提交事务 rollback:回顾事务
注意SqlSession对象不是线程安全的, 使用的步骤:
①:在方法的内部,执行sql语句之前,先获取SqlSession对象
②:调用SqlSession的方法,执行sql语句
③:关闭SqlSession对象,执行SqlSession.close()
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月16日 10时55分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
2019-03-05
Decision tree(决策树)算法初探
2019-03-05
《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
2019-03-05
sctf_2019_easy_heap
2019-03-06
AT 杂题泛做
2019-03-06
StringBuilder拼接字符串,“,”在前还是在后问题
2019-03-06
给asterisk1.8.7添加menuselct选项
2019-03-06
组合模式
2019-03-06
PyQt5之音乐播放器
2019-03-06
css居中方法与双飞翼布局
2019-03-06
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2019-03-06
SQL注入
2019-03-06
XCTF-upload1
2019-03-06
LeetCode 题解 | 1. 两数之和
2019-03-06
#2036:改革春风吹满地
2019-03-06
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2019-03-06