MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。
MyBatis 是一个基于Java的持久层框架。MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO),它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java的 POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
要点:
1、持久层框架
2、消除原始的JDBC代码及配置
3、使用XML配置或注解用于映射(接口——Java对象进行一一映射)
下载MyBatis网址:Releases · mybatis/mybatis-3 · GitHubhttps://github.com/mybatis/mybatis-3/releases
MyBatis的开发步骤:
一、导入所需的13个Jar包
二、建数据库建表
三、在工程中创建日志文件
在src的根目录下log4j.properties
四、创建持久化类(实体层)
public class Student { private String id; private String name; private int age; private String sex; private String dept;
get set方法省略
五、创建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">
<!--mybatis的配置文件,写清数据源、写清映射文件-->
<configuration>
<!--环境配置-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/><!--事务管理-->
<dataSource type="POOLED"> <!--数据源用的是数据库的连接池-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--映射文件-->
<mappers>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
六、创建映射文件
持久层——表——映射
1、持久层类名——表名
2、持久层属性名——表中的每一个字段
<?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:命令空间
映射文件的完整路径
-->
<mapper namespace="dao.impl.Student_dao">
<!--增删改查的操作
对应的标签 select insert delete update
参数:
1.id:执行以下sql语句的方法名
2.resultType:查询结果的类型(不能出现集合,不可以写集合,必须学集合的类型)
3.parameterType:参数类型,SQL语句中条件的类型
-->
<!--查询-->
<select id="selectStudent" resultType="po.Student">
select * from Student
</select>
<!--添加-->
<insert id="insertStudent" parameterType="po.Student">
insert into Student values(#{id},#{name},#{sex},#{age},#{dept})
</insert>
<!--删除-->
<delete id="deleteStudent" parameterType="String">
delete from Student where id=#{id}
</delete>
<!--修改-->
<update id="updateStudent" parameterType="po.Student">
update Student set name =#{name},sex=#{sex},age=#{age},dept=#{dept} where id=#{id}
</update>
</mapper>
七、测试
//1.读取mybaits的配置文件,写全路径
InputStream config= Resources.getResourceAsStream("mapper/student-config.xml");
//2.读取映射文件,在配置文件中直接可以读到
//3.构造会话工厂
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(config);
//4.构造会话对象
SqlSession ss=ssf.openSession();
//5.执行数据库的增删改查的操作
Student student1=new Student("6","12",12,"21","331");
//修改
ss.update("mapper.StudentMapper.updateStudent",student1);
//删除
ss.delete("mapper.StudentMapper.deleteStudent","9");
//添加
Student s=new Student("9","刘六",19,"\"女\"","经济管理学院");
ss.insert("mapper.StudentMapper.insertStudent",s);
ss.commit();//事务管理
//查询
List<Student>students1=ss.selectList("mapper.StudentMapper.selectStudent");
for (Student s2:students1){
System.out.println(s2);
}
日志打印
在log4j.properties文件中进行修改可在控制台输出时打印出日志
#log4j.rootLogger=DEBUG, stdout
打印效果
内容较多,比较杂乱
log4j.logger.dao.impl.Student_dao=TRACE
log4j.logger.映射文件路径(全路径)
打印效果
清晰明了,建议使用