mybatis作为ORM轻量级框架一出现就吸引了无数人的眼球,比hibernate要简单且入门较容易,下面开始我的第一个mybatis程序。
一、下载mybatis的包
我们知道任何一个框架都会有其包,我们从其官方网站下载其包,官网网址为:http://www.mybatis.org/mybatis-3/,我这里使用的版本为3.3.0。下载完成之后解压可看到如下的目录结构:
mybatis-3.3.0.jar是其包,lib目录下是其依赖包,我们把这些包放到我们的项目中。我这里创建的是javaweb项目,方便以后做web测试,编写的程序是普通的java程序。
二、配置环境
把mybatis的包放到项目的lib目录下之后,接下来时配置mybatis的环境,我们知道mybatis做为ORM框架,属于开发中的DAO层,是和数据库打交道的,所以我们必须有数据,这里以mysql数据为例,具体的建库和建表这里不阐述。
在src目录下创建mybatis的配置文件,文件名称为:configuratin.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> <!--别名--> <typeAliases> <typeAlias alias="Message" type="com.cn.imooc.entity.Message"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/weixin?useUnicode=true&characterEncoding=UTF-8" /> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--映射文件--> <mappers> <mapper resource="com/cn/mappers/message.xml"/> </mappers> </configuration>
在mybatis配置文件中还有很多的配置项这里仅仅使用了这几个,
<typeAliases> 别名配置,即把实体类做个别名,目的在于在映射文件中使用实体类时不使用全限类名,而是使用别名,起到简单的作用
<environments> 配置了一些环境 比如数据配置,这里我们配置了数据源
<mappers> 配置映射文件,这里配置了com.cn.mappers包下的message.xml映射文件
下面对Message实体类进行说明,此实体类里是一些属性,如下,
package com.cn.imooc.entity; public class Message { private String id; private String command; private String description; private String comment; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getCommand() { return command; } public void setCommand(String command) { this.command = command; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } @Override public String toString() { return "Message [id=" + id + ", command=" + command + ", description=" + description + ", comment=" + comment + "]"; } }
提供了getXXX和setXXX方法,其中setXXX方法很关键,我这里的属性和数据库的字段名是一致,可以方便使用mybatis查询出结果之后反射到实体类中,当然也可以和数据库表字段名不一致,后续会进行说明。
message.xml映射文件如下,
<mapper namespace="com.cn.inter.IMessageOperation"> <select id="selectUserByID" parameterType="int" resultType="com.cn.imooc.entity.Message"> select * from `message` where id = #{id} </select> <select id="selectMessages" resultType="Message"> select id, command, description, comment from message; </select> </mapper>
这是我的mapper映射文件,里边有两个方法,一个是:selectUserById 根据id查询,另一个是selectMessages 查询所有
好了,到此为止,我们的mybatis的环境搭建完成,下面可以进行测试了。
三、测试
下面是测试代码,
package com.cn.test; 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; import com.cn.imooc.entity.Message; public class MyTest { public static void main(String[] args) { // TODO Auto-generated method stub Reader reader; SqlSession sqlSession=null; try { //1、获得sqlSessionFactory reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); //2、获得sqlSession sqlSession=sqlSessionFactory.openSession(); //3、查询 Message message=sqlSession.selectOne("com.cn.inter.IMessageOperation.selectUserByID", 1); System.out.println(message); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ sqlSession.close(); } } }
从上面可以看出,首先需要一个SqlSessionFactory,然后由sqlSessionFactory获得sqlSession,由sqlSession执行查询,使用了selectOne方法,第一个参数是映射文件中的nameSpace+“.”方法名,第二个参数是查询参数。
以上所述是小编给大家介绍的MyBatis如何使用(一)的全部叙述,希望对大家有所帮助。后续还会介绍别的版本,更多内容敬请关注小牛知识库!
如何使用Gradle下载mybatis-spring?因为当我使用“”时,我得到了message下面的message。 这是我的文件。
我试图在我的应用程序中配置2个不同的数据源,因为它是必需的。
1. 前言 在spring-boot 集成 MyBatis小节中,我们介绍了如何在 spring-boot 中集成 MyBatis,MyBatis 虽然灵活,但是对于业务开发还略显不够。MyBatis-Plus 是国内开发者为 MyBatis 定制的一款增强工具,在不侵入 MyBatis 的基础上能够快速地提升 MyBatis 的开发能力,为开发者节省大量的时间。 提示: 本小节建立在spring
本文向大家介绍Mybatis多线程下如何使用Example详解,包括了Mybatis多线程下如何使用Example详解的使用技巧和注意事项,需要的朋友参考一下 前言 服务器每收到一个请求,都会从线程池中调度一个空闲线程来处理,spring整合的web时,controller和service一般都是单例的,这样导致无论你的Example标注的是单例还是多例,同一个service下的Example也只
本文向大家介绍如何使用mybatis-generator自动生成代码,包括了如何使用mybatis-generator自动生成代码的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何使用mybatis-generator自动生成代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、在pom文件中添加mybatis-generator
问题内容: 我目前正在开发一个电子商务应用程序,其中必须使用搜索功能显示可用产品的列表。 与每次搜索一样,我必须在此处实施分页。 我使用mybatis作为我的ORM工具,使用mysql作为基础数据库。 谷歌搜索我发现以下方法来完成此任务: 客户端分页 :在这里,我必须一口气从数据库中检索与搜索条件匹配的所有结果,并在我的代码级别(可能是最终代码)处处理分页。 服务器端分页 :使用mysql,我可以
问题背景 之前做springboot项目在操作数据库方面一直在使用的是Mybatis,最近在查阅资料的时候接触到了SpringData JPA与SpringData JDBC,想问一下大佬们,这三个框架如何选型
这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料,各种各样的形式都有,看的人心累,结合了mybatis的官方demo和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。 orm框架的本质是简化编程中操作数据库的