mybatis测试
步骤:
1.创建maven项目
2.确认添加依赖项
3.com–>mybatistest下创建domain.Student类
4.在dao下创建StudentDao接口
5.在dao下创建StudentDao配置文件
6.创建mybatis主配置文件
7.创建使用mybatis类MyApp
com
mybatistest
dao.StudentDao配置文件
package com.mybatistest.dao;
import com.mybatistest.domain.Student;
import java.util.List;
//接口操作Student表
public interface StudentDao {
//查询student表所有数据
public List<Student> selectStudents();
}
dao.StudentDao.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">
<!-- 当前文件的根标签,dao接口的全限定名称-->
<mapper namespace="com.mybatistest.dao.StudentDao">
<!-- 数据库的特定操作-->
<!-- id执行的sql语句的唯一标识,使用接口的方法名称-->
<!-- resultType表示结果类型的,是sql语句后得到ResultSet,遍历这个ResultSet得到java对象的类型-->
<select id="selectStudents" resultType="com.mybatistest.domain.Student">
select id,name,email,age from student order by id
</select>
</mapper>
daomain.Student
package com.mybatistest.domain;
//推荐跟表名一样,容易记忆
public class Student {
//定义属性,目前要求是属性名和列名一样
private Integer id;
private String name;
private String email;
private Integer age;
public void setId(Integer id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setEmail(String email) {
this.email = email;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", age=" + age +
'}';
}
}
MyApp
package com.mybatistest;
import com.mybatistest.domain.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyApp {
public static void main(String[] args) throws IOException {
// 访问mybatis读取student数据
//1.定义mybatis主配置文件的名称,从类路径的根开始
String config="mybatis.xml";
//2.读取这个config表示的文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder= new SqlSessionFactoryBuilder();
//4. SqlSessionFactory对象
SqlSessionFactory factory= builder.build(in);
//5.【重要】获取 SqlSession对象,从SqlSessionFactory中获取SqlSession
SqlSession sqlSession=factory.openSession();
//6.【重要】指定要执行sql语句的标识,sql映射文件中的namespace+“.”+标签的ID值
String sqlId="com.mybatistest.dao.StudentDao"+"."+"selectStudents";
//7.执行sql语句,通过sqlID找到语句
List<Student> studentList= sqlSession.selectList(sqlId);
//8.输出结果
studentList.forEach(stu -> System.out.println(stu));
//9.关闭SqlSession对象
sqlSession.close();
}
}
resources
mybatis.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="mydev">
<!-- 配置数据源 -->
<environment id="mydev">
<!-- 表示使用jdbc中connection -->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库驱动类名 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 链接数据库url字符串 -->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!-- 访问数据库用户名密码 -->
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件路径 -->
<mappers>
<mapper resource="com\mybatistest\dao\StudentDao.xml"/>
</mappers>
</configuration>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mybatistest</groupId>
<artifactId>ch01-hello-mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<name>ch01-hello-mybatis</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<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>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<!--所在的目录-->
<includes>
<!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
readme.txt
ch01-hello-mybatis:第一个入门的mybatis例子
实现步骤:
1.新建的student表
2.加入maven的mybatis坐标,mysql驱动的坐标
3.创建实体类,Student–保存表中的一行数据的
4.创建持久层的dao接口,定义操作数据库的方法
5.创建一个mybatis使用的配置文件
叫做sql映射文件:写sql语句的。一般一个表一个sql映射文件 这个文件是xml文件
1.写在接口的目录中
2.文件名称和接口保持一致
6.创建mybatis的主配置文件:
一个项目就一个主配置文件
主配置文件提供了数据库的是连接信息和sql映射文件的位置信息
7.创建使用mybatis类,
通过mybatis访问数据库