#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); Listusers = 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); Listusers = 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 Listroles; 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 Listusers; 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 { ListfindAll();}
RoleDao接口:
package cn.liuxingchang.dao;import cn.liuxingchang.domain.Role;import java.util.List;public interface RoleDao { ListfindAll();}
UserMapper.xml:
RoleMapper.xml:
context.xml:
mybatis.xml:
转载地址:https://liuxingchang.blog.csdn.net/article/details/109103988 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月06日 10时15分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android实现CBC加解密
2019-04-30
Android导入jar包方法
2019-04-30
Excel转Markdown表格
2019-04-30
手机通过adb工具安装应用
2019-04-30
Android Studio生成APK的基本流程
2019-04-30
Android Studio提高Logcat保存日志数量
2019-04-30
开发中常用的Git命令总结
2019-04-30
JS调用Android方法示例
2019-04-30
Allatori混淆jar包后同时存在大小写类名解决
2019-04-30
JSBridge实现Android和H5交互
2019-04-30
Android反编译工具使用方法
2019-04-30
Android应用加固(使用360加固保)
2019-04-30
常用adb命令列表
2019-04-30
adb无线调试安卓手机方法
2019-04-30
使用Copper插件进行coap测试
2019-04-30
查看安卓手机文件系统方法
2019-04-30
如何实现无界面Android app
2019-04-30
如何实现Android app开机自启动
2019-04-30
安卓获取设备蓝牙信息和连接状态
2019-04-30