basedao mysql_BaseDao

package com.tao.utils;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.springframework.stereotype.Repository;

/**

* @author 陈建

* @描述:dao基础类

* 2018-10-25下午2:54:57

*/

@Repository

public class BaseDao {

//四大金刚

static String driver="com.mysql.jdbc.Driver";

static String url="jdbc:mysql://localhost:3306/day35?useSSL=false";

static String user="root";

static String password="root";

//加载驱动

static{

try {

Class.forName(driver);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//获取数据库连接

public static Connection getConnection() {

try {

return DriverManager.getConnection(url, user, password);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

//关闭数据库连接

public static void closeConnection(Connection conn ,PreparedStatement ps ,ResultSet rs) {

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();

}

}

}

//查询通用方法

public List> executeQuery(String sql,Object...params) {

List> objList= new ArrayList>();

Connection conn = getConnection();

PreparedStatement ps=null;

ResultSet rs=null;

try {

ps = conn.prepareStatement(sql);

ps = setParams(ps, params);

//执行sql

rs = ps.executeQuery();

//获取表元数据信息

ResultSetMetaData metaData = rs.getMetaData();

//解析结果集

while(rs.next()){

Map row= new HashMap();

//metaData.getColumnCount()获取列数

for (int i = 0; i < metaData.getColumnCount(); i++) {

row.put(metaData.getColumnName(i+1), rs.getObject(i+1));

}

objList.add(row);

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

closeConnection(conn, ps, rs);

}

return objList;

}

//增删改通用方法

public boolean executeUpdate(String sql,Object...params) {

Connection conn = getConnection();

PreparedStatement ps=null;

try {

ps = conn.prepareStatement(sql);

ps = setParams(ps, params);

//执行sql

int ret = ps.executeUpdate();

if(ret>0){

System.out.println("操作成功!");

return true;

}else

{

System.out.println("操作失败!");

return false;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

closeConnection(conn, ps, null);

}

return false;

}

//设值通用方法

public PreparedStatement setParams(PreparedStatement ps,Object...params) {

if(params!=null){

for (int i = 0; i < params.length; i++) {

try {

ps.setObject(i+1, params[i]);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

return ps;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值