一、Mybatis框架的概述
1.mybatis是一个持久层框架,用java编写的。
2.它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程
3.它使用了ORM思想实现了结果集的封装;
ORM: Object Relational Mappging 对象关系映射;
即就是:把数据库表和实体类及实体类的属性对应起来,让我们可以操作实体类就实现操作数据库表。
二、mybatis的环境搭建
1.创建maven工程并导入坐标
<!--打包方式--> <packaging>jar</packaging> <dependencies> <!--Mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--数据库连接相关的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>
2.创建实体类和dao的接口
3.创建Mybatis的主配置文件:SqlMapConifg.xml
<!--mybatis的主配置文件--> <configuration> <!--配置环境--> <environments default="mysql"> <!--配置Mysql的环境--> <environment id="mysql"> <!--配置事务类型--> <transactionManager type="JDBC"></transactionManager> <!--配置数据源(连接池)--> <dataSource type="POOLED"> <!--配置连接数据库的4个基本信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mbase"/> <property name="username" value="root"/> <property name="password" value="123"/> </dataSource> </environment> </environments> <!-- 指定映射配置文件的位置,映射配置文件指的是每一个dao独立的配置文件--> <mappers> <!--配置文件形式--> <mapper resource="com/li/dao/IUserDao.xml"></mapper> <!--注解形式,不需要写映射文件,但是要在IUserDao接口中的方法上加注解 @select("select * from user")--> <mapper class="com.li.dao.IUSerDao/> </mappers>
4.创建映射配置文件:IUserDao.xml
<mapper namespace="com.li.dao.IUserDao">
<!--配置查询所有,id: 方法名称;resultType:返回值类型-->
<select id="findAll" resultType="com.li.domain.User"> select * from user </select> </mapper>
注意:
1.mybatis的映射配置文件位置必须和dao接口的包结构相同
2.映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
3.映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名
只要遵循上面的几点,开发中无需写dao的实现类
5.定义一个测试类
public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();//构建者 SqlSessionFactory factory = builder.build(in); //3.使用工厂生产SqlSession对象 SqlSession session =factory.openSession(); //4.使用SqlSession创建Dao接口的对象 IUserDao userDao=session.getMapper(IUserDao.class); //5.使用代理对象执行方法 List<User> users=userDao.findAll(); for (User user:users) { System.out.println(user); } //6.释放资源 session.close(); in.close(); }