mybatis 对jdbc进行封装
把一些基础的功能进行封装,使得用起来更方便。使得程序员更专注于业务开发
mybatis概述
mybatis原属于apache的开源项目,名叫iBatis,2010年6月迁移至Google Code,随着开发团队转投旗下iBatis3.x正式改名为MyBatis
mybatis是一款优秀的持久层框架 IO对象序列化、文件 数据存储到数据库 jdbc dao层 (data access object )
对jdbc进行了封装,简化配置,结果的封装
可以使用特定的XML来配置,将sql语句分离到xml文件中;还可以将数据库中的记录 映射到java的对象中,是一种ORM(对象 关系 映射)实现
支持动态sql,支持缓存 将jdbc接口进行封装
搭建准备
1 创建一张表(sql)
CREATE TABLE USER(
id INT not null PRIMARY KEY AUTO_INCREMENT,
account VARCHAR(20) not null,
PASSWORD VARCHAR(20) not null
)
2 在pom.xml导入jar包 mybatis mysql
<!--配置项目中所依赖的jar的坐标-->
<dependencies>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!--mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
3 创建表对应的实体类(java)
public class User {
private int id;
private String account;
private String password;
}//生成get,set及toString方法
搭建
-
创建mybatis核心配置文件 配置连接数据库信息
<?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.cj.jdbc.Driver"/><!--加载驱动--> <property name="url" value="jdbc:mysql://127.0.0.1:3306/web_db1?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai"/><!--url地址--> <property name="username" value="root"/><!--数据库账号--> <property name="password" value="123"/><!--数据库密码--> </dataSource> </environment> </environments> <!--配置mybatis sql映射文件--> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
可参考官网:https://mybatis.org/mybatis-3/zh/getting-started.html
-
创建数据访问接口,和sql映射文件
public interface UserDao { User findUserById(int id);}
<?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="com.ffyc.mybatispro.dao.UserDao"><!--接口地址--> <select id="findUserById" parameterType="int" resultType="com.ffyc.mybatispro.model.User"> select * from user where id=#{id} </select> </mapper>
-
在核心配置配置文件中添加sql映像文件文件
<!--配置mybatis sql映射文件--> <mappers> <mapper resource="mapper/UserMapper.xml"/><!--sql映像地址--> </mappers>
-
测试mybatis
package com.ffyc.mybatispro.test; import com.ffyc.mybatispro.dao.UserDao; import com.ffyc.mybatispro.model.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.Reader; public class Test1 { public static void main(String[] args) throws IOException { // 读取配置文件 Reader reader = Resources.getResourceAsReader("mybatis.xml"); // 创建 SqlSessionFactory org.apache.ibatis.session.SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); // 创建 SqlSession org.apache.ibatis.session.SqlSession sqlSession = sessionFactory.openSession(); // 获得接口代理对象 UserDao userDao = sqlSession.getMapper(UserDao.class); User user=userDao.findUserById(1); System.out.println(user); sqlSession.close();//关闭与数据库的会话连接 } }