关于JNDI技术链接操作数据库-2019.1.10
Java 命名与目录接口(Java Naming and Directory Interface)
==需要使用的包为java.sql&javax.naming包==Mysql
步骤:
1.配置tomcat的中的context.xml文件
2.配置web.xml
3.添加数据库驱动文件 放在tomcat中的lib文件中
4.进行代码编写,实现查找数据源
1.修改Tomcat/conf/context.xml文件
<!-- 下面是配置JNDI的配置文件 如果需要 请设置name 的是值 -->
<Resource
name="myschool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxldle="100"
maxWait="-1"
username="root"
password="cjx"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/myschool"
/>
<!-- 结束 -->

2.添加数据库驱动文件
把数据库驱动的.jar文件,加入到Tomcat的lib中
3.在应用层配置web.xml文件
<!-- 配置web.xml的文件 用于配置Jndi -->
<resource-ref>
<res-ref-name>myschool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- 结束 -->
4.访问数据源
package com.bin.jndi;
import java.sql.*;
import java.util.*;
import javax.sql.*;
import javax.naming.*;
public class Base_Dao {
public Connection getConnection() throws Exception {//调用此方法返回一个链接对象
//获取数据源对象
Context ctx = new InitialContext();
//得到数据源对象
DataSource ds = (DataSource)ctx.lookup("java:comp/env/myschool");
//得到Connextion链接对象
Connection con = ds.getConnection();
//返回数据
return con;
}
public ArrayList<String> set_s()throws Exception {
ArrayList<String> list = new ArrayList<String>();
//获取Connection链接
Base_Dao base = new Base_Dao();
Connection con = base.getConnection();
System.out.println(con);
//编写sql语句
String sql = "select * from student";
//通过链接得到执行者对象
PreparedStatement pa = con.prepareStatement(sql);
ResultSet res = pa.executeQuery();
//遍历这个结果集
while(res.next()) {
list.add(res.getString("StudentNo"));
}
return list;
}
}
关于JNDI技术链接操作数据库-2019.1.10的更多相关文章
- Tomcat通过JNDI方式链接MySql数据库
原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源 局部数据源 在Tomcat的conf/C ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- .NET技术-2.0. 操作数据库-EF
.NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...
- ORACLE链接SQLSERVER数据库数据操作函数范例
ORACLE链接SQLSERVER数据库数据操作函数范例 create or replace function FUN_NAME(LS_DJBH IN varchar2 ,LS_ITM varchar ...
- .NET技术-2.0. 操作数据库-Dapper
.NET技术-2.0. 操作数据库-Dapper 项目参见: 1. 为什么选择Dapper 1) 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco seria ...
- java链接并操作数据库
链接准备 MySQL数据库驱动(连接器).mysql-connector-java-x.x.xx.jar会在MySQL安装时提供,若Mysql是默认安装路径,则连接器在:C:\Program File ...
- Android学习之基础知识九 — 数据存储(持久化技术)之使用LitePal操作数据库
上一节学习了使用SQLiteDatabase来操作SQLite数据库的方法,接下来我们开始接触第一个开源库:LitePal.LitePal是一款开源的Android数据库框架,它采用了对象关系映射(O ...
- 使用vbScript 链接SQLserver数据库和基础操作
使用vbs链接SQLserver数据库 数据库的创建.设计使用 management studio完成 1.本地链接数据库 set oCon = server.createObject("a ...
- python下对mysql数据库的链接操作
参考网址: https://blog.csdn.net/guofeng93/article/details/53994112 https://blog.csdn.net/Chen_Eris/artic ...
随机推荐
- Git进阶--你可能不知道的很好用Git功能
一.刚提交的代码,发现需要微调一下 刚刚最新提交了一段代码,然后跟前端说,接口好了.过了2分钟,前端跟你说,哎,兄弟,那个金额能不能返回整数,不要小数点. 这个时候一般我们通常会修改一下之后,再提交一 ...
- BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3) (转)
声明:部分动画来源于网络,本人只是想方便收集在一起,如果不妥请及时与我联系!谢谢 为了统一BaseAnimationApp签名,一定要方便以后大家自动更新...防止签名冲突,不能及时更新 1.3源码下 ...
- js 倒计时功能,获取当前时间的年月日,时分秒
一.实现当前时间到指定截止时间的倒计时功能 <html> <head> <title>TEST</title> </head> <bo ...
- Unity5.x Reflection Probe反射探针
http://blog.csdn.net/yupu56/article/details/53487216
- Ruby快速入门
Rb是什么 ? 交互式Ruby(IRB)为实验提供了一个shell.内置IRB shell,你可以立即一行行查看表达式的结果.该工具自带Ruby安装,所以你必须做一些额外的IRB工作无关.只需键入在命 ...
- 31-字符串转为 url 格式的两种不同情况
将此字符串转为 url 格式的: # 如果是转化对象用:data=urllib.parse.urlencode(values) # 如果是转化字符串:s=urllib.parse.quote(s)
- error:while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory
执行 memcached 启动命令时,报错,提示:error while loading shared libraries: libevent-2.1.so.6: cannot open shared ...
- 动态列 Excel 导出
/// <summary> /// 导出数据通用属性 需在属性进行标记 /// </summary> [AttributeUsage(AttributeTargets.Clas ...
- 三)Wiring up jobs using triggers and the SchedulerFactoryBean
示例地址: https://github.com/witaste/quartz.git │ pom.xml │ └─src └─main ├─java │ └─cn │ └─zno │ └─job │ ...
- vc 使窗口置顶 在最前面
bool SetWindowTop(CWnd* pWnd){ if(!pWnd) { return false; } if(pWnd->GetExStyle()&WS_EX_TOPM ...