MyBatis简单认识(入门)
1.1. 入门准备
创建个java项目,项目结构
1.2在lib文件中导入相应的jar包(注意添加完后,记得右键文件lib点击选中Add as Library)
1.3准备相应的表
1.4.准备相应的domain,在domain文件里创建个Users.java,(创完,就和图1.1图片一样,UserMapper.xml在下面2.2处创建)
1.5 dao层准备
2.1. MyBatis入门实现
一切准备就绪。接下来就是开始使用MyBatis了。但是问题来了,怎么用呢?
该文档虽然只有50多页,但是已经足够咱们学习了。
先来入个门吧:入门开始,除了介绍什么是MyBatis之后,就在说一个核心对象:SqlSessionFactory,接下来,咱们就是要想方设法拿到这个核心对象。
那SqlSessionFactory对象怎么拿到:直接找到文档中的从 XML 中构建 SqlSessionFactory这一小节开始即可。
①获取SqlSessionFactory
1 我们需要准备一个核心的Mybatis-config.xml文件
2 拿到SqlSessionFactory之前需要读取核心的xml配置文件
3 需要构造者(SqlSessionFactoryBuilder)来创建它
②映射文件准备
③通过SqlSessionFactory获取SqlSession执行映射SQL
2.2在domain文件里创建UserMapper.xml文件
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"> <!-- orm框架 sql的映射 namespace:命名空间 namespace路径+ id值 namespace怎么配置 包名.接口名 + queryAll --> <mapper namespace="cn.itsors.dao.IUserDao"> <!-- 查询 queryAll() resultType 返回类型 --> <select id="queryAll" resultType="cn.itsors.domain.Users"> select * from t_user </select> </mapper>
2.3在resources文件里创建jdbc.properties文件和核心配置文件MyBatis-Config.xml
jdbc.properties
jdbc.driverClassName=驱动程序类名称
jdbc.url=数据库地址
jdbc.username=数据库账号
jdbc.password=数据库密码
MyBatis-Config.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> <!--引入jdbc.propeties文件--> <properties resource="jdbc.properties" /> <!-- 环境们 (很多环境的意思) default:默认使用哪一个环境(必需对应一个环境的id) --> <environments default="development"> <!-- 一个环境 id:为这个环境取唯一一个id名称 --> <environment id="development"> <!-- 事务管理 type:JDBC(支持事务)/MANAGED(什么都不做) --> <transactionManager type="JDBC" /> <!-- 数据源, 连接池 type(POOLED):MyBatis自带的连接池 --> <dataSource type="POOLED"> <!-- 连接数据库的参数 --> <property name="driver" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 这个mappers代表的是相应的ORM映射文件 --> <mappers> <mapper resource="cn/itsors/domain/UserMapper.xml" /> </mappers> </configuration>
2.4 给1.5dao层准备的实现类添加代码
UsersImpl.java
package cn.itsors.dao.impl; import cn.itsors.dao.IUserDao; import cn.itsors.domain.Users; 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.IOException; import java.io.Reader; import java.util.List; public class UsersImpl implements IUserDao { /** * 查询数据库全部数据 * @return * @throws IOException */ @Override public List<Users> querAll() throws IOException { //调用mapper.xml的selectList方法 Reader reader = Resources.getResourceAsReader("MyBatis-Config.xml"); //得到SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); //得到sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); //调用方法 namespace+id List<Users> list = sqlSession.selectList("cn.itsors.dao.IUserDao.queryAll"); //返回结果集 return list; } }
2.5测试
UserTest.java
package cn.itsors.test; import cn.itsors.dao.impl.UsersImpl; import java.io.IOException; import java.util.List; import cn.itsors.domain.Users; import org.junit.Test; public class UsersTest{ @Test public void querAll() throws IOException { //获取实现类 UsersImpl users = new UsersImpl(); //调用querAll方法 List<Users> list = users.querAll(); //遍历打印所有数据 for (Users users1 : list) { System.out.println(users1); } } }