#MyBatis:JNDI @FDDLC
发布日期:2021-06-30 20:56:50 浏览次数:2 分类:技术文章

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

JNDI:Java Naming and Directory Interface(Java命名和目录接口)

 

一、在webapp下新建META-INF文件夹,再在META-INF下新建context.xml:

Tomcat就会自动检索到该文件,并执行相关操作。

关于context.xml的说明:

1、name可以自定义,比如 name = "mysql", name = "jdbc/mysql/ssm"都行!

2、driverClassName,这个叫法得记一下!

 

二、MyBatis主配置文件

 

三、使用示例(index.jsp)

<%@ 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="cn.liuxingchang.dao.RoleDao" %><%@ page import="cn.liuxingchang.domain.User" %><%@ page import="cn.liuxingchang.dao.UserDao" %><%@ page import="java.util.List" %><%@ page import="cn.liuxingchang.domain.Role" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>

Hello World!

<% InputStream in = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = factory.openSession(); RoleDao roleDao = sqlSession.getMapper(RoleDao.class); UserDao userDao = sqlSession.getMapper(UserDao.class); List
users = userDao.findAll(); List
roles = roleDao.findAll(); for(User user: users) System.out.println(user); for(Role role: roles) System.out.println(role); sqlSession.close(); in.close();%>

 

说明:

1、要有Web容器。

2、必须经过Web容器,不和Web打交道的Java文件(比如普通的测试类)因为没经过Web容器,所以用不了JNDI类型的数据源。

 


最后附上源码:

 

项目结构:

 

pom.xml:

4.0.0
org.example
P077_JNDI
1.0-SNAPSHOT
war
P077_JNDI Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
mysql
mysql-connector-java
8.0.16
org.mybatis
mybatis
3.4.5
P077_JNDI
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2

 

数据库的相关信息:

MySQL:8.0.16    port:3306    database:multi_table

account表:

user表:

 

web.xml:无配置

 

index.jsp:

<%@ 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="cn.liuxingchang.dao.RoleDao" %><%@ page import="cn.liuxingchang.domain.User" %><%@ page import="cn.liuxingchang.dao.UserDao" %><%@ page import="java.util.List" %><%@ page import="cn.liuxingchang.domain.Role" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>

Hello World!

<% InputStream in = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); SqlSession sqlSession = factory.openSession(); RoleDao roleDao = sqlSession.getMapper(RoleDao.class); UserDao userDao = sqlSession.getMapper(UserDao.class); List
users = userDao.findAll(); List
roles = roleDao.findAll(); for(User user: users) System.out.println(user); for(Role role: roles) System.out.println(role); sqlSession.close(); in.close();%>

 

User类:

package cn.liuxingchang.domain;import java.io.Serializable;import java.util.List;public class User implements Serializable {    private Integer id;    private String name;    private Integer age;    private List
roles; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public List
getRoles() { return roles; } public void setRoles(List
roles) { this.roles = roles; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", roles=" + roles + '}'; }}

 

Role类:

package cn.liuxingchang.domain;import java.io.Serializable;import java.util.List;public class Role implements Serializable {    private Integer id;    private String role;    private String info;    private List
users; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public List
getUsers() { return users; } public void setUsers(List
users) { this.users = users; } @Override public String toString() { return "Role{" + "id=" + id + ", role='" + role + '\'' + ", info='" + info + '\'' + ", users=" + users + '}'; }}

 

UserDao接口:

package cn.liuxingchang.dao;import cn.liuxingchang.domain.User;import java.util.List;public interface UserDao {    List
findAll();}

 

RoleDao接口:

package cn.liuxingchang.dao;import cn.liuxingchang.domain.Role;import java.util.List;public interface RoleDao {    List
findAll();}

 

UserMapper.xml:

 

RoleMapper.xml:

 

context.xml:

 

mybatis.xml:

 

转载地址:https://liuxingchang.blog.csdn.net/article/details/109103988 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:#SpringBoot入门程序 @FDDLC
下一篇:#MyBatis多表查询 #多对多查询 @FDDLC

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月06日 10时15分32秒