一,mybatis配置步骤
1,创建一个maven项目
2,在pom.xml文件中导入相关的jar包依赖
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><mybatis.version>3.5.4</mybatis.version><ojdbc.version>11.2.0.3</ojdbc.version></properties><dependencies><!--引入junit单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--引入mybatis的坐标依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!--引入orcale的包驱动--><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>${ojdbc.version}</version></dependency><!----><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency></dependencies>
3,创建pojo中的实体类与mapper中的接口(也就是dao中的接口)
//java实体类
@Data
@AllArgsConstructor//全部参数的构造方法
@NoArgsConstructor//无参的构造方法
public class Dept {private Integer deptno;private String dname;private String loc;
}
//mapper接口
public interface DeptMapper {/*** 查询所有dept的所有信息* @return*/List<Dept> findAll();/*** 查询指定deptno的信息* @param deptno* @return*/Dept findOne(int deptno);/*** 插入指定的部门信息* @param dept* @return*/int insert(Dept dept);/*** 修改指定的部门信息* @param dept* @return*/int update(Dept dept);/*** 删除指定deptno的部门信息* @param deptno* @return*/int del(int deptno);
}
4,编写mybatis的主配置文件(mybatis-config.xml)
<!--先引入头文件-->
<?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><!--引入数据源文件,db.properties(该文件在resources源文件夹下)--><properties resource="db.properties"></properties><!--这是mybatis中极为重要的调整配置,此配置会改变mybatis的行为--><settings><!--配置日志--><setting name="logImpl" value="LOG4J"></set></settings><!-- mybatis的数据源配置 可以配置多个数据源,在default中选择使用哪一个数据源--><environments default="oracle"><!--配置oracle的环境--><environment id="oracle"><!--配置事务类型--><transactionManager type="JDBC"></transactionManager><!-- 配置数据库连接信息 (数据源,连接池)--><dataSource type="POOLED"><!--配置数据库的四个基本信息--><property name="driver" value="${oracle.jdbc.driver}"/><property name="url" value="${oracle.jdbc.url}"/><property name="username" value="${oracle.jdbc.username}"/><property name="password" value="${oracle.jdbc.password}"/></dataSource></environment><!--配置mysql的环境--><environment id="mysql"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${mysql.jdbc.driver}" /><property name="url" value="${mysql.jdbc.url}"/><property name="username" value="${mysql.jdbc.username}" /><property name="password" value="${mysql.jdbc.password}" /></dataSource></environment></environments><!--配置映射文件的位置(如果是注解的话那么就是配置注解所在包的位置)--><!--此二者只能使用其中的任意一种--><mappers><!--配置文件配置--><mapper resource="com/wzh/mapper/xxx.xml"></mapper><!--或者注解配置--><mapper class="com.wzh.mapper.xxx"></mapper></mappers>
</configuration>
5,配置映射文件(注意,该映射文件的位置在resource源文件夹中,最好有着与mapper接口相同的文件结构,在java源文件中mapper是包结构:com.wzh.mapper,而在resource文件中是文件结构:com/wzh/mapper)
<!--先引入头文件-->
<?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接口,必须要配置,不然启动便会报错,一般配置的是该接口的全限定类名(当然也可以不是,但是必须有值)-->
<mapper namespace="xxx"><!--查询标签--><!--其中findAll为此select标签的id,一般为namespace配置的mapper接口的方法的名称--><!--其中resultType该sql语句所要的返回值的类型--><select id="findAll" resultType="com.wzh.pojo.Dept"><!--编写查询的失去了语句-->select * from dept</select><!--插入标签--><!--id作用同上--><!--parameterType表示的是参数的类型,这里我们参数的类型是 pojo实体类--><insert id="insert" parameterType="com.wzh.pojo.Dept"><!--编写sql语句--><!--其中#{}相当与原生jdbc中的?,同样是使用preperStatement来进行预编译--><!--其中我们传入的参数类型是一个对象,但是我们依旧可以直接#{属性名}来获取它的值-->insert into dept (deptno,dname) values (#{deptno},#{dname})</insert><!--删除标签--><!--由于我们传入的参数是int类型,所以可以不在这里配置parameterType--><!--其实只要是基本数据类型以及它的包装类型,或者是String类型都可以不用配置--><delete id="del"><!--这里需要注意的是,由于我们只有一个int类型的参数,所以这里#{参数名}中的参数名可以随便 点,比如写id,empno,eid等等都是可以的。-->delete from dept where empno=#{empno}</delete>
</mapper>
二,mybatis的使用步骤,经过以上的5步步骤,那么我们的mybatis就可以使用了
//1,首先加载主配置文件
Inpustream is = Resources.getResourceAsStream("mybatis-config.xml");
//2,创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3,使用builder对象获取SqlSessionFactory对象
SqlSessionFactory factory = builder.build(is);
//4,使用factory对象来开启一个会话
SqlSession session = factory.openSession();
//5,更具session对象来获取一个Mapper对象
DeptMapper mapper = session.getMapper(DeptMapper.class);
//6,调用方法
List<Dept> depts = mapper.findAll();
//7,关闭session会话与流
session.close();
is.close();