如果你没有使用框架,那就用html语言和<%%> scriptlet来处理。
类似这样子
<%
List list= 数据List;//你的数据
%>
<table border="1">
<tr>
<td>ID</td>
<td>名字</td>
<td>年龄</td>
</tr>
<%
for(int i=0;i<listsize();i++){
%>
<tr>
<td><%=(Data)listget(i)id%></td>
<td><%=(Data)listget(i)name%></td>
<td><%=(Data)listget(i)age%></td>
</tr>
<%
}
%>
</table>
-----------------------------------------------------
你参考下我今天上课了的读数据库写法就行了,记得引包。
-----------------------------------------------------
请参考下面的资料,struts标签用法参考,查看optgroup章节
要不用开源框架,要不自己写个简单的框架,我就写了个简单的
/返回list,list里面装map数据
@param sql
@return
/
public List<Map<String,String>> find_list_map(String sql) {
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String, String> map = null;
try {
if(conn==null){
try {
getConn();
} catch (Exception e) {
eprintStackTrace();
}
}
statement = conncreateStatement();
rs = statementexecuteQuery(sql);
int columnCount = max_count(rs);
ResultSetMetaData metaData = rsgetMetaData();
while(rsnext()){
map = new HashMap<String, String>();
for(int i=1;i<=columnCount;i++){
mapput(metaDatagetColumnName(i), rsgetString(i));
}
listadd(map);
}
} catch (SQLException e) {
eprintStackTrace();
}finally{
}
return list;
}
List<Map<String,String>> 这个返回,根据自己的需要把,我创建了一个简单的表,就2个字段,是String类型的,所以就封装String了
/////////////////////如果你很想用实体类的话,可以研究一下这个,我自己写的,还不完整,String和int的可以封装,自己在do_set方法里面添加就可以了public <T> List<T> find_entity(Class<T> t,String sql){
List<T> list = new ArrayList<T>();
Object obj = null;
//将实体类set方法名和类型存起来
Field[] field = tgetDeclaredFields();
for (int i = 0; i < fieldlength; i++) {
// 权限修饰符
// 属性类型
Class<> type = field[i]getType();
name_nameType_mapput(field[i]getName(), typegetName());
}
try {
if(conn==null){
try {
getConn();
} catch (Exception e) {
eprintStackTrace();
}
}
statement = conncreateStatement();
rs = statementexecuteQuery(sql);
int columnCount = max_count(rs);
ResultSetMetaData metaData = rsgetMetaData();
String columnName = "";
String setName = "";
// Class<> type = null;
while(rsnext()){
obj = tnewInstance();
for(int i = 1;i<=columnCount;i++){
//得到数据库字段名
columnName = metaDatagetColumnName(i);
//拼接set方法字符串
setName = "set" + columnNamesubstring(0, 1)toUpperCase()+columnNamesubstring(1, columnNamelength());
// type = field[i-1]getType();
//将数据库的字段值封装到对象里
do_set(obj,setName,columnName,rsgetString(i));
}
listadd((T)obj);
}
} catch (Exception e) {
eprintStackTrace();
}finally{
}
return list;
}
/
封装,暂时只做了int和String类型的处理,其他的需要再写上
@param obj
@param setName
@param type
@param v
/
private void do_set(Object obj, String setName,String columnName,
String v) {
Method method;
String tp = name_nameType_mapget(columnName);
try {
if("int"equals(tp)){
method = objgetClass()getMethod(setName,intclass);
methodinvoke(obj,IntegervalueOf(v));
}else if("javalangString"equals(tp)){
method = objgetClass()getMethod(setName,Stringclass);
methodinvoke(obj,v);
}
} catch (Exception e) {
eprintStackTrace();
}
}
这里有一个例子 你自己去看看
import javasql;
import javaawt;
import javaxswing;
import javaxswingtable;
//import javaawtevent;
public class DisplayDemo extends JFrame
//implements ActionListener
{
// private String dbURL="jdbc:microsoft:sqlserver://20211526181:1433"; // 数据库标识名
private String user="devon"; // 数据库用户
private String password="book"; // 数据库用户密码
private JTable table;
private JButton ok,canel;
public DisplayDemo(){
super("显示数据库查询结果"); //调用父类构造函数
String[] columnNames={"用户名","年龄","性别","Email"}; //列名
Object[][] rowData=new Object[5][4]; //表格数据
ok=new JButton("确定");
canel=new JButton("取消");
// okaddActionListener(this);
// caneladdActionListener(this);
try {
ClassforName("sunjdbcodbcJdbcOdbcDriver");
Connection con=DriverManagergetConnection("jdbc:odbc:example","sa","");
// ClassforName("commicrosoftjdbcsqlserverSQLServerDriver"); //加载驱动器
// Connection con=DriverManagergetConnection(dbURL,user,password); //获取连接
String sqlStr="select from users"; //查询语句
PreparedStatement ps=conprepareStatement(sqlStr); //获取PreparedStatement对象
ResultSet rs=psexecuteQuery(); //执行查询
String name,sex,email; //查询结果
int age;
int count=0;
while (rsnext()){ //遍历查询结果
rowData[count][0]=rsgetString("name"); //初始化数组内容
rowData[count][1]=IntegertoString(rsgetInt("age"));
rowData[count][2]=rsgetString("sex");
rowData[count][3]=rsgetString("email");
count++;
}
conclose(); //关闭连接
}
catch(Exception ex){
exprintStackTrace(); //输出出错信息
}
Container container=getContentPane(); //获取窗口容器
//containersetLayout(null);
containeradd(ok);containeradd(canel); oksetBounds(10,120,70,20);
canelsetBounds(100,120,70,20);
table=new JTable(rowData,columnNames); //实例化表格
tablegetColumn("年龄")setMaxWidth(25); //设置行宽
containeradd(new JScrollPane(table),BorderLayoutCENTER); //增加组件
setSize(300,200); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE); //关闭窗口时退出程序
}
public static void main(String[] args){
new DisplayDemo();
}
}
以上就是关于请问如何在JSP页面点击按钮并在本页面调用JAVA程序连接数据库,返回想要的值,并在本页面显示全部的内容,包括:请问如何在JSP页面点击按钮并在本页面调用JAVA程序连接数据库,返回想要的值,并在本页面显示、关于java数据表搜索 列值的返回问题、如何将java从数据库读取的数据转到java图形界面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)