MyBatis_3 - MyBatis第一个Demo

MyBatis入门指南:从零开始构建你的第一个MyBatis应用程序 通过以上十个步骤,你已经成功构建了你的第一个MyBatis应用程序。从创建Maven项目、添加依赖、配置MyBatis、创建实体类和Mapper接口,到编写测试代码,每一步都清晰明了。希望这篇文章能帮助你快速上手MyBatis,并在实际开发中灵活运用。 阅读详情

废话不多说,直接上第一个MyBatis Demo

代码我上传了,下载下来,构建好数据库,可以直接运行...

MyBatis_Demo_1


数据库结构


数据库数据



项目工程结构



log4j.properties

log4j.rootLogger=DEBUG,CONSOLE,ARKSERVICES
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %p %l - %m%n

log4j.appender.ARKSERVICES=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ARKSERVICES.DatePattern='.'yyyy-MM-dd
log4j.appender.ARKSERVICES.File=./mybatis.log
log4j.appender.ARKSERVICES.Threshold=debug
log4j.appender.ARKSERVICES.layout=org.apache.log4j.PatternLayout
log4j.appender.ARKSERVICES.layout.ConversionPattern=%d %p - %m%n

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123456


POJO对象/Student.java

package com.mybatis.bean;

/**
 * Created by CYX on 2017/3/25.
 */
public class Student {
	private int studentId;
	private String studentName;
	private int studentAge;
	private String studentPhone;
	public Student() {
	}
	public Student(int studentId, String studentName, int studentAge, String studentPhone) {
		this.studentId = studentId;
		this.studentName = studentName;
		this.studentAge = studentAge;
		this.studentPhone = studentPhone;
	}
	@Override
	public String toString() {
		return "Student{" +
				"studentId=" + studentId +
				", studentName='" + studentName + '\'' +
				", studentAge=" + studentAge +
				", studentPhone='" + studentPhone + '\'' +
				'}';
	}
	public int getStudentId() {
		return studentId;
	}
	public void setStudentId(int studentId) {
		this.studentId = studentId;
	}
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}
	public int getStudentAge() {
		return studentAge;
	}
	public void setStudentAge(int studentAge) {
		this.studentAge = studentAge;
	}
	public String getStudentPhone() {
		return studentPhone;
	}
	public void setStudentPhone(String studentPhone) {
		this.studentPhone = studentPhone;
	}
}

映射器接口/StudentMapper.java

package com.mybatis.mapper;
import com.mybatis.bean.Student;
/**
 * Created by CYX on 2017/3/25.
 */
public interface StudentMapper {
	public Student getStudent(Long id);
	public int deleteStudent(Long id);
	public int insertStudent(Student student);
}


