Mybatis环境配置及测试详解

网友投稿 860 2023-02-18

Mybatis环境配置及测试详解

Mybatis环境配置及测试详解

mybatis 3 | 参考文档

MyBatis 是一款优http://秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

一、mybatis环境配置

1.通过maven的pom.xml文件引入mybatis需要的包

在其标签中添加如下代码

org.mybatis

mybatis

3.5.1

2.在src/main/resources下新建mybatis-config.xml文件

并进行xml文件和config的dtd文件的声明

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

3.在mybatis-config.xml文件中的中对数据库进行配置

4.通过SqlSessionFactory构建SqlSession会话实例

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。

从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

通常SqlSession是全局唯一的,通过MybatisUtils工具类减少重复代码

public class MybatisUtils {

//利用static静态 属于类而不属于对象 , 保证全局唯一

private static SqlSessionFactory sqlSessionFactory = null ;

//利用静态块在初始化类时实力话SqlSessionFactory

static {

Reader reader = null;

try {

reader = Resources.getResourceAsReader("mybatis-config.xml");

sqlSessionFactory = new SqlSessionFacthttp://oryBuilder().build(reader) ;

} catch (IOException e) {

e.printStackTrace();

//初始化过程中出现的异常

throw new ExceptionInInitializerError(e) ;

}

}

/**

* 创建一个新的sqlsession对象

* @return sqlsession对象

* */

public static SqlSession openSession(){

return sqlSessionFactory.openSession() ;

}

public static void closeSession(SqlSession sqlSession){

if(sqlSession != null ){

sqlSesshttp://ion.close();

}

}

}

5.通过SqlSession对数据库进行操作

在entity包下创建要操作的数据库表对应的实体类(必须使用驼峰命名和设置get和set方法),同时在resources目录下创建mappers目录,在mappers目录下创建与该实体类同名的xml文件,在对其进行xml声明和mapperdtd文件声明(注意与mybatis-config.xml的dtd文件声明的区别)

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

然后在mybatis-config.xml文件引入该实体与数据库的映射。即在其标签中添加映射xml文件路径

当数据库列字段名为多单词且用"_"拼接时,还需在其标签中开启驼峰命名转换,使Mybatis自动完成映射。

到此为止,mybatis需要的配置就已全部完成。

运行程序测试结果

在 src 源码目录下建立 一个类叫作:HelloWord, 来运行测试配置环境是否成功,具体代码如下示:

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.yiibai.mybatis.models.*;

/**

*

* @author yiibai

* @copyright //jb51-

* @date 2015/09/22

*/

public class HelloWord {

private static SqlSessionFactory sqlSessionFactory;

private static Reader reader;

static {

try {

reader = Resources.getResourceAsReader("config/Configure.xml");

sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

} catch (Exception e) {

e.printStackTrace();

}

}

public static SqlSessionFactory getSession() {

return sqlSessionFactory;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

SqlSession session = sqlSessionFactory.openSession();

try {

User user = (User) session.selectOne(

"com.yiibai.mybatis.models.UserMapper.GetUserByID", 1);

if(user!=null){

String userInfo = "名字:"+user.getName()+", 所属部门:"+user.getDept()+", 主页:"+user.getWebsite();

System.out.println(userInfo);

}

} finally {

session.close();

}

}

}

现在运行这个程序,不是得到查询结果了?正确的输出结果应该如下:

名字:yiibai, 所属部门:Tech, 主页://jb51-

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一网通办一网管控(一网通办 一网统管 一网协同)
下一篇:移动应用开发实验报告(移动应用开发实验报告和作业)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~