MyBatis框架零基础快速入门案例详解

网友投稿 272 2022-10-13

MyBatis框架零基础快速入门案例详解

目录一、创建数据库和表二、创建maven工程三、代码编写1、编写Student实体类2、编写DAO接口StudentDao3、编写DAO接口Mapper映射文件StudentDao.xml。4、创建MyBatis主配置文件四、创建测试类进行测试1、创建测试类MyBatisTest2、配置日志功能五、增删改操作insert操作

MyBatis下载地址:https://github.com/mybatis/mybatis-3/releases

一、创建数据库和表

数据库名ssm,数据表student

mysql> create database ssm;

Query OK, 1 row affected (0.01 sec)

mysql> use ssm

Database changed

mysql> CREATE TABLE `student` (

-> `id` int(11) NOT NULL ,

-> `name` varchar(255) DEFAULT NULL,

-> `email` varchar(255) DEFAULT NULL,

-> `age` int(11) DEFAULT NULL,

-> PRIMARY KEY (`id`)

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected, 3 warnings (0.03 sec)

二、创建maven工程

1、pom.xml加入maven坐标

junit

junit

4.11

test

org.mybatis

mybatis

3.5.1

mysql

mysql-connector-java

5.1.9

2、加入maven插件

src/main/java

**/*.properties

**/*.xml

false

maven-compiler-plugin

3.1

1.8

1.8

三、代码编写

1、编写Student实体类

创建包 com.Example.domain, 包中创建 Student 类

package com.bjpowernode.domain;

/**

*

Description: 实体类

*

Company: http://bjpowernode.com

*/

public class Student {

//属性名和列名一样

private Integer id;

private String name;

private String email;

private Integer age;

// set ,get , toString

}

2、编写DAO接口StudentDao

创建 com.Example.dao 包,创建 StudentDao 接口

package com.bjpowernode.dao;

import com.bjpowernode.domain.Student;

import java.util.List;

/*

*

Description: Dao 接口

*

Company: http://bjpowernode.com

*/

public interface StudentDao {

/*查询所有数据*/

List selectStudents();

}

3、编写DAO接口Mapper映射文件StudentDao.xml。

在 dao 包中创建文件 StudentDao.xml要 StudentDao.xml 文件名称和接口 StudentDao 一样,区分大小写的一 样。

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

resultType="com.Example.domain.Student">

select id,name,email,age from student

4、创建MyBatis主配置文件

项目 src/main 下创建 resources 目录,设置 resources 目录为 resources root

创建主配置文件:名称为 mybatis.xml

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

value="jdbc:mysql://localhost:3306/ssm"/>

支持中文的url

jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8

四、创建测试类进行测试

1、创建测试类MyBatisTest

src/testhttp:///java/com/Example/ 创建 MyBatisTest.java 文件

/*

* mybatis 入门

*/

@Test

public void testStart() throws IOException {

//1.mybatis 主配置文件

String config = "mybatis-config.xml";

//2.读取配置文件

InputStream in = Resources.getResourceAsStream(config);

//3.创建 SqlSessionFactory 对象,目的是获取 SqlSession

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

//4.获取 SqlSession,SqlSession 能执行 sql 语句

SqlSession session = factory.openSession();

//5.执行 SqlSession 的 selectList()

List studentList =

session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");

//6.循环输出查询结果

studentList.forEach( student -> System.out.println(student));

//7.关闭 SqlSession,释放资源

session.close();

}

List studentList = session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");近似等价的 jdbc 代码Connection conn = 获取连接对象String sql=” select id,name,email,age from student”PreparedStatement ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();

2、配置日志功能

mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数

五、增删改操作

insert操作

(1)StudentDAO接口中的方法

int insertStudent(Student student);

(2)StudentDAO.xml加入sql语句

insert into student(id,name,email,age)

values(#{id},#{name},#{email},#{age})

(3)增加测试方法

@Test

public void testInsert() throws IOException {

//1.mybatis 主配置文件

String config = "mybatis-config.xml";

//2.读取配置文件

InputStream in = Resources.getResourceAsStream(config);

//3.创建 SqlSessionFactory 对象

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

//4.获取 SqlSession

SqlSession session = factory.openSession();

//5.创建保存数据的对象

Student student = new Student();

student.setId(1005);

student.setName("张丽");

student.setEmail("zhangli@163.com");

student.setAge(20);

//6.执行插入 insert

int rows = session.insert(

"com.bjpowernode.dao.StudentDao.insertStudent",student);

//7.提交事务

session.commit();

System.out.println("增加记录的行数:"+rows);

//8.关闭 SqlSession

session.close();

}

value="jdbc:mysql://localhost:3306/ssm"/>

支持中文的url

jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8

四、创建测试类进行测试

1、创建测试类MyBatisTest

src/testhttp:///java/com/Example/ 创建 MyBatisTest.java 文件

/*

* mybatis 入门

*/

@Test

public void testStart() throws IOException {

//1.mybatis 主配置文件

String config = "mybatis-config.xml";

//2.读取配置文件

InputStream in = Resources.getResourceAsStream(config);

//3.创建 SqlSessionFactory 对象,目的是获取 SqlSession

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

//4.获取 SqlSession,SqlSession 能执行 sql 语句

SqlSession session = factory.openSession();

//5.执行 SqlSession 的 selectList()

List studentList =

session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");

//6.循环输出查询结果

studentList.forEach( student -> System.out.println(student));

//7.关闭 SqlSession,释放资源

session.close();

}

List studentList = session.selectList("com.bjpowernode.dao.StudentDao.selectStudents");近似等价的 jdbc 代码Connection conn = 获取连接对象String sql=” select id,name,email,age from student”PreparedStatement ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();

2、配置日志功能

mybatis.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数

五、增删改操作

insert操作

(1)StudentDAO接口中的方法

int insertStudent(Student student);

(2)StudentDAO.xml加入sql语句

insert into student(id,name,email,age)

values(#{id},#{name},#{email},#{age})

(3)增加测试方法

@Test

public void testInsert() throws IOException {

//1.mybatis 主配置文件

String config = "mybatis-config.xml";

//2.读取配置文件

InputStream in = Resources.getResourceAsStream(config);

//3.创建 SqlSessionFactory 对象

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);

//4.获取 SqlSession

SqlSession session = factory.openSession();

//5.创建保存数据的对象

Student student = new Student();

student.setId(1005);

student.setName("张丽");

student.setEmail("zhangli@163.com");

student.setAge(20);

//6.执行插入 insert

int rows = session.insert(

"com.bjpowernode.dao.StudentDao.insertStudent",student);

//7.提交事务

session.commit();

System.out.println("增加记录的行数:"+rows);

//8.关闭 SqlSession

session.close();

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:容器快速入门完全指南
下一篇:AWS 核心服务概述(二)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~