Mybatis实现简单增删改查
Mybatis的简单应用
- 学习内容:
- 需求
- 环境准备
- 代码
- 总结:
学习内容:
需求
使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样)
jar 包下载:https://blog.csdn.net/zzvar/article/details/115831533
环境准备
- 添加项目需要的jar包(也可以通过配置maven,就不需要导入 jar 包了)
1)mysql-connection-java-5.1.26-bin.jar(jar包可以根据自己需要更换)
MySQL数据库的JDBC驱动包,访问MySQL必须导入的jar包
2)mybatis-3.4.5.jar(jar包可以根据自己需要更换)
MyBatis 框架的核心jar包 创建 Teacher 表
1)建表语句如下:DROP TABLE IF EXISTS
teacher
;
CREATE TABLEteacher
(
userID
int(11) NOT NULL AUTO_INCREMENT,
userName
varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT ‘用户名’,
sex
varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT ‘性别’,
birthYear
date NOT NULL COMMENT ‘生日’,
degree
varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT ‘学历’,
title
varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT ‘职称’,
grade
date NULL DEFAULT NULL COMMENT ‘入职时间’,
collegeID
int(11) NOT NULL COMMENT ‘院系’,
PRIMARY KEY (userID
) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10012 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
2)建表后结果如下图:
3)项目的目录结构如下(非Maven项目):
代码
db.properties文件
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc//localhost:3306/web_test02?characterEncoding=utf-8&serverTimezone=GMT%2b8:00&useSSL=false
(这里是我的数据库名,你要用你的)
db.username=root
(这里是我的数据库密码,你要用你的)
db.password=admin
log4j.properties 文件
Global logging configuration
log4j.rootLogger=ERROR, stdout
MyBatis logging configuration…
log4j.logger.com.yy.homework.mapper=TRACE
Console output…
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%nmybatis-config 文件
<?xml version=”1.0” encoding=”UTF-8” ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
ITeacherDAO 文件
package com.yy.homework.dao;
import com.yy.homework.domain.Teacher;
import java.util.List;
/ @program: Mybatis_test03 @ClassName ITeacher @description:定义实现 CRUD 的接口 @author: YanYang * @create: 2021-04-17 22:10 /
public interface ITeacherDAO {// 增加
void insert(Teacher t);
// 删除
void delete(int id);
// 更新
void update(Teacher t);
// 根据id查询一个教师信息
Teacher select(int id);
// 查询所有教师信息
List<Teacher> selectAll();
}
TeacherDAOImpl 文件
package com.yy.homework.dao.impl;
import com.yy.homework.dao.ITeacherDAO;
import com.yy.homework.domain.Teacher;
import com.yy.homework.util.MybatisUtil;
import org.apache.ibatis.session.SqlSession;import java.util.ArrayList;
import java.util.List;/ @program: Mybatis_test03 @ClassName TeacherDAOImpl @description: 实现接口中的方法 @author: YanYang * @create: 2021-04-17 22:19 /
public class TeacherDAOImpl implements ITeacherDAO {SqlSession sqlSession = null;
@Override
public void insert(Teacher t) {
try {
sqlSession = MybatisUtil.getInstance().openSession();
sqlSession.insert("com.yy.homework.mapper.TeacherMapper.insert", t);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
}
@Override
public void delete(int id) {
try {
sqlSession = MybatisUtil.getInstance().openSession();
sqlSession.delete("com.yy.homework.mapper.TeacherMapper.delete", id);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
}
@Override
public void update(Teacher t) {
try {
sqlSession = MybatisUtil.getInstance().openSession();
sqlSession.update("com.yy.homework.mapper.TeacherMapper.update", t);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
}
@Override
public Teacher select(int id) {
Teacher teacher = null;
try {
sqlSession = MybatisUtil.getInstance().openSession();
teacher = sqlSession.selectOne("com.yy.homework.mapper.TeacherMapper.select", id);
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return teacher;
}
@Override
public List<Teacher> selectAll() {
List<Teacher> list = new ArrayList<>();
try {
sqlSession = MybatisUtil.getInstance().openSession();
list = sqlSession.selectList("com.yy.homework.mapper.TeacherMapper.selectAll");
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlSession.close();
}
return list;
}
}
Teacher 文件
package com.yy.homework.domain;
import lombok.*;
import java.util.Date;
/ @program: Mybatis_test03 @ClassName Teacher @description: 教师JavaBean @author: YanYang * @create: 2021-04-17 22:12 /
// @Setter @Getter @AllArgsConstructor @NoArgsConstructor @ToString
public class Teacher {private Integer userID;
private String userName;
private String sex;
private Date birthYear;
private String degree;
private String title;
private Date grade;
private Integer collegeID;
public Teacher() {
}
public Teacher(Integer userID, String userName, String sex, Date birthYear, String degree, String title, Date grade, Integer collegeID) {
this.userID = userID;
this.userName = userName;
this.sex = sex;
this.birthYear = birthYear;
this.degree = degree;
this.title = title;
this.grade = grade;
this.collegeID = collegeID;
}
@Override
public String toString() {
return "Teacher{" +
"userID=" + userID +
", userName='" + userName + '\'' +
", sex='" + sex + '\'' +
", birthYear=" + birthYear +
", degree='" + degree + '\'' +
", title='" + title + '\'' +
", grade=" + grade +
", collegeID=" + collegeID +
'}';
}
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 getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthYear() {
return birthYear;
}
public void setBirthYear(Date birthYear) {
this.birthYear = birthYear;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getGrade() {
return grade;
}
public void setGrade(Date grade) {
this.grade = grade;
}
public Integer getCollegeID() {
return collegeID;
}
public void setCollegeID(Integer collegeID) {
this.collegeID = collegeID;
}
}
TeacherMapper.xml 文件
<?xml version=”1.0” encoding=”UTF-8” ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into Teacher (userName, sex, birthYear,degree, title, grade, collegeID) values (#{ userName},
#{ sex}, #{ birthYear}, #{ degree}, #{ title}, #{ grade}, #{ collegeID})
delete from Teacher where userID = #{ userID}
update Teacher set userName = #{ userName}, sex = #{ sex}, birthYear = #{ birthYear}, degree = #{ degree},
title = #{ title}, grade = #{ grade}, collegeID = #{ collegeID} where userID = #{ userID}
MybatisUtil 文件
package com.yy.homework.util;
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;/ @program: Mybatis_test03 @ClassName MybatisUtil @description: 工具类 @author: YanYang * @create: 2021-04-17 22:20 /
public class MybatisUtil {/** * 单例模式 */
private MybatisUtil() { }
private static MybatisUtil mybatisUtil = new MybatisUtil();
public static MybatisUtil getInstance() {
return mybatisUtil;
}
private static SqlSessionFactory factory = null;
static {
try {
// 获取 SqlSession 的工厂类
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
public SqlSession openSession() {
// 获取 SqlSession 对象
return factory.openSession();
}
}
测试类 文件
package com.yy.homework.dao.impl.test;
import com.yy.homework.dao.ITeacherDAO;
import com.yy.homework.dao.impl.TeacherDAOImpl;
import com.yy.homework.domain.Teacher;
import org.junit.Test;import java.util.Date;
import static org.junit.Assert.*;
/ @program: Mybatis_test03 @ClassName TeacherDAOImplTest @description: @author: YanYang * @create: 2021-04-18 11:52 /
public class TeacherDAOImplTest {ITeacherDAO td = new TeacherDAOImpl();
@Test
public void insert() {
Teacher tc = new Teacher(null, "熊大", "公", new Date(), "博士", "森林管理员" ,new Date(), 2);
td.insert(tc);
}
@Test
public void delete() {
td.delete(10017);
}
@Test
public void update() {
Teacher tc = new Teacher(null, "熊大", "公", new Date(), "博士", "森林管理员" ,new Date(), 2);
tc.setUserID(10012);
td.update(tc);
}
@Test
public void select() {
td.select(1001);
}
@Test
public void selectAll() {
td.selectAll();
}
}
总结:
以上就是使用 Mybatis 实现简单增删改查了
还没有评论,来说两句吧...