首先要建立连接,为了在第二次链接的时候,不用重新创建Connection ,浪费,所以在创建连接的时候,先判断当前对象的conn是否为null,是才进行创建,否则直接使用已有。
private static Connection conn = null;
public Connection getConnection()
{
if (conn == null)
{
System.out.println("数据库还未连接,请创建数据库连接");
return null;
}
else
return conn;
}
public Connection connectDatabase(String className, String connectUrl, String username, String password)
{
try
{
/**
* 加载mysql数据库驱动,判断conn连接是否已创建,若没有则创建,否则直接返回已有的连接。
*/
Class.forName(className);
System.out.println("Success load Driver");
if (conn == null)
{
conn = DriverManager.getConnection(connectUrl, username, password);
System.out.println("创建连接!");
}
}
catch (Exception e)
{
System.out.println("Error loading jdbc driver");
e.printStackTrace();
}
return conn;
}
连接建好了,第二部就是取数据。 提供sql查询语句,将查询的结果放进一个HashMap中,key是数据库字段名,value是查询结果。 将封装好的HashMap放进List中。
public List<Map<String, String>> getSelect(Connection conn, String query)
{
try
{
/**
* 连接数据,创建结果集
*/
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = null;
/**
* 将查询结果集放进HashMap<Integer, StudentBean>, list添加封装好的map,
* 返回List
*/
while (rs.next())
{
map = new HashMap<String, String>();
map.put("classId",rs.getString("classId"));
map.put("studentName",rs.getString("sname"));
map.put("studentId", rs.getString("sid"));
list.add(map);
}System.out.println(list.size());
for(int i=0;i<list.size();i++){
Map<String, String> m = (Map<String, String>)list.get(i);
// Map<String, String> m = (Map<String, String>)iter.next();
for (Object obj : m.keySet())
{
System.out.print(obj + ": "); //输出key
System.out.print("time");
System.out.println(": " + m.get(obj)); //输出keyValues
}
}
return list;
}
catch (Exception e)
{
System.out.print("get data error!");
e.printStackTrace();
return null;
}
}
好了写一个List<Map<String,String> 的迭代器 ,查询返回结果
public void Query(List list)
{
/**
* 判断查询结果数目,为0 输出提示,结束方法
*/
if (list == null)
{
System.out.println("list is null ,error");
return;
}
else if (list.size() == 0)
{
System.out.println("no data found!!");
return;
}
/**
* 迭代Iterator,
*/
else
{
Iterator<Map<String, String>> iter = list.iterator();
while (iter.hasNext())
{
Map<String, String> m = (Map<String, String>)iter.next();
for (Object obj : m.keySet())
{
System.out
写个测试类Test.class
public static void main(String[] args)
{
String sqlString = "select * from student ";
String className = "com.mysql.jdbc.Driver";
String connectUrl = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123";
JdbcInterface inter = new JdbcImpl();
Connection conn = inter.connectDatabase(className, connectUrl,username,password);
inter.getSelect(conn, sqlString);
分享到:
相关推荐
7. **在JSP页面上显示数据**:在JSP页面中,利用JSTL(JavaServer Pages Standard Tag Library)或EL(Expression Language)表达式,从请求作用域中取出数据,并将其插入到HTML元素中。例如,可以使用`<c:forEach>`...
当使用 JDBC 从远程 Oracle 数据库提取数据时,如果远程数据库使用的是 `US7ASCII` 字符集,而本地应用期望的数据字符集为 `ZHS16GBK`,则在读取过程中会因字符集转换错误而导致乱码。这是因为 Java 在处理字符串时...
从ResultSet中取出BLOB对象,然后写入到OutputStream,可以是文件流或者内存流,从而恢复图片。 在本案例的"imgTest"项目中,可能包含了一个完整的示例代码,演示了这些步骤。这个项目经过测试,证明了图片可以成功...
根据给定的文件信息,我们可以总结出以下关于如何使用Java从MySQL数据库中获取数据并在JTable中显示的相关知识点: ### 一、导入必要的库 在Java程序中操作MySQL数据库及Swing组件,需要导入以下几个包: 1. `java...
从代码中可以看出,这个程序使用了Swing库来构建图形用户界面(GUI)。`JFrame`是窗口的基础,`JLabel`、`JButton`、`JTextField`、`JTable`和`JScrollPane`分别是标签、按钮、文本字段、表格和滚动面板组件。 5. ...
**从数据库取出Blob数据** 取出Blob数据到本地磁盘包括以下步骤: 1. **查询数据**:执行一个SQL查询语句来获取Blob列的值。 2. **获取Blob对象**:在结果集中,使用`ResultSet.getBlob()`方法获取Blob对象。 3....
JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。通过JDBC,开发者可以编写跨平台的数据库应用程序,而无需关心底层数据库的具体实现。 然而,直接使用...
3. **获取连接**:通过`BasicDataSource.getConnection()`获取连接,此时是从池中取出一个已存在的连接,而非直接创建。 4. **归还连接**:使用完连接后,通过`Connection.close()`方法归还给连接池,而不是真正...
首先,我们需要使用 JDBC 驱动程序连接到 SQL Server 数据库,并从结果集中取出 Image 类型数据: ```java InputStream in = rsSql.getBinaryStream("PICTURE"); ``` 然后,我们需要将 Image 类型数据写到文件中: `...
本视频是用eclipse实现与数据库的连接的视频,并从数据库中取出数据来做展现
在IT行业中,数据库是存储和管理数据的核心...以上就是关于“对象保存进MySQL数据库,从MySQL中读取出对象信息”的相关知识点。理解并熟练掌握这些内容对于开发人员来说非常重要,能够帮助他们高效地进行数据存取操作。
9、mysql的预处理功能开启 10、JDBC中日期时间类型讨论11、通过JDBC存储和取出音频和视频数据 12、批处理概述 13、事务概述及事务的四大特性 14、mysql中使用事务 15、jdbc中使用事务 16、数据库连接池的介绍和...
当应用程序需要连接时,可以从池中取出一个已存在的连接,用完后再归还回池,而不是直接关闭。这种机制减少了数据库连接的创建和销毁,提高了性能。 配置JNDI数据源通常涉及到两步:在应用服务器的配置文件中定义...
这通常包括图片读取、BASE64编码、数据库操作以及从数据库取出数据后解码还原图片的步骤。 7. **运行环境**:虽然未明确指出,但执行这个Demo可能需要一个支持JDBC连接的数据库(如MySQL、Oracle等),以及Java开发...
数据从数据库取出使用纯jdbc方式读数据,边读边向文件中写; 待所有数据写完,将各个小excel文件进行打包,输出到输出流中。 一小部分说明 见 http://blog.csdn.net/lisen1987/article/details/16857359
一旦从数据库中读取到了二进制数据,接下来的任务就是将这些数据写入到本地文件系统中。这通常涉及到创建一个输出流 (`OutputStream`),并将读取到的数据逐字节地写入到文件中。 **代码示例**: ```java ...
本篇文章将详细讲解如何从Oracle数据库中下载Blob数据并将其转化为图片文件保存到本地。 首先,我们需要了解Blob数据是如何存储在数据库中的。Blob数据类型可以存储最多4GB的数据,并且它不包含任何关于数据内容的...
在IT行业中,数据库不仅仅是用来存储结构化数据,如数字、字符串和日期,有时也需要存储非结构化数据,比如图片、文档和其他二进制大对象(BLOB)。标题“向数据库中放置和取出文件”涉及的就是如何在数据库系统中...