在我们已经有了Mybatis基础的情况下,我们可以使用Tomcat部署web项目
1.创建Maven项目
选择webapp
2.配置pom.xml
在pom.xml中添加依赖 这里的依赖比单纯的Mybatis配置多了两个 一个是jsp的依赖,另一个是servlet
<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency></dependencies>
3.构建的Maven项目的目录
新构建的目录是不完整的,我们需要在src目录下新建test目录,在main目录下新建java以及resources目录 这边是为了与之前学习Mybatis一致。webapp下新建一个META-INF目录,该目录下新建一个context.xml 用来配置JNDI
当然仅仅创建文件夹是不行的,我们得更改它们的类型
最终的目录是下面这样
上面一些文件和案例是引用上一篇博客的代码
4.配置context.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Context><Resourcename="jdbc/ssmtest"type="javax.sql.DataSource"auth="Container"maxActive="20"maxWait="10000"maxIdle="5"username="root"password="feng10.10"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/ssmtest"/></Context>
上边那个存放的是JNDI的全局数据源
下面是JNDI的一些属性
属性 | 含义 |
---|---|
name | 数据源的名称 |
type | 数据源类型 |
auth | 数据源提供者 这里是Tomcat |
maxActive | 最大活动数 |
maxWait | 最大等待时间 以秒为单位 |
maxIdle | 最大空闲数 |
username | 账号 |
password | 密码 |
url | url |
5.配置SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--typeAliases 是取别名 typeAlias是为type属性的取一个alias中的别名--><typeAliases><!-- <typeAlias type="com.test.domain.User" alias="user"></typeAlias>--><!--用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写--><package name="com.test.domain"/></typeAliases><!--配置环境--><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC"></transactionManager><dataSource type="JNDI"><property name="data_source" value="java:comp/env/jdbc/ssmtest"/></dataSource></environment></environments><mappers><!-- <mapper resource="com/test/Dao/IUserDao.xml"></mapper> --><!-- 这里的package标签是用于指定dao接口的所在的包,当指定了之后就不需要再写mapper及其他的属性resource 或者 class --><package name="com.test.Dao"/></mappers></configuration>
应该不难发现这上面与一般的mybatis配置不同的地方就在于dataSource标签type属性设置为JNDI,property标签的属性:name设置为data_source 、value设置为java:comp/env/xxx/xxx 这边的xxx对应前面JNDI属性name的值
6.配置index.jsp启动Tomcat服务
在webapp目录的WEB-INF下有一个index.jsp,配置完Tomcat启动Tomcat会默认访问index.jsp,我们可以在该jsp中插入java代码块。
<%@ page import="java.io.InputStream" %>
<%@ page import="org.apache.ibatis.io.Resources" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactory" %>
<%@ page import="org.apache.ibatis.session.SqlSessionFactoryBuilder" %>
<%@ page import="org.apache.ibatis.session.SqlSession" %>
<%@ page import="com.test.Dao.IUserDao" %>
<%@ page import="java.util.List" %>
<%@ page import="com.test.domain.User" %><%@page language="java" contentType="text/html; UTF-8" pageEncoding="UTF-8" %>
<html>
<body>
<h2>Hello World!</h2>
<%InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);SqlSession sqlSession =factory.openSession();IUserDao userDao=sqlSession.getMapper(IUserDao.class);List<User> users=userDao.findAll();for(User user:users){
// System.out.println(user);out.print(user);out.print("<br/>");}%>
</body>
</html>
代码块里的内容就是使用Mybatis框架来访问数据库表,我们将在网页中获取到该表的全部信息
好了,写完这篇博客,情人节也差不多进入尾声了。