public class MysqlDAO { public Connection getConnection() throws SQLException { try { Class.forName(PropertiesUtil.getString("jdbc.driver")); } catch (ClassNotFoundException e) { e.printStackTrace(); } String url = PropertiesUtil.getString("jdbc.url"); String user = PropertiesUtil.getString("jdbc.user"); String password = PropertiesUtil.getString("jdbc.password"); Connection conn = (Connection) DriverManager.getConnection(url,user,password); return conn; // return getPoolConnection(); } /** * 注:Oracle键必须是大写的 * @param sql * @param params * @return * @throws SQLException */ public List<Map<String, Object>> query(String sql, Object[] params) throws SQLException { Connection connection = getConnection(); PreparedStatement ps = connection.prepareStatement(sql); if (params != null) { for (int i = 0; i < params.length; i++) { ps.setObject((i + 1), params[i]); } } ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int column_count = rsmd.getColumnCount(); List<String> fields = new ArrayList<String>(); for (int i = 1; i <= column_count; i++) { String field = rsmd.getColumnName(i); fields.add(field); } List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); while (rs.next()) { Map<String, Object> record = new HashMap<String, Object>(); for (String field : fields) { Object value = rs.getObject(field); record.put(field, value); } result.add(record); } if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } return result; } /** * * @param sql * @param params * @param alias 总数别名 * @return * @throws Exception */ public int queryCount(String sql, Object[] params,String alias) throws Exception { Connection connection = getConnection(); PreparedStatement ps = connection.prepareStatement(sql); if (params != null) { for (int i = 0; i < params.length; i++) { ps.setObject((i + 1), params[i]); } } ResultSet rs = ps.executeQuery(); int count = 0; if (rs.next()) { count = rs.getInt(alias); } if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } return count; } public int update(String sql, Object[] params) throws SQLException { Connection connection = getConnection(); PreparedStatement ps = connection.prepareStatement(sql); if (params != null) { for (int i = 0; i < params.length; i++) { ps.setObject((i + 1), params[i]); } } int count = ps.executeUpdate(); if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } return count; } public void batchUpdate(String sql, List<Object[]> list) throws SQLException { Connection connection = getConnection(); connection.setAutoCommit(false); PreparedStatement ps = connection.prepareStatement(sql); for (Object[] param : list) { for (int i = 0; i < param.length; i++) { ps.setObject((i + 1), param[i]); } ps.addBatch(); } int[] counts = ps.executeBatch(); connection.setAutoCommit(true); if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } } /** * 查询mysql中的所有表 * @return * @throws SQLException */ public List<String> queryTables() throws SQLException{ String sql = "show tables";// oracle:select table_name from user_tables; Connection connection = getConnection(); PreparedStatement ps = connection.prepareStatement(sql); ResultSet rs = ps.executeQuery(); List<String> result = new ArrayList<String>(); while (rs.next()) { String table_name = rs.getString("Tables_in_house"); result.add(table_name); } if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } return result; } /** * 查询mysql中的表的所有列名及其类型 * @return * @throws SQLException */ public Map<String, String> queryTableColumn(String table) throws SQLException{ String sql = " select * from "+table+" where 1=2 "; Connection connection = getConnection(); PreparedStatement ps = connection.prepareStatement(sql); ResultSet rs = ps.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int column_count = rsmd.getColumnCount(); // List<String> fields = new ArrayList<String>(); Map<String, String> fields = new HashMap<String, String>(); for (int i = 1; i <= column_count; i++) { String field = rsmd.getColumnName(i); String type = rsmd.getColumnTypeName(i); fields.put(field, type); // System.out.println(field+"-"+type); } if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(connection!=null){ connection.close(); } return fields; }
相关推荐
标题"JDBC+DAO.rar_DAO JDBC_java d_jdbc d_jdbc dao_留言系统"中,关键词主要包括"JDBC"、"DAO"和"留言系统",这表明这是一个基于Java的数据库操作(JDBC)和数据访问对象(DAO)模式实现的简单留言系统。...
"JDBC_DAO.rar"这个压缩包文件显然包含了关于使用Java数据库连接(JDBC)实现数据访问对象(DAO)分层模型的相关资源。这是一个常见的设计模式,用于将业务逻辑与数据操作进行解耦,提高代码的可重用性和可维护性。 ...
在这个名为"jdbcdao.zip"的压缩包中,我们看到的是一个基于JDBC实现的简单管理系统,该系统包括管理员、教师、学生和课程四个主要模块,它巧妙地运用了DAO(Data Access Object)设计模式,为新手提供了一个学习和...
CommonJDBCDAO组件则是由国人自主开发实现的基于JDBC API的数据访问组件,保留有O/R Mapping工具的简便性,也具有JDBCTemplate的灵活性,对JDBC API进行彻底的封装和简化,而且使用简单,目前的版本完全兼容于Oracle...
**JDBC DAO设计思想与搭建骨架** 在Java开发中,JDBC(Java Database Connectivity)是连接数据库的标准API,而DAO(Data Access Object)模式是一种常用的设计模式,用于封装对数据库的操作,以降低业务逻辑与数据...
此小工具能更据mysql数据库中的表结构,自动生成JDBC DAO类和接口,包括单表操作的CRUD方法,其中包含分页方法。此工具用swing做的界面,使用简单方便。需要源码,请发邮件至763863446@qq.com。
### Java JDBC DAO 概述 在Java开发领域中,DAO(Data Access Object)设计模式是一种常用的模式,用于封装对数据库的访问操作。本篇文章将基于提供的`BaseDao`类,深入探讨Java JDBC DAO的设计思想、实现原理以及...
标题中的"jdbcdao.zip_jdbc ttemplate_loose9l6_oracle_python_rockfps"暗示了一个基于Python的数据库访问模块,它集成了JDBC(Java Database Connectivity)模板风格的查询功能,适用于SQLite、MySQL和Oracle数据库...
DAO JDBC 模式
《Spring JDBC DAO详解》 在Java开发中,Spring框架以其强大的功能和易用性深受开发者喜爱,其中Spring JDBC模块提供了对数据库操作的支持。Spring JDBC DAO(Data Access Object)模式是Spring提供的一种数据库...
在JDBC+DAO模式中,DAO类封装了对数据库的所有操作,使业务逻辑代码与数据访问代码分离,提高了代码的可维护性和可测试性。 连接Oracle数据库的基本步骤如下: 1. **加载驱动**:使用`Class.forName()`方法加载...
**JDBC中的DAO模式** DAO(Data Access Object)模式是一种常用的设计模式,它在Java编程中用于处理数据库交互。DAO的主要目标是将业务逻辑与数据访问层进行解耦,提高代码的可重用性和可测试性。在JDBC中,DAO模式...
基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。 需求要求: 该系统的基本需求是,系统要实现如下的基本管理功能: (1)用户分为...
dao模式的详细图解
- **可扩展性**:更换不同的数据访问技术(如JDBC、Hibernate或MyBatis)只需更改DAO实现,而无需修改上层业务代码。 在用户登录和注册场景下,DAO模式的应用如下: - **登录**:`UserDao.login()`方法接收用户名...
在"CRUD-jdbcDao"项目中,我们可能看到了一个名为`jdbcDao`的组件,这是Java中的数据访问对象(DAO,Data Access Object)模式的实现,用于封装数据库操作,使其与业务逻辑解耦。DAO模式的主要目的是将业务逻辑和...
标题"ifunsu封装基于springjdbc的dao层api"指的是一个特定的项目或库,名为ifunsu,它已经对Spring JDBC进行了封装,以创建更易用的数据访问对象(DAO)层API。DAO层是应用程序中负责与数据库进行交互的部分,通常...
jdbc详细测试用例,包括connection ,statement,preparedstatement,resultset,BeanUtils,DBUtils,数据库连接池dbcp,cp03的单元测试,及dao层的统一封装,适合项目开发人员学习和项目中使用。
JDBC+DAO实现简单部门管理 本文主要介绍了使用JDBC和DAO模式实现简单的部门管理系统,实现了基本的CRUD(Create, Read, Update, Delete)操作。同时也涉及到了JavaWeb中的过滤监听机制,包括Filter和Listener的概念...
基于JDBC实现的DAO(Data Access Object)是一种在Java编程中常见的数据访问模式,它用于封装对数据库的操作,使得业务逻辑层与数据访问层解耦,提高了代码的可复用性和可维护性。以下是关于基于JDBC实现DAO的一些...