Mybatis3

Mybatis详解系列(五)–Mybatis Generator和全注解风格的MyBatis3DynamicSql 简介 Mybatis Generator (MBG) 是 Mybatis 官方提供的代码生成器,通过它可以在项目中自动生成简单的 CRUD 方法,甚至“无所不能”的高级条件查询(MyBatis3DynamicSql,有了它根本不需要 Mybatis Plus),让我们避免了进行数据库交互时需要手动创建对象和配置 Mybatis 映射等基础工作。 另外,MBG 有很好地扩展性,它提供了大量... 阅读详情

MyBatis3

 testcase for Mybatis:


 

数据库:

blog:

CREATE TABLE `blog` (
  `blogid` int(11) NOT NULL AUTO_INCREMENT,
  `blogtile` char(20) DEFAULT NULL,
  `authorid` int(11) NOT NULL,
  PRIMARY KEY (`blogid`),
  KEY `fk_authorid` (`authorid`),
  CONSTRAINT `fk_authorid` FOREIGN KEY (`authorid`) REFERENCES `author` (`authorid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

author:

CREATE TABLE `author` (
  `authorid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) DEFAULT NULL,
  `sex` char(1) DEFAULT NULL,
  PRIMARY KEY (`authorid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

person:

CREATE TABLE `person` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` char(100) DEFAULT NULL,
  `age` int(3) DEFAULT NULL,
  `sex` char(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

post:

CREATE TABLE `post` (
  `postid` int(11) NOT NULL AUTO_INCREMENT,
  `postcomment` char(20) DEFAULT NULL,
  `blogid` int(11) NOT NULL,
  PRIMARY KEY (`postid`),
  KEY `fk_blogid` (`blogid`),
  CONSTRAINT `fk_blogid` FOREIGN KEY (`blogid`) REFERENCES `blog` (`blogid`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
	<!-- 关联属性文件,使用${}使用 -->
	<properties resource="db.properties"/>
	<!-- 定义类型别名 -->	
	<typeAliases>
		<!-- <typeAlias type="" alias=""/> -->
		<package name="main.bean"/>
	</typeAliases>
	<!-- 配置数据库环境信息 -->
	<environments default="mysql">
		<environment id="mysql">
			<!--指定事务管理类型[JDBC|MANAGED]  -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 配置JDBC连接对象的资源 POOLED:数据源连接池实现 -->
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />  
		        <property name="url" value="${url}" />  
		        <property name="username" value="${username}" />  
		        <property name="password" value="${password}" /> 			
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="main/config/mapper/person-mapper.xml"/>
	</mappers>
</configuration>


author.java

package main.bean;

public class author {
	
	private int authorid;
	private String name;
	private String sex;
	
	public author() {
		super();
		// TODO Auto-generated constructor stub
	}

	public author(int authorid, String name, String sex) {
		super();
		this.authorid = authorid;
		this.name = name;
		this.sex = sex;
	}

	public int getAuthorid() {
		return authorid;
	}

	public void setAuthorid(int authorid) {
		this.authorid = authorid;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "author [authorid=" + authorid + ", name=" + name + ", sex=" + sex + "]";
	}
	
	
}
package main.bean;

import java.util.List;

public class blog {

		private int blogid;
		private String blogtile;
		private author aut;
		private List<post> posts;
		public blog() {
			super();
			// TODO Auto-generated constructor stub
		}
		public blog(int blogid, String blogtile, author aut, List<post> posts) {
			super();
			this.blogid = blogid;
			this.blogtile = blogtile;
			this.aut = aut;
			this.posts = posts;
		}
		public int getBlogid() {
			return blogid;
		}
		public void setBlogid(int blogid) {
			this.blogid = blogid;
		}
		public String getBlogtile() {
			return blogtile;
		}
		public void setBlogtile(String blogtile) {
			this.blogtile = blogtile;
		}
		public author getAut() {
			return aut;
		}
		public void setAut(author aut) {
			this.aut = aut;
		}
		public List<post> getPosts() {
			return posts;
		}
		public void setPosts(List<post> posts) {
			this.posts = posts;
		}
		@Override
		public String toString() {
			return "blog [blogid=" + blogid + ", blogtile=" + blogtile + ", aut=" + aut + ", posts=" + posts + "]";
		}
		
}
person.java

package main.bean;

public class person {
	
	private int id;
	private String name;
	private int age;
	private String sex;
	
	
	public person() {
		super();
		// TODO Auto-generated constructor stub
	}
	public person(int id, String name, int age, String sex) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	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 String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "person [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
	
	
}

post.java

package main.bean;

public class post {
	
	private int postid;
	private String postcomment;
	private int blogid;
	public post() {
		super();
		// TODO Auto-generated constructor stub
	}
	public post(int postid, String postcomment, int blogid) {
		super();
		this.postid = postid;
		this.postcomment = postcomment;
		this.blogid = blogid;
	}
	public int getPostid() {
		return postid;
	}
	public void setPostid(int postid) {
		this.postid = postid;
	}
	public String getPostcomment() {
		return postcomment;
	}
	public void setPostcomment(String postcomment) {
		this.postcomment = postcomment;
	}
	public int getBlogid() {
		return blogid;
	}
	public void setBlogid(int blogid) {
		this.blogid = blogid;
	}
	@Override
	public String toString() {
		return "post [postid=" + postid + ", postcomment=" + postcomment + ", blogid=" + blogid + "]";
	}
	
}
person-mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="main.config.mapper.person-mapper">

<select id="selectPerson" parameterType="int" resultType="person">
	SELECT * FROM person WHERE id = ${_parameter}
</select>

<insert id="insertPerson" parameterType="person"> 
	INSERT INTO person(name, age, sex) VALUES(#{name}, #{age}, #{sex})
</insert>

<update id="updatePerson" parameterType="person">
	UPDATE person SET 
		name = #{name},
		age = #{age},
		sex = #{sex}
	WHERE id = #{id}
</update>
<delete id="deletePerson" parameterType="int">
	DELETE FROM person WHERE id = #{_parameter}
</delete>
<!-- 一对一关系 -->
<select id="selectBlog" parameterType="int" resultMap="blogResult">
	SELECT * FROM blog INNER JOIN author ON blog.authorid = author.authorid WHERE blog.blogid = #{_parameter}
</select>

<resultMap id="blogResult" type="blog">
	<id property="blogid" column="blogid"/>
	<result property="blogtile" column="blogtile"/>
	<association property="aut" column="authorid" javaType="author" resultMap="authorResult"></association>
</resultMap>
<!-- author表和author的映射关系 -->
<resultMap id="authorResult" type="author">
	<id property="authorid" column="authorid"/>
	<result property="name" column="name"/>
	<result property="sex" column="sex"/>
</resultMap>


<!-- 一对多关系 -->
<select id="selectBlogAndPosts" parameterType="int" resultMap="blogResult2">
	SELECT * FROM blog INNER JOIN post ON blog.blogid = post.blogid WHERE blog.blogid = #{_parameter}
</select>
<resultMap type="blog" id="blogResult2">
	<id property="blogid" column="blogid"/>
	<result property="blogtile" column="blogtile"/>
	<collection property="posts" ofType="post" resultMap="postResult"/>
</resultMap>

<resultMap type="post" id="postResult">
	<id property="postid" column="postid"/>
	<result property="postcomment" column="postcomment"/>
	<result property="blogid" column="blogid"/>
</resultMap>

<!-- 动态sql foreach -->
<select id="selectForeach" parameterType="list" resultMap="blogResult2">
	SELECT * FROM blog INNER JOIN post ON blog.blogid = post.blogid 
	WHERE blog.blogid IN 
	<foreach collection="list" index="index" item="item" open="(" separator="," close=")"> 
		#{item}
	</foreach>
</select>
</mapper>
Factory.java

package main.factory;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Factory {
	private static Factory factory;
	private static SqlSessionFactory sqlSessionFactory;
	private Factory(){
		try{
			String resource = "main/config/mybatis-config.xml"; 
			Reader reader = Resources.getResourceAsReader(resource); 
			sqlSessionFactory = (SqlSessionFactory) new SqlSessionFactoryBuilder().build(reader); 
		}catch(IOException e){
			System.out.println(e.getMessage());
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
	public static SqlSessionFactory getFactory(){
		if(factory == null){
			factory = new Factory();
			return factory.sqlSessionFactory;
		}else
			return factory.sqlSessionFactory;
	}
}

test.java

package main.test;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import main.bean.blog;
import main.bean.person;
import main.factory.Factory;

public class test {
	

	
	@Test
	public void testInsert(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		person p1 = new person(2, "lisi", 12, "w");
		try{
			//session = factory.openSession(true);
			//默认是手动提交事务
			session = factory.openSession();
			int result = session.insert("main.config.mapper.person-mapper.insertPerson", p1);
			//需要手动提交
			session.commit();
			System.out.println(result);
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	
	@Test
	public void testSelect(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		try{
			session = factory.openSession();
			person p = session.selectOne("main.config.mapper.person-mapper.selectPerson", 2);
			System.out.println(p.toString());
		//虽然session的方法签名不需要catch异常
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	
	@Test
	public void testUpdate(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		person p1 = new person(11, "houshaoli", 25, "m");
		try{
			session = factory.openSession(true);
			int result = session.update("main.config.mapper.person-mapper.updatePerson", p1);
			System.out.println(result);
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	
	@Test
	public void testDelete(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		try{
			session = factory.openSession(true);
			int result = session.delete("main.config.mapper.person-mapper.deletePerson", 11);
			System.out.println(result);
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	//一对一映射
	@Test
	public void testSelectOneToOne(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		try{
			session = factory.openSession(true);
			blog b1 = session.selectOne("main.config.mapper.person-mapper.selectBlog", 1);
			System.out.println(b1.toString());
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	
	//一对多集合
	@Test
	public void testSelectOneToMutil(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		try{
			session = factory.openSession(true);
			blog b = session.selectOne("main.config.mapper.person-mapper.selectBlogAndPosts", 1);
			System.out.println(b.toString());
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
	
	//动态sql foreach实例
	@Test
	public void testSelectOneToMutil2(){
		SqlSessionFactory factory = Factory.getFactory();
		SqlSession session = null;
		try{
			session = factory.openSession(true);
			List<String> list = new ArrayList<String>();
			list.add("2");
			list.add("1");
			list.add("6");
			List<blog> blist = session.selectList("main.config.mapper.person-mapper.selectForeach", list);
			for(blog b: blist){
				System.out.println(b.toString());				
			}
		}catch(Exception e){
			System.out.println(e.toString());
		}finally{
			session.close();
		}
	}
}








【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 阅读详情

相关推荐

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3350

Mybatis基础使用(下)

0. 案例环境 0.1 案例数据初始化sql CREATE DATABASE /*!32312 IF NOT EXISTS*/`mybatis_db` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `mybatis_db`; DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `createtime` timestamp N

weixin_43939924的博客 440

X猫免费小说安卓逆向分析

七猫免费小说安卓逆向分析 难度(♥♥) 文章目录七猫免费小说安卓逆向分析 难度(♥♥)1. 查壳2. 抓包分析3. sign1. Frida-rpc2. Native函数分析快3点了. 睡觉~ 白天再继续写! 1. 查壳 我这边使用的是ApkTool, 拖进去显示未加壳。 2. 抓包分析 POST https://xiaoshuo.wtzw.com/api/v1/login/index HTTP/1.1 net-env: 1 channel: qm-cbcpa056_wm is-white: 0 platf

Qiled的博客 4369

MyBatis3-基于注解的示例

在基于注解的示例中,可以简化编写XML的过程,全部采用注解方式进行编写,并在注解上写SQL语句,语句和XML的语句保持一致,并且可以省略掉XML文件不用引入的好处。但还有一点,基于注解的方式还没有百分百覆盖所有XML标签,所有还是有一点缺陷。 在org.apache.ibatis.annotations包下包含了所有注解。 下面引用官方文档的说明http://www.mybatis....

angou6476的博客 305

开源WorkBuddy实战课:从零搭建AI Agent办公自动化工作台

AI Agent作为大语言模型之上的智能体,正在重塑办公效率。它通过工具调用、任务规划与长期记忆,将被动问答升级为主动执行。WorkBuddy作为图形化智能体工作台,降低了搭建门槛,让非技术人员也可配置自动化流程。本文开源整套实战资料,涵盖JDK环境配置、模型接入、日报邮件处理、表格清洗、批量文档生成等场景,并讲解自定义指令、Skills扩展与MCP协议。从基础概念到工程实践,帮助读者快速上手,构建属于自己的办公自动化助手。

weixin_29083475的博客 226

C# 进程间 双内存共享 高帧率图像传输

演示了两个进程之间通过 双内存共享 的方式, 来实时处理图像,并以高帧率(40~60FPS)传输的基本示例。 进程间内存共享的优点:高性能、低延迟、资源效率高、简单可靠。 适用场景:实时图像处理、大数据传输、多进程协作、实时监控系统,等等。

qianqiansd 1997

【MyBatis】3:MyBatis环境搭建及入门程序示例

MyBatis开发环境搭建:     1 创建Java Project         使用什么IDE无所谓,eclipse、myeclipse、idea等等都可以,jdk版本好像也没什么限制,只是有些东西低版本的不支持,比如MyBatis的核心xml文件解析用的xpath是jdk1.5才有的,因此建议使用jdk1.5及其以上版本。         2 下载MyBatis的jar包及其他

爱技术 爱生活 5257

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

MyBatis测试

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。     MyBatis中的全局配置文件定...

poetteaes的博客 8338

【verilog语法详解:从入门到精通】

Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(

m0_58476824的博客 4687

嵌入式工程师成长之路(7)——算法学习

算法大全1、风仲达——算法笔记2、坐在马桶上学算法3、啊哈算法4、深度强化学习实验室。

云轩阁 4万+

mybatis中的test语句

mybatis中mapper.xml中的test语法 &lt;if test="param.status != null and param.status != ''"&gt; &lt;if test="param.status == '完成'"&gt; AND b.status = '完成' &lt;/if&gt; &lt;/if...

qq_37291187的博客 1万+

芯片标称具备8kVESD能力却在8kV测试中失效?

芯片级ESD(HBM模型)与系统级ESD(IEC 61000-4-2)存在本质差异:

硬核科技 647

mybatis3中文文档_MyBatis3 学习记录

图片来自于Unity3D官网MyBatis3官方中文文档mybatis-GitHub下载MyBatis Generator文档MyBatis Generator-GitHub下载MyBatis pagehelpe文档mapperXML<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybati...

weixin_39617470的博客 1103

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

学习MyBatis3这一篇就够了

目录第一章 MyBatis3概述1.1、概述1.2、特点1.3、对比1.4、官网1.5、下载第二章 MyBatis3的增删改查2.1、环境准备2.2、创建工程2.3、导入依赖2.4、创建数据库2.5、编写CRUD第三章 MyBatis3的全局配置3.1、properties3.2、settings3.3、typeAliases3.4、typeHandlers3.5、objectFactory3.6、plugins3.7、environments3.8、databaseIdProvider3.9、mapper

轻松的小希 9563

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

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

Mybatis3 && Hibernate3

Mybatis3中文在线文档 http://www.mybatis.org/mybatis-3/zh/index.html Hibernate3中文在线文档 https://www.w3cschool.cn/hibernate/

b540969928的博客 219

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Mybatis3基础示例

Mybatis3基础示例一、搭建流程总体项目结构:1、Maven依赖2、配置文件 Mybatis-config.xml3、封装MybatisUtils工具类4、其他二、CURD1、接口(UserMapper.class):2、配置文件(UserMapper.xml):3、使用示例(这里使用Junit进行测试)三、注解的使用1、写法2、配置(mybatis-config)3、注意点四、Map的使用1、接口写法(UserMapper.class)2、配置文件(UserMapper.xml)五、模糊查询1、接口写

Zhanc的博客 789

MyBatis3详细教程-从入门到精通

MyBatis教程 官方教程 https://mybatis.org/mybatis-3/zh/getting-started.html 1. 简介 ​ MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集(RestSet)。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息...

xyzhang的博客 3621

学习MyBatis-Plus3这一篇就够了

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。 文章于2020年10月10日前更新出来,敬请期待! ...

轻松的小希 8万+

Spring Boot 3 匹配 Mybatis 3 的错误与解决

在使用MyBatis-Plus时,如果未更新Spring Boot 3对应的依赖坐标,可能会引发bean冲突。建议使用新坐标: com.baomidou mybatis-plus-spring-boot3-starter 3.5.12 否则会出现ConflictingBeanDefinitionException异常,原因是存在同名但不兼容的bean定义(compatibleSet)。升级依赖版本可解决该问题。

RR1335 之代码才是动力源 1696

MyBatis3简介

MyBatis3简介 一、什么是MyBatis   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供...

qq_41425382的博客 844

MyBatis 3.5.3 released!

Sunday, October 20, 2019 Dear Community, We are pleased to announce the release of MyBatis 3.5.3. The below is the list of user visible changes. Enhancements: Support variable substitution in CDATA of...

[Blog][Domain] programb.blog.youkuaiyun.com 590

SpringBoot3集成mybatis

首先创建mapper包(resources下)并在其中写入大致的框架,下一步写方法的接口,创建mapper包(com.example下)并创建接口方法;有了接口之后要对其进行实现,这里采用的是创建service包(com.example下)并在其中编写该接口的具体方法,实际上是一个包含该方法的类,下一步就是让这个方法可以被调用,我们回到controller中,创建一个控制器调用接口,最终往往需要调用数据库的信息,所以同时需要在java中创建数据库中的实体,以便于返回数据;

mild_breeze的博客 1012

mybatis3的源码

/</</</</</</</</</</</</本次只分析mybatis的源码,关于JDBC的源码忽略。

本作者:想花 458
上一篇: MySQL 操作总结(二)
下一篇: Mybatis3+SpringMVC整合
java_hxc_sz
博客等级 码龄10年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值