博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatils课程一
阅读量:4557 次
发布时间:2019-06-08

本文共 4479 字,大约阅读时间需要 14 分钟。

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

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

搭建开发的环境:mybatis-3.1.1.jar和mysql-connector-java-5.1.7-bin.jar

  • 配置文件:

1. 设置mybatis 配置文件:SQLMapconfig.xml, 在src目录下建立此文件(文件名任意,格式为.xml):

 

内容如下:

 

2、定义表所对应的实体类,如下图所示:

 

package org.wangyi.com;import java.text.SimpleDateFormat;import java.util.Date;/** * 定义实体类 *  * @author wangyi * @version 1.0 
* 百度一下 */public class User { private int id; private String username; private Date birthday; private String sex; private String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String bd = format.format(this.birthday); String content = "User[ " + this.id + "," + this.username + "," + this.sex + "," + bd + "," + this.address + " ]"; return content; }}

 

 3、定义操作users表的sql映射文件userMapper.xml

  创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:

 

 

下面是对这几个配置文件一点解释说明:

1、配置文件SQLMapconfig.xml.xml 是 mybatis 用来建立 sessionFactory,里面主要包含了数据库连接相关内容,还有 java 类所对应的别名,比如:<typeAlias alias="User" type="org.wangyi.mapping.userMapperr"/> 这个别名非常重要,在具体的类的映射中,比如:User.xml 中 resultType 就是对应这个。要保持一致,这里的 resultType 还有另外单独的定义方式,后面学习到我们再详细介绍说明。
2、SQLMapconfig.xml 里面 的<mapper resource="com/yiibai/mybatis/models/User.xml"/>是包含要映射的类的 xml 配置文件。
3、在userMapper.xml 文件里面主要是定义各种 SQL 语句,以及这些语句的参数,以及要返回的类型等等。

开始测试

package org.wangy.first;import java.io.FileInputStream;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.junit.Test;import org.wangyi.com.User;/** * MyBatis的入门程序 *  * @author wangyi * @version 1.0 
* 百度一下 * */public class MyBatisFirst { // 查询一条记录 @Test public void findUserByid() throws IOException { // MyBatis的配置文件 String resource = "SQLMapConfig.xml"; // 得到SQLMapConfig.xml配置文件流 String path = MyBatisFirst.class.getClassLoader().getResource(resource) .getPath(); InputStream inputStream = new FileInputStream(path); // 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件) // Reader reader = Resources.getResourceAsReader(resource)或者 // InputStream inputStream = Resources.getResourceAsStream(resource); // 创建MyBatis的会话工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder() .build(inputStream); // 得到会话sqlSession SqlSession sqlSession = factory.openSession(); // 通过sqlSession操作数据库 /** * 第一个参数:值=xxxMapper.xml文件中mapper标签的namespace属性的值+“.”+sql语句标签的id值, * 第二个参数:值=和映射文件所匹配的ResultType类型的参数 */ User user = sqlSession.selectOne( "org.wangyi.mapping.userMapper.finduserByid", 31); // 释放资源,不要忘记 sqlSession.close(); System.out.println(user); }}

转载于:https://www.cnblogs.com/wanglaicai/p/6390172.html

你可能感兴趣的文章
缓存-->Java中缓存的原理
查看>>
Activity 和Service绑定
查看>>
URAL 1348 求垂足
查看>>
flume-agent实例
查看>>
【VS开发】CListCtrl控件使用方法总结
查看>>
【神经网络与深度学习】公开的海量数据集
查看>>
03 docker容器镜像基础
查看>>
bzoj 3620 暴力KMP
查看>>
Excel word “由于本机的限制_该操作已被取消_请与管理员联系”的已生效解决办法 (转 )...
查看>>
解压cpio.gz、zip类型文件
查看>>
静态属性和静态方法
查看>>
高效的MySQL分页
查看>>
MooTools 1.2 Beginner's Guide
查看>>
计算储存、交互和语言
查看>>
bzoj2067: [Poi2004]SZN
查看>>
所谓独立环境
查看>>
当代GSM手机的硬件系统分析[zz]
查看>>
对我影响最深的三个老师
查看>>
开源项目托管GitHub
查看>>
Unity学习笔记—— 常用脚本函数
查看>>