MyBatis日常笔记记录02--新建xml文件及导入maven依赖
1.在resource路径下新建mybatis.xml文件,文件内容可以在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> <!-- 环境配置:数据库的连接信息 default:必须和某个environment的id值一样。 告诉mybatis使用哪个数据库的连接信息,也就是访问哪个数据库 --> <environments default="mydev"> <!-- environment:一个数据库信息的配置,环境 id :一个唯一值,自定义,表示环境的名称 --> <environment id="mydev"> <!-- transactionManager:mybatis的事务类型 type:JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理) --> <transactionManager type="JDBC"/> <!-- dataSource:表示数据源,连接数据库的 type:表示数据源的类型,POOLED表示使用连接池 --> <dataSource type="POOLED"> <!-- driver,user,username,password 是固定的,不能自定义 --> <!--数据库的驱动类名--> <property name="driver" value="com.mysql.jdbc.Driver"/> <!--连接数据库的url字符串--> <property name="url" value="jdbc:mysql://localhost:3306/springdb"/> <!--访问数据库的用户名--> <property name="username" value="root"/> <!--密码--> <property name="password" value="$root"/> </dataSource> </environment> </environments> <!--sql mapper(sql配置文件)的位置--> <mappers> <!--一个mapper标签指定一个文件的位置 从类路径开始的路径信息。 target/classes类路径 --> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration> <!--mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件 1.约束文件 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> mybatis-3-config.dtd :约束文件的名称 2.configuration 根标签 -->
点击Maven --> 文件名 --> compile 进行编译,生成target文件(第一张图)
可以看到target文件下dao包里面没有生成xml文件,需要在pom.xml下添加maven配置信息
<build> <resources> <resource> <directory>src/main/java</directory> <!--所在的目录--> <includes><!--包括目录下的.properties, .xml文件都会被扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
添加好配置信息后,刷新maven项目, 重新点击compile ,可以看到xml文件在target目录下生成了
2.测试连接,在org.example
package org.example; 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 org.example.domain.Student; import java.io.IOException; import java.io.InputStream; import java.util.List; public class MyApp { public static void main(String[] args) throws IOException { //访问mybatis读取student数据 //1.定义mybatis主配置文件的名称,从类路径的根开始 String config = "mybatis.xml"; //2.读取这个config表示的文件 InputStream in = Resources.getResourceAsStream(config); //3.创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //4.创建SqlSessionFactory对象 SqlSessionFactory factory = builder.build(in); //5.【重要】获取SqlSession对象,从SqlSessionFactory中获取SqlSession SqlSession sqlSession = factory.openSession(); //6.【重要】指定要执行的sql语句的标识。 sql映射文件中namespace + "." + 标签的id值 String sqlId = "org.example.dao.StudentDao" + "." + "selectStudent"; //7.执行sql语句,通过sqlId找到语句 List<Student> studentList = sqlSession.selectList(sqlId); //8.输出结果 // studentList.forEach(stu -> System.out.println(stu)); for(Student stu : studentList){ System.out.println("查询的学生="+stu); } //9.关闭SqlSession的对象 sqlSession.close(); } }