映射器XML/StudentMapper.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.mybatis.mapper.StudentMapper">

	<!-- 查询一个对象 -->
	<select id="getStudent" resultType="student" parameterType="long">
		SELECT studentId,studentName,studentAge,studentPhone FROM student where studentId = #{id}
	</select>

	<!-- 插入一个对象 -->
	<insert id="insertStudent" parameterType="student">
		INSERT INTO student(studentName,studentAge,studentPhone)
		values (#{studentName},#{studentAge},#{studentPhone})
	</insert>

	<!-- 删除一个对象 -->
	<delete id="deleteStudent" parameterType="long">
		DELETE from student WHERE studentId = #{studentId}
	</delete>

</mapper>

mybatis-Config.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>

		<properties resource="jdbc.properties" />
		<!-- 自定义别名,类型命名,类别名 -->
		<typeAliases>
				<typeAlias alias="student" type="com.mybatis.bean.Student" />
		</typeAliases>

		<!-- 定义数据库信息,默认使用development数据库构建环境 -->
		<environments default="development">
				<environment id="development">
						<!-- 事务管理器 / 采用jdbc事务管理 -->
						<transactionManager type="JDBC" />
						<!-- 配置数据库连接信息 -->
						<dataSource type="POOLED">
								<property name="driver" value="${jdbc.driver}" />
								<property name="url" value="${jdbc.url}" />
								<property name="username" value="${jdbc.username}" />
								<property name="password" value="${jdbc.password}" />
						</dataSource>
				</environment>
		</environments>

		<!-- 定义映射器/sql语句的配置文件 -->
		<mappers>
				<mapper resource="com\mybatis\mapper\StudentMapper.xml" />
		</mappers>

</configuration>

SqlSessionFactoryUtil.java

package com.mybatis.utils;

import java.io.IOException;
import java.io.InputStream;

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.apache.log4j.Logger;

public class SqlSessionFactoryUtil {

		private static final Logger logger = Logger.getLogger(SqlSessionFactoryUtil.class);

		// SqlSessionFactory对象
		private static SqlSessionFactory sqlSessionFactory = null;
		// 类线程锁.
		private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;

		// 私有化构造器
		public SqlSessionFactoryUtil() {
		}

		/**
		 * 构建SqlSessionFactory
		 *
		 * @return
		 */
		private static SqlSessionFactory initSqlSessionFactory() {
				String resource = "mybatis_Config.xml";
				InputStream inputStream = null;

		try {
				inputStream = Resources.getResourceAsStream(resource);
		} catch (IOException e) {
				logger.error(e.getMessage(), e);
		}

		synchronized (CLASS_LOCK) {
				if (sqlSessionFactory == null) {
						sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
				}
		}

		return sqlSessionFactory;
		}

		/**
		 * 打开SqlSession
		 *
		 * @return
		 */
		public static SqlSession openSqlSession() {
				if (sqlSessionFactory == null) {
						initSqlSessionFactory();
				}
				return sqlSessionFactory.openSession();
		}

}

MyBatisServer.java

package com.mybatis.server;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.mybatis.bean.Student;
import com.mybatis.mapper.StudentMapper;
import com.mybatis.utils.SqlSessionFactoryUtil;

/**
 * Created by CYX on 2017/3/25.
 */
public class MyBatisServer {

		private static final Logger logger = Logger.getLogger(MyBatisServer.class);

		public static void main(String[] args) {

		SqlSession sqlSession = null;

		try {

		PropertyConfigurator.configure("./conf/log4j.properties");

		sqlSession = SqlSessionFactoryUtil.openSqlSession();

		StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);

		Student student = new Student();
		student.setStudentName("JY");
		student.setStudentAge(24);
		student.setStudentPhone("66666");

//			int result = studentMapper.insertStudent(student);
//			logger.debug("insert result : " + result);

		 Student studentInfo = studentMapper.getStudent(4L);
		 logger.debug("student info : " + studentInfo.toString());

//			 int deleteResult = studentMapper.deleteStudent(7L);
//			 logger.debug("delete student : " + deleteResult);

		sqlSession.commit();
		} catch (Exception e) {
				logger.error(e.getMessage(), e);
				sqlSession.rollback();
		} finally {
				try {
						sqlSession.close();
				} catch (Exception e) {
						e.printStackTrace();
				}
		}

		}

}

这里我们的测试从数据库中根据ID,查询一个学生信息



这里说下,如果喜欢使用jdbc.properties配置文件传数据库参数的话,可以将配置信息,写在mybatis_Config.xml中即可。。。
比如像下面这样子
不过注意:'<properties resource="jdbc.properties" />'已经被我注释掉了。。。

<?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>

		<!-- <properties resource="jdbc.properties" /> -->
		<!-- 自定义别名,类型命名,类别名 -->
		<typeAliases>
				<typeAlias alias="student" type="com.mybatis.bean.Student" />
		</typeAliases>


		<!-- 定义数据库信息,默认使用development数据库构建环境 -->
		<environments default="development">
				<environment id="development">
						<!-- 事务管理器 / 采用jdbc事务管理 -->
						<transactionManager type="JDBC" />
						<!-- 配置数据库连接信息 -->
						<dataSource type="POOLED">
								<property name="driver" value="com.mysql.jdbc.Driver" />
								<property name="url" value="jdbc:mysql://localhost:3306/test" />
								<property name="username" value="root" />
								<property name="password" value="123456" />
						</dataSource>
				</environment>
		</environments>

		<!-- 定义映射器/sql语句的配置文件 -->
		<mappers>
				<mapper resource="com\mybatis\mapper\StudentMapper.xml" />
		</mappers>

