请问如何在JSP页面点击按钮并在本页面调用JAVA程序连接数据库,返回想要的值,并在本页面显示

请问如何在JSP页面点击按钮并在本页面调用JAVA程序连接数据库,返回想要的值,并在本页面显示,第1张

如果你没有使用框架,那就用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图形界面上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10199948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存