-
Mybatis是一个持久层框架,用java编写的。
它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程
它使用了ORM思想实现了结果集的封装。 -
ORM:Object Relational Mappging 对象关系映射
简单的说:就是把数据库表和实体类及实体类的属性对应起来,让我们可以操作实体类就实现操作数据库表。即实体类中的属性和数据库表的字段名称保持一致。 -
Mybatis的入门
- Mybatis基于xml文件的环境搭建
- 创建maven工程并导入各种包坐标
- 创建实体类和dao的接口
UserDao.java
User实现类省去package cn.whd.dao; import cn.whd.domain.User; import java.util.List; public interface UserDao { List<User> findAll(); }
- 创建Mybatis的主配置文件
SqlMapConifg.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"> <!--mybatis的主配置文件--> <configuration> <!-- 配置环境--> <environments default="mysql"> <!--配置mysql的环境--> <environment id="mysql"> <!--配置事务类型--> <transactionManager type="JDBC"></transactionManager> <!--配置数据源(连接池)--> <dataSource type="POOLED"> <!--配置连接数据库的四个基本信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatisdemo1"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--指定映射配置文件的位置,映射配置文件是指每个dao独立的配置文件--> <mappers > <mapper resource="cn/whd/dao/UserDao.xml"></mapper> </mappers> </configuration>
- 创建映射配置文件
IUserDao.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="com.itheima.dao.IUserDao"> <!--配置查询所有--> <select id="findAll" resultType="cn.whd.domain.User"> select * from user </select> </mapper>
- 搭建时的注意事项
- mybatis的映射配置文件位置必须和dao接口的包结构相同
- 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
- 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名
当我们遵从了第1,2,3点之后,我们在开发中就无须再写dao的实现类。
-
mybatis的入门案例
package cn.whd.test; import cn.whd.dao.UserDao; import cn.whd.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; import java.util.List; public class MybatisTest { public static void main(String[] args) throws Exception{ //读取配置文件 InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml"); //创建SqlSessionFactory工厂 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream); //使用工厂生产SQLSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //使用SQLSession创建dao层代理对象 UserDao mapper = sqlSession.getMapper(UserDao.class); //使用代理对象调用dao层方法 List<User> all = mapper.findAll(); for (User user : all) { System.out.println(user); } //释放资源 sqlSession.close(); resourceAsStream.close(); } }
- mybatis基于注解的入门案例:
把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句
同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名。package cn.whd.dao; import cn.whd.domain.User; import java.util.List; import org.apache.ibatis.annotations.Select; public interface UserDao { @Select("select * from user") List<User> findAll(); }
<mappers > <mapper class="cn.whd.dao.UserDao"></mapper> </mappers>
- mybatis基于注解的入门案例:
07-07
07-06
07-07
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交