</configuration>


Mybatis3Demo 立即下载

相关推荐

spring MVC3 + mybatis 3 - demo工程

spring MVC3 + mybatis 3 - demo工程 支持oracle ,mysql 修改下地址就可以用了

MyBatis简单的demo

整理一下MyBaits的相关知识点,慢慢补充。 1.什么是MyBatis? 官网解释:MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和JAVA中的POJO为数据库中的记录。MyBatis的官网:https://github....

weixin_39764056的博客 364

mybatis学习demo3之添加(涉及序列)和删除

NULL 博文链接:https://lijie-insist.iteye.com/blog/2171431

mybatis(3)--第一个mybatis的demo

首先就是搭建环境啦!!!https://github.com/mybatis/mybatis-3/releases从这个链接下载mybatis的开发包下载下来其中mybatis-3.4.4.jar就是其核心包 lib下的包就是相关的日志包,还有代理cglib包,common包等再加一个log.properties#开发环境下设置成debug,生产环境设置成info或者error log4j.roo

fromddd的博客 1202

springMVC+mybatis3工程demo

springMVC+mybatis3工程demo,亲测,绝对可用。spring3

MyBatisDemo

mybatis基本功能,增删改查

Springboot + mybatis3 demo

一、本地安裝好mysql 这个参考网上教程就可以了 二、通过idea创建一个springboot工程 三

weixin_38724483的博客 1018

避坑指南:Winbond W25Q256JV QSPI Flash状态寄存器那些坑(含QE位不可改的解决方案)

本文深度解析Winbond W25Q256JV QSPI Flash状态寄存器的常见问题与解决方案,重点解决QE位不可修改、写保护区域异常等典型问题。通过实战代码示例和寄存器配置技巧,帮助开发者高效完成Flash读写测试与性能优化,避免常见设计陷阱。

ol7890123的博客 308

SpringBoot集成MyBatis-Plus快速入门Demo

MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

mickey2007的博客 2882

现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

