深入浅出JAVA MyBatis

网友投稿 300 2022-10-16


深入浅出JAVA MyBatis

创建项目前的环境搭建

本篇使用工具:

1、JDK:jdk1.8

2、mysql l数据库 :mysql-5.7.31-winx64

3、Maven 开发工具 :apache-maven-3.8.1

4、IDEA开发工具: IntelliJ IDEA 2020.1.3 x64

在这里我们使用 MyBatis 开发一个简单的 javahttp:// 项目完成增删改查(默认你已安装JDK和MySQL及会使用Maven和IDEA的基本操作)

简介

什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

特点

1.简单易学本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2.灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

(1)提供映射标签,支持对象与数据库的orm字段关系映射

(2)提供对象关系映射标签,支持对象关系组建维护

(3)提供xml标签,支持编写动态sql

(开始)创建Maven项目,导入依赖

创建一个新的Maven项目

第一步:

第二步:

第三步:

第四步

第五步

所需依赖

直接放到 pom.xml中即可

junit

junit

4.11

test

org.mybatis

mybatis

3.5.1

mysql

mysql-connector-java

5.1.9

src/main/java

**/*.properties

**/*.xml

false

(开始)在数据库中创建表

创建 users 表

表名 :users

userld :id

userName : 姓名

userword : 密码

sex : 性别

email :邮箱

创建表详细信息

添加几条假数据

创建实体类

包名

给实体类添加 有参,无参方法,get,set方法,toString方法

package com.guanshiang.pojo;

//实体类

public class Users {

private Integer userId;

private String userName;

private String userword;

private String sex;

private String email;

public Users() {

}

public Users(Integer userId, String userName, String userword, String sex, String email) {

this.userId = userId;

this.userName = userName;

this.userword = userword;

this.sex = sex;

this.email = email;

}

public Integer getUserId() {

return userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserword() {

return userword;

}

public void setUserword(String userword) {

this.userword = userword;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

@Override

public String toString() {

return "Users{" +

"userId=" + userId +

", userName='" + userName + '\'' +

", userword='" + userword + '\'' +

", sex='" + sex + '\'' +

", email='" + email + '\'' +

'}';

}

}

创建对应的接口,以及映射,xml文件

接口:

package com.guanshiang.mapper;

import com.guanshiang.pojo.Users;

import java.util.List;

//接口 操作Users表

public interface UsersMapper {

//增加一条

int addUsers(Users users);

//删除一条

int deleteUsersById(int id);

//修改一条

int updateUsers(Users users);

//查询Users表的所有数据

List queryUsers();

//查询Users一条

Users queryUsersByid(int id);

}

映射xml 文件

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

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

select * from users

从 XML 中构建 SqlSessionFactory

以下来自Mybatis官方文档

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。 SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文 件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符 串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含 一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

String resource = “org/mybatis/example/mybatis-config.xml”; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build (inputStream);

XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据 源(DataSource)以及决定事务作用域和控制方式的事务管理器 (TransactionManager)。后面会再探讨 XML 配置文件的详细内容,这里先给出一个 简单的示例:

创建XML配置文件

内容如下:

千万注意:下面连接数据库信息,要写你本地的信息。千万注意:下面连接数据库信息,要写你本地的信息。千万注意:下面连接数据库信息,要写你本地的信息。

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

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

注意:看文件是否正确

在测试类中测试

在test中创建 测试类 Test01

package com.guanshiang;

import com.guHCmtmdanshiang.pojo.Users;

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 org.junit.Test;

import java.io.IOException;

import java.io.InputStream;

import java.util.List;

public class Test01 {

@Test

public void test() throws IOException {

//访问mybatis 读取student数据

//1、定义mybatis主配置文件的名称,从类路径的根开始(target/clasess)

String config="mybatis.xml";

//2、读取这个config表示的文件

InputStream in = Resources.getResourceAsStream(config);

//3、创建SqlSessionFactoryBuider对象

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

//4、创建SqlSessionFactory对象

SqlSessionFactory factory = builder.build(in);

//5、【重要】获取SqlSession对象,从SqlSessionFactory中获取SqlSession

SqlSession sqlSession = factory.openSession();

//6、【重要】指定要执行的sql语句的标识。sql映射文件中的namecapce + "." + 标签的id值

String sqlId = "com.guanshiang.mapper.UsersMapper"+"."+"queryUsers";

//7、执行sql语句,通过sqlId执行

List users = sqlSession.selectList(sqlId);

//8、输出

for (Users u:users){

System.out.println(u);

}

//9、关闭sqlSession对象

sqlSession.close();

}

}

运行结果:

Users{userId=2, userName='管世轩', userword='1234', sex='男', email='21@qq.com'}

Users{userId=3, userName='管世盎', userword='weqrwr', sex='男', email='2722696413@qq.com'}

Users{userId=4, userName='管世千', userword='guanshiang', sex='男', email='1234@qq.com'}

Users{userId=10, userName='花花', userword='123456', sex='女', email='2722696413@qq.com'}

Users{userId=11, userName='李博', userword='asdfasf', sex='男', email='2722696413@qq.com'}

总体目录

总结:

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!


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

上一篇:780B业务开通方法
下一篇:DHCP中继服务配置
相关文章

 发表评论

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