# ssm2021
**Repository Path**: manalay/ssm2021
## Basic Information
- **Project Name**: ssm2021
- **Description**: 2021年,spring srpingmvc mybatis学习笔记
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 29
- **Created**: 2021-11-04
- **Last Updated**: 2021-11-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mybatis
## 搭建MyBatis开发环境
### 半自动化的ORM实现
orm 实体关系映射 框架
文档结构:

- 下载mybatis-3.2.2.jar包并导入工程
```pom.xml
org.mybatis
mybatis
3.5.2
mysql
mysql-connector-java
8.0.16
```
- 编写MyBatis核心配置文件(configuration.xml)
```mybatis-config.xml
```
- 创建实体类-POJO
```User.java
package com.yt.entity;
import java.util.Date;
public class User {
private int id;
private String username;
private String password;
private String nickname;
private Date regdate;
private int level;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Date getRegdate() {
return regdate;
}
public void setRegdate(Date regdate) {
this.regdate = regdate;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", nickname=" + nickname
+ ", regdate=" + regdate + ", level=" + level + "]";
}
public User() {}
public User(int id, String username, String password, String nickname, Date regdate, int level) {
this.id = id;
this.username = username;
this.password = password;
this.nickname = nickname;
this.regdate = regdate;
this.level = level;
}
}
```
- DAO层-SQL映射文件(mapper.xml)
```userM.xml
```
- 创建测试类
- 读取核心配置文件mybatis-config.xml
- 创建SqlSessionFactory对象,读取配置文件
- 创建SqlSession对象
```MyBatisUtil.java
public class MyBatisUtil {
private static SqlSessionFactory factory;
static{
System.out.println("static factory===============");
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SqlSession createSqlSession(){
return factory.openSession(false);
}
public static void closeSqlSession(SqlSession sqlSession){
if(null != sqlSession)
sqlSession.close();
}
}
```
- 调用mapper文件进行数据操作
```Test.java
public class Test {
public static void main(String[] args) {
SqlSession session = MyBatisUtil.createSqlSession();
List userlist=session.getMapper(UserDao.class).getAllUsers();
for(User u:userlist) {
System.out.println(u);
}
MyBatisUtil.closeSqlSession(session);
}
}
```
## 查询
### 模糊查询
只有一个参数的时候,可以随便叫什么
```
```
多个参数时,复杂数据类型
Java实体类、Map等,通过#{属性名}或者#{map的keyName}即可获取传入值