目录

一、创建数据库

二、添加log4j日志

三、定义java类和配置xml

3.1 定义xml,xml 中的id作为操作sql的唯一标识

3.2 定义接口,接口方法作为操作sql 的唯一标识


一、创建数据库

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'Tom', '12');
INSERT INTO `user` VALUES ('2', 'Jack', '11');

下面是测试代码,测试目录如下:

二、添加log4j日志

log4j.rootLogger=DEBUG, Console#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

三、定义java类和配置xml

3.1 定义xml,xml 中的id作为操作sql的唯一标识

1. 与数据库对应的javabean

package com.hb.bean;public class User {private int id;private String name;private int age;//get,set方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public User(int id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}public User() {}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}}

2. 配置mybatis的配置文件

<?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><settings><!-- changes from the defaults for testing --><setting name="cacheEnabled" value="false" /><setting name="useGeneratedKeys" value="true" /><setting name="defaultExecutorType" value="REUSE" /></settings><typeAliases><typeAlias alias="User" type="com.hb.bean.User" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="jdbc" /><dataSource type="POOLED"><!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/> --><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments>
<!-- 访问数据库的映射文件 --><mappers><mapper resource="com/hb/bean/userDao.xml" /><mapper class="com.hb.mapper.UserMapper" /></mappers></configuration>

3. 访问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.hb.bean.userDao"><!-- 这里namespace必须是“包名 + xml文件名”,不然要运行的时候要报错 “is not known to the MapperRegistry” --><insert id="insertUser" parameterType="com.hb.bean.User">insert into user(name, age) values(#{name}, #{age});</insert><delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete><update id="updateUser" parameterType="com.hb.bean.User">update user set name=#{name},age=#{age} where id=#{id}</update><select id="selectUser" parameterType="int"resultType="com.hb.bean.User">select * from user where id=#{id}</select><select id="selectAlluser" resultType="com.hb.bean.User">select * from user</select></mapper>

4. 测试

package com.hb.test1;import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;import com.hb.bean.User;public class Test1 {public static SqlSessionFactory sqlSessionFactory;public static SqlSession sqlSession;@Beforepublic void init(){//"/"表示是在src根目录下String source = "config.xml";InputStream inputStream = Test1.class.getClassLoader().getResourceAsStream(source);try {sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//          sqlSession = sqlSessionFactory.openSession();//是否自动提交,默认不是自动提交的sqlSession = sqlSessionFactory.openSession(true);} catch (Exception e) {e.printStackTrace();}}@Testpublic void add(){String statment = "com.hb.bean.userDao.insertUser";User user = new User();user.setId(4);user.setAge(100);user.setName("father");sqlSession.insert(statment, user);//添加数据需要commit,默认是不commitsqlSession.commit();//关闭sessionsqlSession.close();}@Testpublic void selectById(){String statment = "com.hb.bean.userDao.selectUser";User user = sqlSession.selectOne(statment, "1");System.out.println(user);}@Testpublic void update(){String statment = "com.hb.bean.userDao.updateUser";User user = new User();user.setId(1);;user.setAge(100);user.setName("mather");sqlSession.update(statment, user);System.out.println(user);}@Testpublic void delete(){String statment = "com.hb.bean.userDao.deleteUser";sqlSession.delete(statment, 6);//添加数据需要commit,默认是不commitsqlSession.commit();//关闭sessionsqlSession.close();}}

3.2 定义接口,接口方法作为操作sql 的唯一标识

package com.hb.mapper;import java.util.List;import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;import com.hb.bean.User;public interface UserMapper {@Insert("insert into user(name, age) values(#{name}, #{age})")public int insertUser(User user);@Delete("delete from user where id=#{id}")public int deleteUserById(int id);@Update("update user set name=#{name},age=#{age} where id=#{id}")public int updateUser(User user);@Select("select * from user where id=#{id}")public User getUserById(int id);@Select("select * from user")public List<User> getAllUser();}
package com.hb.test1;import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;import com.hb.bean.User;public class AnnotationTest1 {public static SqlSessionFactory sqlSessionFactory;public static SqlSession sqlSession;@Beforepublic void init(){//"/"表示是在src根目录下String source = "config.xml";InputStream inputStream = AnnotationTest1.class.getClassLoader().getResourceAsStream(source);try {sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//          sqlSession = sqlSessionFactory.openSession();//是否自动提交,默认不是自动提交的sqlSession = sqlSessionFactory.openSession(true);} catch (Exception e) {e.printStackTrace();}}@Testpublic void add(){String statment = "com.hb.mapper.UserMapper.insertUser";User user = new User();user.setId(4);user.setAge(100);user.setName("father");sqlSession.insert(statment, user);//添加数据需要commit,默认是不commitsqlSession.commit();//关闭sessionsqlSession.close();}@Testpublic void selectById(){String statment = "com.hb.mapper.UserMapper.selectUser";User user = sqlSession.selectOne(statment, "1");System.out.println(user);}@Testpublic void update(){String statment = "com.hb.mapper.UserMapper.updateUser";User user = new User();user.setId(1);;user.setAge(100);user.setName("mather");sqlSession.update(statment, user);System.out.println(user);}@Testpublic void delete(){String statment = "com.hb.mapper.UserMapper.deleteUser";sqlSession.delete(statment, 6);//添加数据需要commit,默认是不commitsqlSession.commit();//关闭sessionsqlSession.close();}}

mybatis 入门([尚硅谷]_张晓飞_Mybatis 学习笔记一)相关推荐

  1. 条件筛选([尚硅谷]_张晓飞_Mybatis 学习笔记五)

    目录 一.定义用户表 二.与数据库表对应的javabean 三.使用javabean对象作为查询条件 测试类 四.使用Map对象作为查询条件 五.mybatis的配置数据源 一.定义用户表 creat ...

  2. 尚硅谷Vue2-3(张天禹老师) 学习笔记

    这里写目录标题 (一) 基本模块 01基础模板语法 1.1插值语法 -- 解析标签体里的内容 1.2指令语法 -- 解析标签 数据绑定 条件渲染 1.2.1 **`v-bind:xxx`** 1.2. ...

  3. (尚硅谷java零基础教程)学习笔记day7/8-数组

    1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...

  4. 尚硅谷+黑马程序员MongoDB视频学习笔记(一)

    本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...

  5. 【学习笔记】尚硅谷周阳老师的Docker教程学习笔记

    本文是尚硅谷周阳老师的Docker教程的相关学习笔记,暂时还没有检查勘误过. 一.Docker简介 1. 简介 Docker的出现是为了解决代码在本机可以正常运行,而部署到其他机器不能运行的问题.这是 ...

  6. 尚硅谷周阳老师 SpringCloud第二季学习笔记

    前言:首先感谢尚硅谷周阳老师的讲解,让我对springcloud有了很好的理解,周阳老师的讲课风格真的很喜欢,内容充实也很幽默,随口一说就是一个段子,我也算是周阳老师的忠实粉丝啦. 先说说课程总体内容 ...

  7. 尚硅谷阳哥SpringCloud第二季学习笔记(一)

    导航目录 一.微服务架构概述 1.什么是微服务架构 2.SpringCloud简介 2.1是什么 2.2 SpringCloud技术栈 二.微服务架构编码构建 2.1 创建父工程cloud2020 2 ...

  8. 尚硅谷Kubernetes(k8s)视频学习笔记

    这里写目录标题 kubernetes (k8s) 主要内容 一. kubernetes 概述 1. kubernetes 基本介绍 2. kubernetes 功能和架构 2.1 概述 2.2 K8s ...

  9. 尚硅谷web前端工程师1000集学习笔记11

    一个练习 <!doctype html> <html>     <head>         <meta charset="utf-8" ...

最新文章

  1. bootstrap table 表头与内容不对齐问题解决
  2. delphi 中listview的右键菜单处理
  3. 电脑睡眠快捷键_电脑学习:苹果电脑快捷键
  4. 《Python游戏编程快速上手》第十一章猜数字,推理游戏Bagels
  5. 机器学习——支持向量机SVM实例(兵王问题,SVM求解步骤以及思路,不求解不编程)
  6. 【SpringMVC】SpringMVC系列4之@RequestParam 映射请求参数值
  7. 老司机学习MyBatis之如何通过select返回Map
  8. Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)
  9. 存在链接注入漏洞_【安全提示】CNVD发布上周关注度较高的产品安全漏洞(20200817-20200823)...
  10. QPCore Service与NetAssist冲突解决
  11. YYUC输出联动select标签
  12. oracle语句执行过程
  13. Word文档中快速插入分隔线的技巧_C#教程
  14. 模拟新浪微博自动登陆
  15. 使用SPACEDESK时iPad显示Connected-Display OFF解决方法
  16. 转载于 Bob Lyle 谈 DB2 中的 OLAP 函数
  17. 数组的reduce的妙用之处
  18. 如何自动识别文字并提取?这三个方法教你搞定识别文字
  19. 基于COLA架构创建运输微服务应用和DDD领域建模
  20. Android动画特效之Animator属性动画实现

热门文章

  1. oracle检查点相关(一)
  2. 数字图像处理(五)几何变换之图像平移、镜像、绕中心点旋转、缩放等
  3. 【逐梦旅程Windows游戏编程学习笔记 ①】基本GDI绘图
  4. 疯狂英语李阳激情作客直播室
  5. easypoi 语法_高中语法精讲系列七丨高中英语八大语法之“名词性从句”要点归纳...
  6. 步步惊心的三文鱼财富
  7. Word在试图打开文件时遇到错误,请尝试下列方法:检查文档或驱动器的文件权限 确保有足够的内存和磁盘空间 用文本恢器打开文件
  8. matlab调用R给散点图画95%置信椭圆(95% confidence ellipse in a scatterplot)
  9. 来酷科技CEO周铭:以元宇宙生态构建Z时代数字原住民线下体验空间
  10. BiLSTM+CRF(二)命名实体识别