1.新建maven项目2. 连接数据库3.导入相关依赖(API)--pom.xml4.配置log4j--方便查看控制台输出sql语句5.创建实体类Student
5.1什么是实体类5.2编写实体类注意5.3创建实体类Student 6.新建Dao层
6.1什么是Dao层6.2创建StudentDao接口
7.创建映射StudentMapper.xml文件8.创建mybatis-config.xml作为主配置文件9.创建Dao层接口实现类StudentDaoImpl10.创建测试类StudentTest
项目结构:
File-New-Project-Maven-Next-输入项目名-Finsh
2. 连接数据库- View-Tools Windows-Database
- Database-±Data Source-选择要连接的数据库
- MySQL驱动log4j–控制日志信息输送到控制器等junit–单元测试框架,进行代码测试mybatis–访问操作数据库
代码:
4.配置log4j–方便查看控制台输出sql语句mysql mysql-connector-java 8.0.28 com.att.inno log4j 1.2.13 junit junit 4.12 org.mybatis mybatis 3.5.2
在reources目录下新建log4j.properties文件
输入:
# 全局配置 log4j.rootLogger=ERROR,stdout # MyBatis日志配置 log4j.logger.com.lifeng=DEBUG # 控制台输出配置 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
未配置log4j.properties,会报出以下错误:
5.创建实体类Student 5.1什么是实体类一般的实体类对应一个数据表,其中的属性对应数据表中的字段实体类就是把对某一个表的操作全写在一个类中. 5.2编写实体类注意
- 实体类的名字尽量和数据库的表的名字对应相同。实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。实体类应该有个无参的构造方法。实体类应该有个有参(所有的参数)的构造方法。
- 创建目录:src-main-java-com.hbfu.entity-Student
package com.hbfu.entity;
public class Student {
//声明变量并封装--封装后外界不能访问使用变量-只能通过setter和getter方法
private int id;
private String studentsname;
private String gender;
private int age;
//定义方法,返回数据库中的信息
public String toString(){
return "Student{"+"id="+id+
",studentname="+studentsname+
",gwnder="+gender+
",age="+age+
"}";
}
//setter--用于设置和getter--用于获取
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setStudentsname(String studentsname) {
this.studentsname = studentsname;
}
public String getStudentsname() {
return studentsname;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender() {
return gender;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
6.新建Dao层
6.1什么是Dao层
Dao(Data Access Object):数据访问接口,对数据库进行操作,夹在业务逻辑层和数据库资源中间Dao层一般有接口和接口的实现类:
- 接口通常用来定义实现类的外观即实现类的行为定义,用来约束实现类的行为。接口相当于一份契约,根据外部应用需要的功能,约定了实现类因该要实现的功能。通过使用接口,可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系,接口就是实现类对外的外观。实现类一般用于操作数据库:实现类是针对接口来讲的,来实现接口中约定的内容
创建目录:src-main-java-com.hfbu.dao-StudentDao
代码:
package com.hbfu.dao;
public interface StudentDao {
public List findAllStudent();//查找全部学生
}
7.创建映射StudentMapper.xml文件
通过.xml将数据库增删改查操作使用标签化的语言来写映射文件主要实现sql语句与Java对象之间的映射,使sql语句查询出来的关系型数据能封装成Java对象创建目录:src-main-resources-mapper-StudentMapper.xml或src-main-java-com.hbfu.dao-StudentMapper.xml
创建方式:File-Settings-Editor-File and Code Templates-Files-±……
代码:
select * from student
代码解析:
- 映射文件的约束信息
- 一级标签及其属性
中包含多个标签对数据库进行操作属性-namespace:用于标识映射文件,通常设置为对应接口的全路径名称
- 查询标签
- 属性:id–命名空间中唯一标识符,可以被引用,其值一般设置成与接口中对应的方法名称;
resultType=“com.hbfu.entity.Student”–sql语句查询结果映射为Student对象类型
- sql语句–查询-查询student表中所有信息
select * from student8.创建mybatis-config.xml作为主配置文件
主配置文件主要用于配置:项目的环境,数据库连接相关配置等通常命名为:mybatis-config.xml创建目录:src-main-resources或src
创建方式同上面映射文件的创建方式一样
代码:
9.创建Dao层接口实现类StudentDaoImpl
创建目录:src-main-java-com.hfbu.dao-StudentDaoImpl
代码:
package com.hbfu.dao;
public class StudentDaoImpl implements StudentDao{
@Override
public List findAllStudent() {
SqlSession session = null;
List studentList=new ArrayList();
try {
//读取主配置文件mybatis-config.xml
String resource= "mybatis-config.xml";
Reader reader= Resources.getResourceAsReader(resource);
//根据主配置文件mybatis-config.xml构建 SqlSessionFactory对象factory
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
SqlSessionFactory factory= builder.build(reader);
//根据SqlSessionFactory对象创建SqlSession对象session
session = factory.openSession();
//调用SqlSession对象session的selectList方法执行查询数据库的操作,返回映射后的结果集合
studentList=session.selectList("com.hbfu.dao.StudentDao.findall");
}catch (Exception e){
e.printStackTrace();
}
return studentList;
}
}
selectList()是SqlSession类的方法,用于查询记录集合 10.创建测试类StudentTest
创建目录:src-test-java-StudentTest.java
代码:
public class StudentTest {
@Test
public void test(){
StudentDao studentDao=new StudentDaoImpl();
System.out.println(studentDao.findAllStudent());
}
}
运行结果:



