1、Mybatis将连接池等在XML配置中设置,通过接口使得使用者可以更关注业务代码: 例如
public class Test { @org.junit.Test public void TestDemo() throws IOException { //初始化mybatis配置环境 String resource = "mybatis.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); //会话打开 SqlSession session = factory.openSession(); List<Course> list = session.selectList("coursesList"); for(Course c:list){ System.out.println(c); } session.close(); } }解读:
String resource = “mybatis.xml”;从mybatis.xml取到数据源并转为流对象由工厂构建类从IO流中构建出sql回话工厂由工厂类构建回话并打开调用session.selectList/Map…接受制定对象的结果(JavaBean和sql中对象必须一致) 2、再来看看mybatis.xml,相当于JDBC和连接池配置+mapper.XML入口 <configuration> <!-- environments 主要用于进行数据源的配置 可以配置多个数据源~ 通过default属性来指定当前项目运行过程中使用的是哪个数据源 --> <environments default="development"> <!-- environment 用于配置一个具体的独立的数据源 id属性用于给当前数据源定义一个名称,方便我们的项目指定 --> <environment id="development"> <!-- transactionManager用于配置事务管理,默认情况下使用的是JDBC事务管理 --> <transactionManager type="JDBC"/> <!--使用数据库连接池--> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123"/> </dataSource> </environment> </environments> <!-- 映射配置文件的路径--> <mappers> <!-- mapper主要配置引入某一个具体的映射文件,resource进行路径方式的引入 --> <mapper resource="mapper/courseMapper.xml"/> </mappers> </configuration>3、courseMapper.XML配置,是JavaBean和sql对象映射的配置,以及sql接口配置
<!-- namespace 命名空间 通常情况,命名空间默的值,就是当前操作实体类的全名称 --> <mapper namespace="com.zfy.entity.Course"> <select id="coursesList" resultType="com.zfy.entity.Course"> select * from course; </select> </mapper>