Mybatis基础
Mybatis的简单介绍
- MyBatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需要关注 SQL 语句本身,
而不需要花费精力去处理加载驱动、创建连接、创建执行者等复杂的操作。 - MyBatis 通过 xml 或注解的方式将要执行的各种 Statement 配置起来,并通过 Java 对象和 Statement 中
SQL 的动态参数进行映射生成最终要执行的 SQL 语句。 - 最后 MyBatis 框架执行完 SQL 并将结果映射为 Java 对象并返回。采用 ORM 思想解决了实体和数据库映射
的问题,对 JDBC 进行了封装,屏蔽了 JDBC API 底层访问细节,使我们不用与 JDBC API 打交道,就可以
完成对数据库的持久化操作。 - MyBatis 官网:http://www.mybatis.org/mybatis-3/
在使用Mybatis之前,先介绍一个Mybaits实现的技术给大家:
Mybatis的HelloWorld小程序(我是用的IntelliJ IDEA工具开发)
1、导入jar包
2、创建映射配置文件StudentMapper.xml放在src目录下
<?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.StudentDao">
<select id="findAll" resultType="student">
select * from student
</select>
<!--
id:表示接口中方法名
resultType:表示方法返回的数据类型,如果返回的是集合,这里指定集合中每个元素类型
select标签标签体就是SQL语句
-->
</mapper>
3、创建核心配置文件MybatisConfig.xml放在src目录下
<?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>
<!--引入jdbc配置文件,配置连接信息-->
<properties resource="jdbc.properties"/>
<environments default="default">
<!--环境变量-->
<environment id="default">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--数据库的连接信息-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--加载其它映射文件-->
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>
4、因为我在上一步的配置文件中配置了properties属性,所以在同一个目录下添加一个jdbc.properties文件。Ip地址改成自己的。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db1
username=root
password=root
5、编写相关的类
- 准备一个实体类Student,属性要和数据库中的表相对应。(数据库的数据只需要一张表就行)
package bean;
public class Student {
private Integer id;
private String name;
private Integer age;
public Student() {
}
public Student(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
- 准备一个接口StudentDao,书写要实现的方法。
package dao;
import bean.Student;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface StudentDao {
List<Student> findAll();
}
- 准备一个测试类来测试结果。
public class Test01 {
private StudentService studentService = new StudentServiceImp();
@Test
public void test1() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = factory.openSession();
StudentDao mapper = sqlSession.getMapper(StudentDao.class);
List<Student> all = mapper.findAll();
for (Student student : all) {
System.out.println(student);
}
sqlSession.close();
inputStream.close();
}
}
6、运行测试类来测试结果
以上就是本次介绍,有不恰当的地方,欢迎指正。