1.准备工作
1.1 MySQL建立表与初始化数据
create table es_t_shop_affiche(
afficheid int primary key,
affichetitle varchar(200)
)ENGINE=INNODB default charset utf8;
insert into es_t_shop_affiche values(10001,'admin');
insert into es_t_shop_affiche values(10001,'root');
1.2 编写创建与关闭数据库连接的工具类
说明:该类只为演示功能,真正投入生产系统需借助连接池,后续会给出连接池最基本的实现
并且此处需要引入MySQL的驱动,本例使用mysql-connector-java-5.1.23-bin.jar
package com.yli.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 创建与关闭JDBC连接 * @author yli * */ public class ConnectionUtil { /** * 创建连接 * @return */ public static Connection getConnection() { String url = "jdbc:mysql://localhost:3306/world"; String user = "root"; String password = "123456"; Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return conn; } /** * 关闭连接 * @param conn */ public static void close(Connection conn){ if(null != conn) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
1.3 为方便查询结果集ResultSet编写工具类RowMapper
package com.yli.dal.util; import java.lang.reflect.Field; 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; /** * 简单的结果集与Java对象转换 * @author yli * * @param <T> */ public class RowMapper<T> { /** * 遍历结果集,将数据转换成指定的class类型<br> * 适合结果集包含多条记录 * @param classes * @param rs * @return */ public static <T> List<T> getForList(Class<T> classes, ResultSet rs) { List<T> resultList = new ArrayList<T>(); Field[] fileds = classes.getDeclaredFields(); try { T object; while (rs.next()) { object = getObject(classes, rs, fileds); if (null != object) { resultList.add(object); } } return resultList; } catch (SQLException e) { e.printStackTrace(); } return null; } /** * 遍历结果集,将数据转换成指定的class类型<br> * 适合结果集包含单条记录,如果不是则取第一条 * @param classes * @param rs * @return */ public static <T> T getForObject(Class<T> classes, ResultSet rs) { List<T> resultList = getForList(classes, rs); if (null != resultList && !resultList.isEmpty()) { return resultList.get(0); } return null; } /** * 遍历结果集,将数据转换成指定的List<Map<String, Object>>类型<br> * 适合结果集包含单条记录 * @param rs */ public static List<Map<String, Object>> getForList(ResultSet rs) { List<Map<String, Object>> resultList = null; try { resultList = new ArrayList<Map<String, Object>>(); ResultSetMetaData rsMeta = rs.getMetaData(); int columnCount = rsMeta.getColumnCount(); int index; String columnLabel; while (rs.next()) { Map<String, Object> resultMap = new HashMap<String, Object>(); for (index = 1; index <= columnCount; index++) { columnLabel = rsMeta.getColumnLabel(index); resultMap.put(columnLabel, rs.getObject(columnLabel)); } resultList.add(resultMap); } } catch (SQLException e) { e.printStackTrace(); } return resultList; } /** * 遍历结果集,将数据转换成指定的Map<String, Object>类型<br> * 适合结果集包含单条记录,如果不是则取第一条 * @param rs */ public static Map<String, Object> getForMap(ResultSet rs) { List<Map<String, Object>> resultList = getForList(rs); if (null != resultList && !resultList.isEmpty()) { return resultList.get(0); } return null; } private static <T> T getObject(Class<T> classes, ResultSet rs, Field[] fileds) { T object = null; try { object = classes.newInstance(); for (Field field : fileds) { String fieldName = field.getName(); field.setAccessible(true); field.set(object, rs.getObject(fieldName)); } } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return object; } }
1.4 为方便本例演示,编写与ES_T_SHOP_AFFICHE表结构字段对应的实体类
package com.yli.entity; /** * 简单实体,与数据表ES_T_SHOP_AFFICHE字段一一对应<br> * 方便将结果集ResultSet映射到该实体上 * @author yli * */ public class ShopAffiche { private long afficheid; private String affichetitle; public long getAfficheid() { return afficheid; } public void setAfficheid(long afficheid) { this.afficheid = afficheid; } public String getAffichetitle() { return affichetitle; } public void setAffichetitle(String affichetitle) { this.affichetitle = affichetitle; } @Override public String toString() { return "[afficheid=" + afficheid + ";affichetitle=" + affichetitle + "]"; } }
相关推荐
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组标准API。JDBC使得Java开发者能够编写...JDBC是Java开发数据库应用的基础,也是许多企业级框架(如Spring JDBC)的基石。
ODBC(Open Database Connectivity)是一种基于C语言的数据库访问接口,而JDBC则是其Java版本,两者都旨在提供一种跨平台的数据库访问机制。然而,JDBC相比ODBC更进一步,它完全用Java编写,避免了因调用本地库而...
JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的应用程序接口,它提供了一套统一的接口方法...通过这份笔记,读者可以掌握使用Java语言操作数据库的技能,为开发各类数据库应用打下坚实的基础。
Java JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准API,它使得Java开发者能够编写数据库无关的代码,实现对数据的增、删、改、查操作。本项目模板提供了两种不同阶段的JDBC应用...
1. **JDBC API基础**: JDBC API包含一系列的接口和类,如`java.sql.DriverManager`、`Connection`、`Statement`、`PreparedStatement`、`ResultSet`等。`DriverManager`用于管理数据库驱动,`Connection`表示到...
了解了这些基础知识,你可以开始使用Java JDBC与SQL Server进行数据交互了。记住,安全性和性能优化是开发过程中的重要考虑因素,比如使用预编译的`PreparedStatement`防止SQL注入,以及及时关闭结果集和数据库连接...
【JDBC基础】 JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准Java API,它允许Java开发者在程序中执行SQL语句并与各种数据库进行交互。JDBC为Java程序员提供了一种统一的方式来连接和操作...
"Java JDBC基础教材 数据库操作基础知识 入门书籍"这个资源可能包含以下内容: 1. JDBC基础概念和原理介绍。 2. 如何配置JDBC驱动和连接数据库。 3. SQL语言的基本操作,如选择、插入、更新和删除数据。 4. 使用`...
本示例将讲解如何使用Java JDBC连接MySQL数据库,这对于任何Java开发者来说都是基础且重要的技能。 首先,我们需要在项目中引入MySQL的JDBC驱动。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml ...
这个项目"JAVAJDBC.rar"显然包含了使用Java JDBC技术实现的一个校园卡信息管理系统,该系统允许管理员和学生两类用户进行登录和操作。下面我们将深入探讨Java JDBC的核心概念、在学生管理及校园卡系统中的应用,以及...
本项目"javajdbc宠物商店-Mysql数据库"是基于Java JDBC实现的一个宠物商店管理系统的数据库部分,它提供了与MySQL数据库交互的能力。在这个项目中,我们将深入探讨以下几个核心知识点: 1. **JDBC API**: JDBC API...
### JDBC基础 1. **JDBC驱动**:JDBC驱动是Java程序与数据库之间的桥梁,分为四种类型:Type 1(纯Java API,性能较低)、Type 2(混合Java和数据库供应商特定代码)、Type 3(完全基于网络的中间件)和Type 4(纯...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许开发者在Java应用程序中执行SQL语句,从而实现对数据库的操作。理解...
### JDBC基础 JDBC(Java Database Connectivity)是JAVA平台中用于与各种数据库进行通信的标准API。它允许开发者使用JAVA编写代码来连接和操作数据库。JDBC由一系列接口和类组成,其中包括`DriverManager`、`...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与数据库交互的一组接口和类,它提供了标准的方法来连接、查询和操作数据库。本实验旨在帮助初学者理解和掌握JDBC的基本用法,通过实际操作,让学习者...
#### 一、JDBC基础概述 JDBC(Java Database Connectivity)是一种标准的Java API,允许Java程序连接并操作各种类型的数据库。它为开发人员提供了一种统一的方式,以便使用相同的API来访问不同的数据库管理系统。 ...
本文将深入探讨SQLite的数据类型及其与Java JDBC连接SQLite的基础知识,并通过一个简单的Java例子程序来演示如何存取数据。 SQLite支持七种基本的数据类型,它们分别是: 1. NULL:表示空值,任何值都可以赋为NULL...
总之,Java JDBC是Java开发数据库应用程序的基础,通过学习和熟练掌握JDBC,可以构建高效、可靠的数据库应用。在PPT培训学习中,会涵盖这些基本概念、操作步骤和实践技巧,帮助开发者深入理解并运用JDBC。
本压缩包包含了三个重要组成部分:《JAVA数据库编程JDBC》、《Java数据库接口JDBC入门基础讲座》以及《JDBC API数据库编程实作教材》。这些资源将帮助初学者全面理解和掌握JDBC的基础知识和实践技巧。 《JAVA数据库...