MyBatis使用入门

1背景:用来取代传统的jdbc
2原始jdbc开发存在的问题如下:
①. 数据库连接创建、释放频繁造成系统资源浪费从⽽影响系统性能 。
②. sql 语句在代码中硬编码,造成代码不易维护,实际应⽤ sql 变化的可能较⼤,sql 变动需要改变java代码 。
③. 查询操作时,需要⼿动将结果集中的数据⼿动封装到实体中。插⼊操作时,需要⼿动将实体的数据设置到sql语句的占位符位置 。
应对上述问题给出的解决⽅案:
①. 使⽤数据库连接池初始化连接资源 。
②. 将sql语句抽取到xml配置⽂件中 。
③. 使⽤反射等底层技术,⾃动将实体与表进⾏属性与字段的⾃动映射 。
3总结:mybatis框架执⾏sql并将结果映射为java对象并返回,采⽤ORM思想( 对象关系映射(Object Relational Mapping)解决了实体和数据库映射的问题,对jdbc 进⾏了封装,屏蔽了jdbc api 底层访问细节,使我们不⽤与jdbc api 打交道,就可以完成对数据库的持久化操作 。
具体使用步骤:
1 导⼊依赖

<!--mybatis坐标-->
<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.4.5</version>
</dependency>
<!--mysql驱动坐标-->
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.47</version>
</dependency>
<!--单元测试坐标-->
<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
</dependency>
<!--lombok坐标-->
<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <version>1.16.20</version>
</dependency>
<!--⽇志坐标-->
<dependency>
 <groupId>log4j</groupId>
 <artifactId>log4j</artifactId>
 <version>1.2.17</version>
</dependency>

2 准备数据库环境

create database mybatis;
use mybatis;
CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `username` varchar(32) NOT NULL COMMENT '⽤户名称',
 `sex` char(1) DEFAULT NULL COMMENT '性别',
 `address` varchar(256) DEFAULT NULL COMMENT '地址',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `user` (`id`, `username`, `sex`, `address`)
values(NULL,'Tom','男','北京');
insert into `user` (`id`, `username`, `sex`, `address`)
values(NULL,'Jack','男','上海');
insert into `user` (`id`, `username`, `sex`, `address`)
values(NULL,'Rose','⼥','⻄安');
insert into `user` (`id`, `username`, `sex`, `address`)
values(NULL,'Poll','⼥','利⽐亚');

3 编写User实体

@Data
public class User {
 private Integer id;
 private String username;
 private String sex;
 private String address; }

4 编写MyBatis核⼼⽂件
⽂件名 : SqlMapConfig.xml

<?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>
 <!--配置数据库运⾏环境-->
 <environments default="development">
 <environment id="development">
 <transactionManager type="JDBC"/>
 <dataSource type="POOLED">
 <property name="driver" value="com.mysql.jdbc.Driver"/>
 <property name="url"
value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
 <property name="username" value="root"/>
 <property name="password" value="root"/>
 </dataSource>
 </environment>
 </environments>
 <!--配置关联的SQL语句的映射⽂件-->
 <mappers>
 <mapper resource="UserMapper.xml"/>
 </mappers>
</configuration>

5 编写UserMapper映射⽂件
⽂件名 : UserMapper.xml

<?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="userMapper">
 <!--查询所有⽤户-->
 <select id="findAll" resultType="com.kkb.pojo.User">
 select * from user
 </select>
</mapper>

6 查询所有⽤户

public class UserTest {
 @Test
 public void findAllTest() throws IOException {
 //加载核⼼配置⽂件 SqlMapConfig.xml
 InputStream inputStream =
Resources.getResourceAsStream("SqlMapConfig.xml");
 //构造SQLSessionFactory对象
 SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
 //构造SQLSession对象
 SqlSession sqlSession = sqlSessionFactory.openSession();
 //执⾏查询语句
 List<User> userList = sqlSession.selectList("userMapper.findAll");
 for (User user : userList) {
 System.out.println("user = " + user);
 }
 //释放资源
 sqlSession.close();
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值