mybatis入门--配置
1.导入jar包
mybatis-x.x.x.jar 导入到lib目录下,
如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:
1 <dependency> 2 <groupId>org.mybatis</groupId> 3 <artifactId>mybatis</artifactId> 4 <version>3.4.6</version><!--版本号 --> 5 </dependency> 6 </dependencies>
2. XML 构建 SqlSessionFactory
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。
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> <!--先加载内部标签 再起加载外部的标签 名称不一致 会替换掉 --> <properties resource="jdbc.properties"> <property name="jdbc.username" value="root"/> <property name="jdbc.password" value="root"/> </properties> <!--单个别名配置 --> <typeAliases> <!-- type: 全路径名 alias:自定义的别名 (别名不区分大小写) --> <!-- <typeAlias type="cn.tz.pojo.User" alias="user"/> --> <!-- 包扫描的配置 name:这个是你要扫描的包 别名:就是类的名称 不区分大小写 --> <package name="cn.tz.pojo"/> </typeAliases> <!--跟spring整合的时候是会废除的 --> <environments default="test"> <environment id="test"> <!--使用的是jdbc的事物管理 --> <transactionManager type="JDBC"/> <!-- 配置连接池 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 加载配置文件 --> <mappers> <!-- 扫描 --> <package name="cn.xxx.dao"/> </mappers> </configuration>
测试代码
@Test public void test1() throws IOException{ //编写sql语句 //配置user映射文件 //编写测试程序 //写代码 //加载配置文件 //第一步 创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //第二部 加载核心配置文件 InputStream inputStream = Resources.getResourceAsStream("config/SqlMapConfig.xml"); //第三部 创建SqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); //第四部 SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); //第五步 得到user对象 User user = sqlSession.selectOne("getUserById", 1); // 第六步 打印 System.out.println(user); //第七部 关闭资源 sqlSession.close(); }
3.mapper映射的 SQL 语句
<?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"> <!--namespace 命名空间 用于隔离sql语句 --> <mapper namespace="user"> <!-- id 语句的唯一表示 parameterType 入参的类型 resultType 返回结果的数据类型 #{} 相当于jdbc的?号 --> <select id="getUserById" parameterType="int" resultType="cn.xxx.pojo.User" > select `id`, `username`, `birthday`, `sex`, `address` from `user` where id =#{id} </select>