Mybatis学习--2.入门程序
步骤
设置打包方式:
jar 引入依赖,使用maven引入MyBatis框架(其实就是jar包)和数据库驱动jar包(jdbc)
创建核心配置文件,复制配置信息到该文件,并且修改连接数据库的信息
创建XxxMapper.xml文件。并在其中编写SQL语句。每条SQL语句都有一个唯一标识符id=”…”
在mybatis-config.xml的mappers中指定XxxMappser.xml的路径。
1
2
3<mapper resource="carMapper.xml"/>//从类路径中加载资源
<!--该mapper还有另外一个属性:url。该属性值有固定写法:url="file:/// + 绝对路径"
但不建议使用该方法,因为移植性太差。当从windows系统移植到mac或linux系统时,后两者的系统中没有磁盘的概念,那么这种写法就会报错-->该resource属性会自动从项目根路径下开始查找资源。因为我们将carMapper.xml文件放在resources文件中,等同于放到了根路径下
编写MyBatis程序。MyBatis中有一个负责执行SQL语句的对象:SqlSession,该对象表示的是java程序和数据库之间的一次会话。获得SqlSession的过程:
SqlSessionFactoryBuilder –> SqlSessionFactory –> SqlSession
一般一个数据库对应一个SqlSessionFactory
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27package com.deng.mybatis.test;
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;
public class MyBatisTest {
public static void main(String[] args) throws Exception{
//get the SqlSessionFactorBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//get the SqlSessionFactor
//该方法默认从根路径下查找资源
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//get the SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//execute the sql
int count = sqlSession.insert("insertCar");
//commit
//mybatis中默认情况下是开启事务的,在执行DML语句时需要s
sqlSession.commit();
}
}MyBatis中有两种重要的xml文件
- mybatis-config.xml。不一定必须是这个名字该配置文件用于配置连接数据库的信息,只有一个
- XxxMapper.xml。该配置文件用于编写SQL语句。一般是一个表对应一个Mapper.xml文件,所以有多个
小技巧:
在一些有Resource的方法且需要传递路径时,一般是从根路径下开始查找资源
另一种获得输入流的方法:
InputStream is = ClassLoader.getSystemLoader().getResourceAsStream("path"); //这也是Resources.getRescourceAsStream("path")的底层实现源码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 dch'blog!