将连接数据库的JDBC提成BaseDao
package com.shangke; import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties; /**
* 用来操纵数据库的类
*/
public class BeseDao {
private static String url ="";
private static String user ="";
private static String password ="";
private static String driver ="";
private Connection conn = null;//数据库连接对象 connection
PreparedStatement ps =null;//执行Sql statement对象
ResultSet rs=null;//结果集
//因为只需加载一次所以就是用static代码块就可以了
static{
Properties pro=new Properties();
//获取读src下的输入流
InputStream resourceStream = BeseDao.class.getClassLoader().getResourceAsStream("JDBC.properties");
try {
//加载输入流
pro.load(resourceStream );
//读取文件的key值
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//加载驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
//关闭流
if(resourceStream!=null){
try {
resourceStream .close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} //获取数据库连接
public boolean getConnection(){
try {
//将连接对象赋值
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return true; } //数据库增删改
public int updataSQL(String sql,Object[]... obj) {
int indenx =-1;
//先获取到连接对象
if(this.getConnection()){
try {
//使用连接对象 获取statement对象
ps = conn.prepareStatement(sql);
//填充占位符
for(int i=0;i<obj.length;i++){
ps.setObject(i+1,obj[i]);
}
indenx = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
return indenx;
}
//数据库查询
public ResultSet querySQL(String sql, Object[]... obj) {
if(this.getConnection()){
try {
ps=conn.prepareStatement(sql);
//填充占位符
for(int i=0;i<obj.length;i++){
ps.setObject(i+1,obj[i]);
}
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
} return rs;
}
//释放资源
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
将连接数据库的JDBC提成BaseDao的更多相关文章
- Java连接数据库 #02# JDBC经典套路
内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...
- Java中数据库连接池原理机制的详细讲解以及项目连接数据库采用JDBC常用的几种连接方式
连接池的基本工作原理 1.基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理.我们知道,对于共享资源,有一个很著名的设计模式:资源池(Resource Pool).该模式 ...
- 从零开始学JAVA(05)-连接数据库MSSQL(JDBC代码篇)
MSSQL的JDBC驱动下载好以后就可以写代码了. 1.新建项目,项目名为SqlJdbc.新建类,类名为SqlTest,同时勾选public static void main(String[] arg ...
- 从零开始学JAVA(04)-连接数据库MSSQL(JDBC准备篇)
在JAVA中可以使用JDBC连接数据库,不管是哪种数据库,首先必须下载驱动,包括Windows的MSSQL. 1.下载MSSQL的JDBC驱动,可以通过百度“Microsoft JDBC Driver ...
- java之连接数据库之JDBC访问数据库的基本操作
1.将数据库的JDBC驱动加载到classpath中,在基于JavaEE的web应用实际开发过程中通常要把目标数据库产品的JDBC驱动复制到WEB—INF/lib下. 2.加载JDBC驱动并将其注册到 ...
- Java连接数据库 #01# JDBC单线程适用
官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写 ...
- 转摘jemeter学习-连接数据库之jdbc请求
JMETER连接数据库 mysql下载地址:https://dev.mysql.com/downloads/connector/j/ mysql连接器根据语言选择/J,用的是Mac,选择下载.tar. ...
- JDBC之BaseDao类
package com.it.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prep ...
- java连接数据库(jdbc)的标准规范
java连接数据库的标准规范 JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范. localhost和127.0.0.1 都是表示当 ...
随机推荐
- 中国地图插件世界地图||jQuery矢量SVG地图插件JVectorMap
中国地图插件|jQuery矢量SVG地图插件JVectorMap https://www.html5tricks.com/jquery-china-map.html 世界地图: https://www ...
- cvte春招测试面试记录
cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...
- storcli 简易使用介绍
MegaCli 是LSI公司官方提供的SCSI卡管理工具,由于LSI被收购变成了现在的Broadcom,所以现在想下载MegaCli,需要去Broadcom官网查找Legacy产品支持,搜索MegaR ...
- using Newtonsoft.Json;
using Newtonsoft.Json; //数组转义为json string result = JsonConvert.SerializeObject(list1); //josn转 ...
- Html骨架、基本语法
万丈高楼平地起,勿贪快,脚踏实地,才能仰望星空 一.HTML骨架 标准骨架 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...
- 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...
- 请解释ASP.NET 中的web 页面与其隐藏类之间的关系?
一个ASP.NET 页面一般都对应一个隐藏类,一般都在ASP.NET 页面的声明中指定了隐藏类例如一个页面 Tst1.aspx 的页面声明如下 <%@ Page language="c ...
- 结对作业收获_core组
收获:编码之前必须的思考是逃不掉的,而且这一步是磨刀不误砍柴工,而且会加速以后的步骤 分析: 首要重要的事情是:需要完成的功能,理清逻辑关系.我们要随机产生一定要求的算式,并且计算出算式的值. 其次的 ...
- 第十四周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 设计和优化索引 定义一种应用于所有地方的 ...
- HTML5 浏览器支持
css重置 header, section, footer, aside, nav, main, article, figure { display: block; } 为HTML添加新的元素 < ...