mybatis 基本配置 学习总结01
Mybatis
1、什么是Mybatis
- Mybatis是一款优秀的持久层框架。
- 几乎避免了所有JDBC代码和手动设置参数以及获取结果集的过程。
- Mybatis是一个半自动化的ORM框架(Object Relationship Mapping)
持久化:将程序数据在持久状态和瞬时状态间转换的机制。(保存到可永久存储的设备中:磁盘...)
什么是持久层?
完成持久化工作的代码块:dao层【DAO (Data Access Object)数据访问对象】
2、第一个程序:
1、数据库
CREATE DATABASE `mybatis`;
USE `mybatis`;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`pwd` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');
2、IDEA创建项目
Create New Project --> Maven -->Next -->Location(项目的位置) --> Finish
3、导入所需的jar包
找jar包例子:如:找mybatis的jar
- 百度 “mybatis mvn”
- 点击要用到的jar包名
- 选择版本
- 复制maven
pom.xml:
<!--总依赖标签-->
<dependencies>
<!--mybatis 使用所需的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--sql 连接的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
4、创建文件
1、创建mybatis-config.xml
右键resources --> new --> File --> 填“mybatis-config.xml”
mybatis-congif.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="development"> <!-- 总环境 默认:development -->
<environment id="development"> <!-- 环境 名为:development -->
<transactionManager type="JDBC"/> <!-- 事务管理器 类型:JDBC (事务:确保操作完整性,要么成功要么失败)-->
<dataSource type="POOLED"> <!-- 数据源 类型:POOLED-->
<property name="driver" value="com.mysql.jdbc.Driver"/> <!--属性 名:驱动 值:..mysql(使用的何种数据库).. -->
<!-- 属性 名:url 值:数据连接地址+规则(如:字符集:UTF-8) -->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/> <!-- 属性 名:数据库用户名 值:root-->
<property name="password" value="123"/> <!--属性 名:密码 值:123456 -->
</dataSource>
</environment>
</environments>
<mappers> <!--映射器 -->
<mapper resource="com/dao/userMapper.xml"/> <!-- 映射 资源:userMapper.xml -->
</mappers>
</configuration>
2、User 实体类
点开java(文件是蓝色)--> 右键 --> new --> Package --> 填入“com.pojo” -- >
右键:pojo文件 --> new --> Java Class --> 命名为“User”
生成get、set的快捷键:Alt + Insert (如:选择了set后,Ctrl+A全选所有的成员生成set方法)
User.java
package com.pojo;
public class User {
private int id;
private String name;
private String pwd;
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPwd() {
return pwd;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
3、UserMapper.xml
右键com --> New --> Package --> 填"com.dao"
右键dao --> File --> 填“UserMapper.xml”
这里将会有一个问题:IDEA不会编译src的main中java文件里的.xml文件(需要进行过滤放置)
UserMapper.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">
<mapper namespace="com.dao.UserMapper"> <!-- 映射器 命名空间:映射到那个类的地址 -->
<select id="selectUser" resultType="com.pojo.User"> <!-- 查询 名:selectUser 结果类型:com.pojo.User -->
select * from user
</select>
</mapper>
4、UserMapper (接口)
右键com (packge) --> new --> Packege --> 填“com.dao"
右键 dao --> New -- >Class --> Interface --> 填“UserMapper”
UserMapper
package com.dao;
import com.pojo.User;
import java.util.List;
public interface UserMapper {
List<User> selectUser();
}
5、MyBatisUtils工具类
右键目录java(蓝色)--> new --> Package --> utils
右键utils ---> New -->Java Class ---> 填“MybatisUtils”
MybatisUtils.java
package utils;
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;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
String resource = "mybatis-config.xml"; // 获取资源文件路径
InputStream inputStream = Resources.getResourceAsStream(resource); //读取文本数据
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创造工厂
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession() {
return sqlSessionFactory.openSession();
}
}
6、MyTest
点击test --> 右键java(绿色) -->new --> Java Class --> 填“MyTest”
import com.dao.UserMapper;
import com.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import utils.MybatisUtils;
import java.util.List;
public class MyTest {
@Test
public void selectUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> users = mapper.selectUser();
for (User user: users){
System.out.println(user);
}
session.close();
}
}
7、静态资源过滤
运行程序后出现异常:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/dao/userMapper.xml
原因:idea不会编译src的java目录的xml文件(被过滤掉)
需要配置过滤文件,让其能够在src中使用.xml文件
pom.xml
<!--配置过滤器不过滤java文件里面的 .properties和 .xml文件
不过滤resources文件里面的 .properties和 .xml文件 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
mybatis 基本配置 学习总结01的更多相关文章
- Mybatis环境配置学习
Mybatis的使用环境配置步骤主要分为以下三步 1.导入jar包 2.创建mybatis的全局配置文件,并编写 3.创建mapper的配置文件 一.导入jar包 --- (踩坑:这一步中的导入mys ...
- 1.2(Mybatis学习笔记)Mybatis核心配置
一.Mybatis核心对象 1.1SqlSeesionFactory SqlSessionFactory主要作用是创建时SqlSession. SqlSessionFactory可通过SqlSessi ...
- AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- SSM ( Spring 、 SpringMVC 和 Mybatis )配置详解
使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...
- Java数据持久层框架 MyBatis之API学习八(Java API详解)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)
摘录网址: http://blog.csdn.net/u010107350/article/details/51292500 对于MyBatis的学习而言,最好去MyBatis的官方文档:http:/ ...
- mybatis原理分析学习记录,mybatis动态sql学习记录
以下个人学习笔记,仅供参考,欢迎指正. MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转 ...
- [教程] Spring+Mybatis环境配置多数据源
一.简要概述 在做项目的时候遇到需要从两个数据源获取数据,项目使用的Spring + Mybatis环境,看到网上有一些关于多数据源的配置,自己也整理学习一下,然后自动切换实现从不同的数据源获取数据功 ...
- SpringMVC+Spring+mybatis项目从零开始--Spring mybatis mysql配置实现
上一章我们把SSM项目结构已搭建(SSM框架web项目从零开始--分布式项目结构搭建)完毕,本章将实现Spring,mybatis,mysql等相关配置. 1. 外部架包依赖引入 外部依赖包引入 ...
随机推荐
- git删除误传的.idea文件
问题: 提交项目的时候忘记添加.gitignore文件,误上传了文件(如.idea)如何解决?如何删除Gitee地址上项目的.idea文件?(本文以.idea文件夹举例) 拉取项目 拉取项目 git ...
- 入门 - k8s滚动更新部署中的镜像版本 (七)
目标 使用 kubectl 执行 Rolling Update(滚动更新) 更新应用程序 用户期望应用程序始终可用,为此开发者/运维者在更新应用程序时要分多次完成.在 Kubernetes 中,这是通 ...
- LDAP概念和原理介绍 (转)
相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从"什么是LDAP"."LDAP的主要产品"." ...
- windows10下设置Maven的本地仓库和阿里云的远程中央仓库
感谢原文作者:测试zhang 原文链接:https://www.jianshu.com/p/1782feee6eff 菜鸟:https://www.runoob.com/maven/ 1.设置Mave ...
- json解析出现:java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX
感谢大佬:https://blog.csdn.net/one_ink/article/details/99817676 一.出错原因 当我们利用json解析中的toBean方法时,如果它的属性里面包含 ...
- LNMP架构——源码编译安装
LNMP架构--源码编译安装 1.编译安装nginx服务 2.编译安装mysql服务 3.编译安装php解析环境 1.编译安装nginx服务: systemctl stop firewalld sys ...
- mysql表查询、多表查询(增强查询的使用)子查询、合并查询,外连接,mysql5种约束,自增长
一.查询加强 1.在mysql中,日期类型可以直接比较,需要注意格式 2.%:表示0到多个字符, _:表示单个字符 exp:显示第二个字符为大写O的所有员工的姓名和工资 select name fr ...
- 剑指Offer系列_30_包含min函数的栈
以空间换时间: package leetcode.sword_to_offfer.day01; import java.util.Stack; /** * 定义栈的数据结构,请在该类型中实现一个能够得 ...
- 长安战疫Wp
长安战疫wp misc 八卦迷宫 直接走迷宫 cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang ...
- Solution -「洛谷 P4449」于神之怒加强版
\(\mathcal{Description}\) Link. 给定 \(k\) 和 \(T\) 组 \(n,m\),对于每组,求 \[\sum_{i=1}^n\sum_{j=1}^m\ope ...