MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
什么是框架:框架就是别人搭建好的某些功能,你只需要引用该框架并加入自己的业务代码。
好处: 提高我们的开发效率。可以简化jdbc的操作以及占位符赋值以及查询结果集的封装。
简介
MyBatis 是一款优秀的持久层Dao框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Java实体类)映射成数据库中的记录.
当前,最新版本是MyBatis 3.5.3 ,其发布时间是2019年10月20日。
mybatis – MyBatis 3 | Introduction
2.ORM思想ORM(对象关系映射 Object Relational Mapping)是通过描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。全ORM框架主要有:Hibernate(不用写一行sql代码),EclipseLink。MyBatis属于半ORM的框架,因为需要自己建表,并需要自己写sql语句。 SSH(struts,srping,hibernate)基本不用。 SSM(springMVC,spring,mybatis)
3.如何使用MyBatis(环境搭建)一、引入jar包(在maven中配置)
核心包{
mybatis-3.4.6.jar : mybatis核心包
org.mybatis mybatis3.4.6
}
需要的其他包{
mysql-connector-java-8.0.11.jar :mysql数据库包
mysql mysql-connector-java8.0.11
junit-4.9.jar : 用于单元测试包
junit junit4.9 test
}
二、配置文件
第一步 在resources下创建mybatis的配置文件
前提是你一定要有一个名为mybatis的数据库
//name中的值不要改,value里的值改为你自己的路径和内容
第二步 创建mybatis和数据库的映射文件
作用:映射实体和表之间的映射关系
在配置文件下新建文件夹命名为mapper,在mapper下创建需要映射的xml文件
第三步 把映射文件注册到配置文件上
这一步是在mybatis.xml文件中操作的在mybatis.xml文件下加入如下的代码
4.测试MyBatis ,mybatis完成crud操作// 这里对应的是你mapper文件下的Mapper
一、在mapper文件中打开你创建的Mapper.xml文件
二、在mapper标签中写数据库语句代码
增删改查基础代码
mapper namespace="StudentMapper">
三、在测试类中测试
1.读取mybatis配置文件的内容
2. 获取SqlSessionFactory对象
3. 获取SqlSession对象----封装了对数据库操作的各种方法
相关代码如下
//查询一个学生信息
@Test
public void select_one()throws Exception{
//1.读取配置文件内容
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//2.获取SqlSerrionFactory对象
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
//3.获取sqlserrion对象
SqlSession session= factory.openSession();
//4。执行数据库操作
Student student = session.selectOne("StudentMapper.find_one",929);
System.out.println(student);
//提交
session.commit();
//关闭
session.close();
}
//查询全部学生信息
@Test
public void select_all() throws Exception{
//1.读取配置文件内容
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//2.获取Sqlserrionfactory对象
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
//3.获取Sqlsession对象
SqlSession session= factory.openSession();
List students = session.selectList("StudentMapper.find_all");
System.out.println(students);
session.commit();
session.close();
}
//添加一个学生信息
@Test
public void add_one()throws Exception{
//1.读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//2.获取sqlsessionfactory对象
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
//3.获取Sqlsession对象
SqlSession session= factory.openSession();
Student student=new Student();
student.setName("谢大脚");
student.setAge(38);
student.setAddress("象牙山");
student.setSex(0);
int row=session.insert("StudentMapper.add_one",student);
System.out.println(row);
session.commit();
session.close();
}
//删除一个学生信息
@Test
public void dele_one()throws Exception{
//读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//获取sqlsessionfactory对象
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
//获取sqlsession对象
SqlSession session= factory.openSession();
int row = session.delete("StudentMapper.dele_one", 931);
System.out.println(row);
session.commit();
session.close();
}
//修改一个学生的信息
@Test
public void update_one()throws Exception{
//读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//获取sqlsessionfactory对象
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
//获取sqlsession对象
SqlSession session= factory.openSession();
Student student=new Student();
student.setId(929);
student.setName("谢大脚");
student.setAge(45);
student.setAddress("象牙山");
student.setSex(0);
int row = session.update("StudentMapper.update_one", student);
System.out.println(row);
session.commit();
session.close();
}
5.添加sql日志
一、在maven中添加jar包
log4j log4j1.2.17
二、在配置文件下新建log4j.properties 配置文件
在文件中写入以下代码(选一种即可)
简单的:
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
详细的
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
//路径写你要存放日志文件的路径
log4j.appender.file.File=路径
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG



