eclipse maven+mybatis+web项目(二)
来源:互联网 发布:藏宝阁交易数据异常 编辑:程序博客网 时间:2024/05/01 15:49
读取和解析配置文件
MyBatisUtil.java
package cn.qdsoft.util;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 MyBatisUtil { private static SqlSessionFactory factory; static { try { Reader reader = Resources.getResourceAsReader("Configuration.xml"); factory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } public static SqlSession open() { return factory.openSession(); }}
分析
Reader reader = Resources.getResourceAsReader("Configuration.xml");
读取Mybaits的主配置配置文件,并返回该文件的输入流,Mybatis所有的SQL语句都写在XML配置文件里面,所以第一步就需要读取这些XML配置文件,这个不难理解,关键是读取文件后怎么存放
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
在使用mybatis框架时,第一步就需要产生SqlSessionFactory类的实例(相当于是产生连接池),通过调用SqlSessionFactoryBuilder类的实例的build方法来完成
SqlSessionFactoryBuilder通过类名就可以看出这个类的主要作用就是创建一个SqlSessionFactory,通过输入mybatis配置文件的字节流或者字符流,生成XMLConfigBuilder,XMLConfigBuilder创建一个Configuration,Configuration这个类中包含了mybatis的配置的一切信息,mybatis进行的所有操作都需要根据Configuration中的信息来进行
简而言之,该代码主要是读取配置文件流并将这些配置信息存放到Configuration对象中,读取mappers节点的引用文件,并将这些文件的各个节点信息存放到Configuration对象
public static SqlSession open() { return factory.openSession(); }
通过调用DefaultSqlSessionFactory的openSession方法返回一个SqlSession实例
根据Configuration对象的信息获取数据库连接,并设置连接的事务隔离级别等信息,将经过包装数据库连接对象SqlSession接口返回,DefaultSqlSession是SqlSession的实现类,所以这里返回的是DefaultSqlSession,SqlSession接口里面就是对外提供的各种数据库操作
编写接口测试类
package cn.qdsoft.dao;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import cn.qdsoft.util.MyBatisUtil;public class UserDAOTest { @Test public void findAll() { try (SqlSession session = MyBatisUtil.open()) { UserDAO dao = session.getMapper(UserDAO.class); dao.findAll().forEach(u -> System.out.println(u.getName())); } }}
写好之后右击UserDAOTest.java Run as -> JUnit Test
写页面
这里用bootstrap美化了页面
<%@ page pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>用户列表</title><!-- Bootstrap --><link href="../bootstrap/css/bootstrap.css" rel="stylesheet"></head><body> <table class='table table-bordered table-hover table-striped'> <thead> <tr> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody> <c:forEach items="${users }" var="p"> <tr> <td>${p.name }</td> <td>${p.age }</td> </tr> </c:forEach> </tbody> </table></body></html>
编写UserListServlet
package cn.qdsoft.web;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.ibatis.session.SqlSession;import cn.qdsoft.util.MyBatisUtil;import cn.qdsoft.dao.UserDAO;import cn.qdsoft.model.User;@WebServlet("/user/list.do")public class UserListServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try (SqlSession session = MyBatisUtil.open()) { // 从数据库取出所有用户 UserDAO dao = session.getMapper(UserDAO.class); List<User> lists = dao.findAll(); // 保存到request对象 req.setAttribute("users", lists); } // 转发到 list.jsp req.getRequestDispatcher("list.jsp").forward(req, resp); }}
项目右击 Run as -> maven build
成功之后在浏览器中打开
- eclipse maven+mybatis+web项目(二)
- eclipse maven+mybatis+web项目(一)
- eclipse maven+mybatis+web项目(三)
- Spring+SpringMVC+Mybatis整合系列(二)Eclipse新建Maven web项目
- Spring+SpringMVC+Mybatis整合系列(二)Eclipse新建Maven web项目
- Eclipse使用Maven构建web项目二
- Maven学习(二)Eclipse中创建Maven Web项目
- Eclipse中Spring+Mybatis+Maven构建Web项目
- eclipse maven web项目
- eclipse maven web项目
- Maven Web项目配置Mybatis
- 利用Eclipse中的Maven构建Web项目(二)
- 【Mybatis学习】Eclipse创建Maven-Mybatis项目
- eclipse 中创建 整合springmvc+mybatis+maven 的java web项目步骤,以及maven仓库配置
- eclipse 配置maven web项目
- eclipse 配置maven web项目
- eclipse 配置maven web项目
- Maven构建Web项目(eclipse)
- ffmpeg转mp4格式
- BZOJ4319 cerc2008 Suffix reconstruction
- linux下通过脚本与终端交互的方法
- Linux添加服务并设置开机自动启动
- 给Android程序员的一些面试建议
- eclipse maven+mybatis+web项目(二)
- 安卓四大核心组件之广播接收者
- logcat 信息捕捉并保存为文本
- 操作系统实验一之引导程序
- jquery 学习笔记
- C - 数据结构之链表
- Zookeeper--Zookeeper是什么
- 平衡二叉树(AVLs)
- Flume官方文档翻译之(五)