请大家帮我写一段JAVA代码,一定要详细!谢谢!
首先,请大家写的代码一定要详细,我是JAVA新手。写的时候尽量保证标准,而且要把头部的import要加哪些东西注明。首先定义一个不固定长度的数字Stringsql="se...
首先,请大家写的代码一定要详细,我是JAVA新手。写的时候尽量保证标准,而且要把头部的import要加哪些东西注明。
首先定义一个不固定长度的数字
String sql="select * from a"
a表中有个字段b
将所有的b,按读出来的顺序放到数组中,数组叫c[].
然后想个办法吧c[],传到的d.jsp中。
不知道我写明白了没有,谢谢大家!一定要详细,谢谢! 展开
首先定义一个不固定长度的数字
String sql="select * from a"
a表中有个字段b
将所有的b,按读出来的顺序放到数组中,数组叫c[].
然后想个办法吧c[],传到的d.jsp中。
不知道我写明白了没有,谢谢大家!一定要详细,谢谢! 展开
3个回答
展开全部
首先说明一下,从数据库中读取的数据,是不应当放在数组当中的。因为,从数据库中查询的数据记录的数量是不确定的,而数组引用一旦开辟内存空间后,就不能随便更改大小。如果强制使用1楼的做法,采用两次读取数据库数据的方式,势必会影响性能。
从数据库中读取记录时,应当使用集合对象List或者Set都可以,这样可以保证读取到一条数据,就可以想集合中添加一条,不用去考虑数组大小的问题了。因为集合是可以动态增加容量,并添加新成员的。
下面是我现写的一个数据库访问类:
package com.test.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class DBConnection {
// 加载的驱动类的类名
private static final String DRIVER_CLASS = "";// 这里一般是驱动程序的类名
// 连接数据库的URL地址
private static final String URL = "jdbc:sqlserver://主机名称:主机端口号;databasename=数据库名称";// 如果是sqlserver2005
// 连接数据库用户名
private static final String USER = "用户名";
// 连接密码
private static final String PWD = "密码";
// 加载驱动程序
static {
try {
Class.forName(DRIVER_CLASS);
} catch (ClassNotFoundException e) {
// 静态块中不能抛出checked异常,所以应当转换成运行时异常抛出
throw new RuntimeException(e);
}
}
/**
* 获取与数据库的连接
*
* @return 连接对象
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PWD);
}
/**
* 获取数据
*
* @return 当数据库中存在数据时返回这组数据的集合对象,否则返回null
* @throws SQLException
*/
public List getDatas() throws SQLException {
// 生命返回对象
List list = null;
// 声明数据库的连接对象和操作对象
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
//这里这样写的好处是,如果数据库中表a的字段有增加,这条sql语句还可以照样执行,可是如果使用*号则可能出现异常
String sql = "select [b] from [a]";
// 创建预编译查询对象
ps = conn.prepareStatement(sql);
// 执行查询语句,返回结果集
rs = ps.executeQuery();
// 这里是我自己总结的一种填充集合数据的方法。当学到Hibernate框架后就不需要了
if (rs.next()) {
list = new ArrayList();
do {
list.add(rs.getString(1));
} while (rs.next());
}
ps.close();
rs.close();
conn.close();
return list;
}
}
如果要在页面上显示,可以使用scriplet或者表达式语言都可以,我想这些你应该都会了吧。但是正规的写法应当是使用EL表达式语言和jstl来显示。简单的页面代码如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.util.List"%>
<%@ page import="com.test.DBConnection"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="item" items="<%=DBConnection.getDatas() %>">
<p>${item}</p>
</c:forEach>
</body>
</html>
如果你还有需要了解的,到我QQ空间给我留言吧。596419191
从数据库中读取记录时,应当使用集合对象List或者Set都可以,这样可以保证读取到一条数据,就可以想集合中添加一条,不用去考虑数组大小的问题了。因为集合是可以动态增加容量,并添加新成员的。
下面是我现写的一个数据库访问类:
package com.test.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class DBConnection {
// 加载的驱动类的类名
private static final String DRIVER_CLASS = "";// 这里一般是驱动程序的类名
// 连接数据库的URL地址
private static final String URL = "jdbc:sqlserver://主机名称:主机端口号;databasename=数据库名称";// 如果是sqlserver2005
// 连接数据库用户名
private static final String USER = "用户名";
// 连接密码
private static final String PWD = "密码";
// 加载驱动程序
static {
try {
Class.forName(DRIVER_CLASS);
} catch (ClassNotFoundException e) {
// 静态块中不能抛出checked异常,所以应当转换成运行时异常抛出
throw new RuntimeException(e);
}
}
/**
* 获取与数据库的连接
*
* @return 连接对象
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PWD);
}
/**
* 获取数据
*
* @return 当数据库中存在数据时返回这组数据的集合对象,否则返回null
* @throws SQLException
*/
public List getDatas() throws SQLException {
// 生命返回对象
List list = null;
// 声明数据库的连接对象和操作对象
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
//这里这样写的好处是,如果数据库中表a的字段有增加,这条sql语句还可以照样执行,可是如果使用*号则可能出现异常
String sql = "select [b] from [a]";
// 创建预编译查询对象
ps = conn.prepareStatement(sql);
// 执行查询语句,返回结果集
rs = ps.executeQuery();
// 这里是我自己总结的一种填充集合数据的方法。当学到Hibernate框架后就不需要了
if (rs.next()) {
list = new ArrayList();
do {
list.add(rs.getString(1));
} while (rs.next());
}
ps.close();
rs.close();
conn.close();
return list;
}
}
如果要在页面上显示,可以使用scriplet或者表达式语言都可以,我想这些你应该都会了吧。但是正规的写法应当是使用EL表达式语言和jstl来显示。简单的页面代码如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.util.List"%>
<%@ page import="com.test.DBConnection"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="item" items="<%=DBConnection.getDatas() %>">
<p>${item}</p>
</c:forEach>
</body>
</html>
如果你还有需要了解的,到我QQ空间给我留言吧。596419191
展开全部
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class t {
public static int[] getArray() {
String url = "";
String username = "";
String password = "";
String sql = "select b from a";
String sql2 = "select count(*) from a";
int count = 0;
int i = 0;
int[] array = new int[count];
try {
Class.forName("");
Connection conn = DriverManager.getConnection(url, username, password);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSet rs2 = st.executeQuery(sql2);
while(rs2.next()) {
++count;
}
while(rs.next()) {
array[i] = rs.getInt("b"); //假设你的b字段是整型;
i ++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array;
}
}
//jsp 里调用
引入此包中的类,
然后
<%
int[] array = t.getArray();
for(int i = 0; i<array.length; i++) {
%>
<%= %>
<%
}
%>
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class t {
public static int[] getArray() {
String url = "";
String username = "";
String password = "";
String sql = "select b from a";
String sql2 = "select count(*) from a";
int count = 0;
int i = 0;
int[] array = new int[count];
try {
Class.forName("");
Connection conn = DriverManager.getConnection(url, username, password);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSet rs2 = st.executeQuery(sql2);
while(rs2.next()) {
++count;
}
while(rs.next()) {
array[i] = rs.getInt("b"); //假设你的b字段是整型;
i ++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array;
}
}
//jsp 里调用
引入此包中的类,
然后
<%
int[] array = t.getArray();
for(int i = 0; i<array.length; i++) {
%>
<%= %>
<%
}
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询