1)MaBatis介绍
它是一个持久层框架、ORM,它支持定制化 SQL、存储过程以及高级映射.
避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.
使用简单的 XML 或注解来配置和映射原生类型、接口和 Java对象为数据库中的记录
持久层框架:持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。
ORM(对象关机映射):Object Relational Mapping 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据相互映射。ORM就是持久层的一种实现
转自:https://www.cnblogs.com/jichuang/p/6663940.html
2)MyBatis基本原理
3)MyBatis基本使用(通过配置xml文件)
1.添加依赖
<!--mysql连接数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
2.配置全局文件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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
这四项就是自己配置自己数据库的那四项.
3.创建接口和配置mapper.java文件
一般就是在dao层创建这个接口
实例:在user这个表中通过id查询用户
select* from user where id=id;
public interface UserMapper2 {
public User2 getUserByID(int id);
}
注意:这里返回的User2,是自己定义的类,可以和数据库中属性映射.
配置mapper.java文件
一般就是创建一个resources文件夹,在下面创建一个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.dao.UserMapper2">
<!--<select id="getUserByID" parameterType="int" resultType="com.bean.User2">
select* from user where id = #{sid};
</select>-->
</mapper>
这里的namespace填写你那个接口的路径.
select id 就是方法名,paramenterType就是参数类型,resultType就是返回类型
4.在全局mybatis-config.xml文件中添加一行,添加上那个mapper映射的地址就ok了
5.使用实例
我这里查询这个表中的信息
public class App{
public static void main(String[] args) throws IOException {
//mybatis配置文件名
String resource = "mybatis-config.xml";
//通过mybatis提供的Resources类来读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//通过SqlSessionFactoryBuilder类创建一个SqlSessionFactory工厂实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过sqlsessionFactory实例创建sqlsession实例
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过反射机制来获取对应mapper实例
UserMapper2 mapper = sqlSession.getMapper(UserMapper2.class);
//调用mapper实例下方法
User2 user = mapper.getUserByID(1);
System.out.println(user);
}
}
这里就查询出来了