- 创建student表(id,name,email,age)
- 新建maven项目
- 修改pom.xml
1)加入依赖(本地仓库/联网下载) mybatis依赖, mysql驱动, junit
2)在加入资源插件 - 创建实体类Student。定义属性, 属性名和列名保持一致
- 创建Dao接口, 定义操作数据库的方法。
- 创建xml文件(mapper文件), 写sql语句。
mybatis框架推荐是把sql语句和java代码分开
mapper文件:定义和dao接口在同一目录, 一个表一个mapper文件。 - 创建mybatis的主配置文件(xml文件):有一个, 放在resources目录下
1)定义创建连接实例的数据源(DataSource)对象
2)指定其他mapper文件的位置 - 创建测试的内容。
1)使用main方法,测试mybatis访问数据库
2)也可以使用junit 访问数据库
有几个小点,记录一下,怕忘了
- 日志
- 事务提交
- 占位符
占位符:
@Test
public void testSelectStudentById2() throws IOException {
//调用mybatis某个对象的方法,执行mapper文件中的sql语句
//mybatis核心类: SqlSessionFactory
//1.定义mybatis主配置文件的位置, 从类路径开始的相对路径
String config = "mybatis.xml";
//2.读取主配置文件。使用mybatis框架中的Resources类
InputStream inputStream = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类
// 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
// SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
// 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//既然有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
// 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
//4.获取SqlSession对象。
SqlSession session = factory.openSession();
//5.指定要执行的sql语句的 id
// sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
String sqlId = "com.bjpowernode.dao.StudentDao" + "." + "selectStudentById";
// 6.通过SqlSession的方法,执行sql语句
Student student = session.selectOne(sqlId,1002);
System.out.println("使用mybatis查询一个学生:" + student);
// 7.关闭SqlSession对象
session.close();
}
测试mybatis执行sql语句
另一种查询:
sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
@Test
public void testSelectStudentById3() throws IOException {
//调用mybatis某个对象的方法,执行mapper文件中的sql语句
//mybatis核心类: SqlSessionFactory
//1.定义mybatis主配置文件的位置, 从类路径开始的相对路径
String config = "mybatis.xml";
//2.读取主配置文件。使用mybatis框架中的Resources类
InputStream inputStream = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类
// 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
// SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
// 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来
// 构建出 SqlSessionFactory 实例。
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//既然有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
// 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
//4.获取SqlSession对象。
SqlSession session = factory.openSession();
//5.指定要执行的sql语句的 id
// sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
String sqlId = "abc.myselect";
// 6.通过SqlSession的方法,执行sql语句
Student student = session.selectOne(sqlId,1002);
System.out.println("使用mybatis查询一个学生:" + student);
// 7.关闭SqlSession对象
session.close();
}
在StudentDao.xml中的mapper标签中添加
insert into student values(1004,"丸子六","wanziliu@qq.com",20)
MyTest.java修改如下:
mybatis默认执行sql语句是 手工提交事务 模式, 在做insert,update ,delete 后需要提交事务。
代码修改如下:
执行效果:
如果想动态插入数据:
如果传入给mybatis是一个java对象,使用#{属性名} 获取此属性的值。
属性值放到 #{}占位符的位置, mybatis执行此属性对应的getXXX().
例如 #{id} ,执行getId();



