0.前言
MyBatis是一个持久层的框架,可以将业务数据储存到磁盘,一般执行持久任务的都是数据库系统。我的理解是MyBatis是用来连接java程序和数据库的一个中间桥梁,相当于JDBC的作用。它只需要编写一个接口和xml就可以完成数据库访问工作,大大的简化了开发量。
1.环境搭建
1.首先创建maven工程点击下一步
记得打包方式改成jar包
然后导入3个jar包。mybatis,log4j的日志包,mysql的驱动
然后创建log4j.xml文件放在resources文件目录下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="true">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
2.创建接口和实体
package com.alu4r.mybatis;
public interface StudentMapper {
//根据id获取实体
Student getStudent(Integer id);
}
public class Student {
Integer id;
String name;
Integer age;
String classNumber;
public Student() {
}
public Student(Integer id, String name, Integer age, String classNumber) {
.......
}
......
get、set方法
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", classNumber='" + classNumber + '\'' +
'}';
}
}
3.全局配置文件
MyBatis的官方文档在这里,里面也有相应的解释。首先在resources中创建mybatis-config.xml文件。这个文件主要是设置一些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">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--JDBC相关的配置-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--用于加载映射文件-->
<mappers>
<mapper resource="Student-Mapper.xml"/>
</mappers>
</configuration>
4.映射文件
映射文件主要是用来写sql的,他和jdbc代码相比会省去很多的代码。在官方文档中有详细的解释。主要有以下功能:
在resources目录中创建Student-Mapper.xml文件,在全局配置文件中也加载了这个文件。
<?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">
<mapper namespace="com.alu4r.mybatis.StudentMapper">
<select id="getStudent" resultType="com.alu4r.mybatis.Student">
select * from student where id = #{id}
</select>
</mapper>
5.测试
public class MyBatisTest {
public static void main(String[] args) throws IOException {
//创建配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//根据输入流获取 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
StudentMapper mapper = session.getMapper(StudentMapper.class);
Student student = mapper.getStudent(1);
System.out.println(student.toString());
} finally {
session.close();
}
}
}
6.结束语
本文主要讲mybatis的最基本使用,helloworld级别,对mybatis有个大体印象。
不对之处请多指教!