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的更多相关文章

  1. Java连接数据库 #02# JDBC经典套路

    内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...

  2. Java中数据库连接池原理机制的详细讲解以及项目连接数据库采用JDBC常用的几种连接方式

    连接池的基本工作原理 1.基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理.我们知道,对于共享资源,有一个很著名的设计模式:资源池(Resource Pool).该模式 ...

  3. 从零开始学JAVA(05)-连接数据库MSSQL(JDBC代码篇)

    MSSQL的JDBC驱动下载好以后就可以写代码了. 1.新建项目,项目名为SqlJdbc.新建类,类名为SqlTest,同时勾选public static void main(String[] arg ...

  4. 从零开始学JAVA(04)-连接数据库MSSQL(JDBC准备篇)

    在JAVA中可以使用JDBC连接数据库,不管是哪种数据库,首先必须下载驱动,包括Windows的MSSQL. 1.下载MSSQL的JDBC驱动,可以通过百度“Microsoft JDBC Driver ...

  5. java之连接数据库之JDBC访问数据库的基本操作

    1.将数据库的JDBC驱动加载到classpath中,在基于JavaEE的web应用实际开发过程中通常要把目标数据库产品的JDBC驱动复制到WEB—INF/lib下. 2.加载JDBC驱动并将其注册到 ...

  6. Java连接数据库 #01# JDBC单线程适用

    官方教程(包括 javase的基础部分):JDBC Basics 重新梳理.学习一下“Java连接数据库”相关的内容. 因为最开始没有认真学多线程和JDBC,一直在自己写的多线程程序中维持下面的错误写 ...

  7. 转摘jemeter学习-连接数据库之jdbc请求

    JMETER连接数据库 mysql下载地址:https://dev.mysql.com/downloads/connector/j/ mysql连接器根据语言选择/J,用的是Mac,选择下载.tar. ...

  8. JDBC之BaseDao类

    package com.it.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prep ...

  9. java连接数据库(jdbc)的标准规范

    java连接数据库的标准规范 JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范. localhost和127.0.0.1 都是表示当 ...

随机推荐

  1. 无界鼠标 Mouse Without Borders

    最近遇到一个不爽的事,单位的办公电脑,配置低,自带笔记本电脑,屏幕小. 在给自己的笔记本电脑外接了22寸显示器以后,屏幕是舒服了很多,而且外接了微软的人机工学键鼠套装,加上自己的伪人机工学椅,舒适性确 ...

  2. Tomcat各个版本下载路径

    http://archive.apache.org/dist/tomcat/tomcat-7/     修改对应版本号即可比如 tomcat-8

  3. Spring _day02_IoC注解开发入门

    1.Spring IoC注解开发入门 1.1 注解开发案例: 创建项目所需要的jar,四个基本的包(beans core context expression ),以及两个日志记录的包,还要AOP的包 ...

  4. egret 添加帧动画

    private showEffect(): void { //加载本地的帧动画资源 RES.getResByUrlNoCache("resource/assets/shenqi_eff.js ...

  5. spring jpa 语法

    摘自http://www.cnblogs.com/BenWong/p/3890012.html Table 2.3. Supported keywords inside method names Ke ...

  6. Fiddle手机抓包

    Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指co ...

  7. console.log()中的%d,%s等代表的输出类型

    在console.log()或console.debug()中输出时会有%d,%s等符号. %s for a String value 字符类型 %d or %i for a Integer valu ...

  8. python网络之web框架

    逐步引入: 1. 最简单的web server #!/usr/bin/env python # coding:utf-8 import socket sk = socket.socket() sk.b ...

  9. windows下端口占用处理工具

    一.通用方法 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,笔者在最近使用tomcat时,老是会遇到这种端口占用的问题,如何知道谁占有了我们需要的端口,很多人都比较头疼,以下是通用方法: ...

  10. python笔记2——关于列表的使用

      一.列表的一些基本用法 names=["XiaoNaiyou", "XiaoNan", "WeiZhen", "WuCheng ...