【平台:QT】 【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】 【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主】 1、 大作业任务: (1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析) (2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据 (3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC

weixin_44469597的博客 4065

Jetson设备EXT4文件系统修复实战:从superblock损坏到系统恢复

本文详细介绍了Jetson设备因异常断电等原因导致EXT4文件系统superblock损坏后的诊断与修复实战。通过从健康设备移植fsck工具、使用备份超级块等步骤,指导用户逐步恢复系统,并提供了数据备份与预防措施,帮助用户有效应对嵌入式AI开发中的存储故障。

theta的博客 591

Mybatis源码本地化构建Demo

目录绪论构建SQL配置文件映射文件Application总结 绪论 上一篇文章中专门整理了如何构建Mybatis源码,小伙伴们可以在本地写demo跟踪或者注释修改源码等等骚操作。。。本篇就是为小伙伴们介绍一下如何本地化构建demo。 这里分享一下mybatis的中文官方文档,小编构建本地化demo时参考了官方文档。 构建 首先,创建一个package,命名为demo。小编先贴出自己本地化目录。 SQL 数据库中创建blog表,并在model包下生成对应实体类Blog; DROP TABLE IF EXIS

增量星球 4015

三相SVPWM逆变器双闭环PI解耦控制:从dq坐标系到参数整定实战

本文深入解析了三相SVPWM逆变器的双闭环PI解耦控制技术。通过引入dq坐标系,将交流量转换为直流量,并结合前馈补偿实现电流环的解耦控制。文章详细阐述了从数学模型推导、控制器设计到参数整定与SVPWM实现的完整流程,为工程师提供了从理论到实战的系统性指导。

weixin_28292761的博客 402

SpringMVC +Spring+ Mybatis 的完整小demo 拿走不谢

SpringMVC +Spring+ Mybatis 框架整合 完整demo

hzldds2019的博客 7616

LAP-D协议概述

Q.921协议由称为LAPD(链路访问协议-D通道),与HDLC的关系密切,它是在ISDN D通道上使用的数据链路协议。 注:http://www.freesoft.org/CIE/Topics/125.htm LAP-D的帧格式 标志、位填充技术和FCS校验计算与HDLC一致。 16位的地址包括C/R字段、SAPI(服务访问点标识)和TEI(端点标识)。TEI用于区分使用相同ISDN...

系统运维 1914

使用Python的OpenCV库进行三维重建点云

通过这些步骤,我们可以使用Python的OpenCV库进行三维重建,并生成对应的点云。当然,这只是一个简单的示例,实际的三维重建可能涉及更多的图像处理和计算步骤。在计算机视觉领域,三维重建是一项重要的任务,它可以将多个二维图像或视频序列转换为三维场景模型。在本文中,我们将介绍如何使用Python的OpenCV库进行三维重建,并生成相应的点云。以上是使用Python的OpenCV库进行三维重建点云的简要介绍和示例代码。最后,我们可以将计算得到的三维点云可视化。安装完成后,我们可以开始编写代码。

AuSwift的博客 1646

新人一看就懂:Spring Boot+Spring mvc+Mybatis的基础框架demo

Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。后续我会陆续更新,微服务架构(Spring Boot、Spring Cloud)、分布式架构(Dobbo+Zookeeper)、大数据架构以及源码解析等相关的文章,感兴趣的话可以关注一下。

程序员云帆哥的博客 2万+

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1617

MyBatis-Plus快速入门:从安装到第一个Demo

本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。

qq_17153885的博客 1379

【第2章>第10节】深度学习DenseNet模型分析与matlab仿真

本文介绍了基于DenseNet深度学习模型的图像分类MATLAB实现方法。主要内容包括:1. DenseNet模型原理,详细解析了初始卷积层、密集块、过渡层等核心结构;2. 在MATLAB环境下完成DenseNet工具箱安装和测试样本准备;3. 实现图像预处理(统一缩放为224×224)、模型训练和测试的完整流程;4. 提供了混淆矩阵和准确率等测试结果分析。文章附带完整的MATLAB程序代码和操作视频教程,适合深度学习初学者快速掌握DenseNet模型的图像分类应用。通过实际测试,验证了该方案的有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 330

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

简单的MyBatis使用DEMO。

简单的MyBatis使用DEMO。 1)整体结构 2)maven依赖 3)数据准备 4)配置文件 5)代码详解 package com.my.mybatis; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; impo

wscrf的博客 708

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

tk-mybatis-demo 项目教程

tk-mybatis-demo 项目教程 1. 项目目录结构及介绍 tk-mybatis-demo ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── tk │ │ │ └── mybatis │ │ │ └── demo │ ...

gitblog_00969的博客 787

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Mybatis】Mybatis简介及第一个简单demo搭建

Mybatis简单介绍以及一个小demo的编写

Decade0712的博客 1348

Mybatis的第一个Demo

Mybatis的布局与分页创建maven工程导入依赖创建pojo层创建Dao层mybatis主配置文件测试结果 创建maven工程 针对初学者,也是为了加强自己的记忆,写了这篇关于mybatis的使用步骤以及拓展分页控件的使用,第一次写博客,不喜勿碰。 导入依赖 <!-- mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId&gt

showfun0406的博客 167

mybatis入门第一个Demo

官方文档 mybatis官方文档参考 mybatis简介: MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 入门Demo 步骤1:导入项目所需依赖 <!--mysql--

李白很菜的博客 398

Mybatis-Plus:Mybatis-Plus简单demo及其核心功能

一: 简单demo 第一步:打开Mybatis-Plus官网:mybatis-plus官网,点击快速开始选择springboot版本,于是我们就愉快地开始了。 官网pom文件: 官网yml文件配置: 那就是搞定这两个,我们就等于搞定了mybatis-plus入门了。 第二部:建立demo 首先得有数据库还有数据 数据库:这是我的库,我的表,还有我的数据 引入依赖,项目是springboot...

记录,记录,记录 9462
上一篇: MyBatis_2 - MyBatis构成/生命周期
下一篇: WebService(8)_Apache CXF安全机制_X509证书加密
Simba_cheng
博客等级 码龄11年 250粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值