Java Swing中实现数据库查询还是很简单的,就如你上面的问题,可以在一个JFrame上添加两个JPanel,一个JPanel添加用于输入查询条件的文本输入框和一个Button,另一个添加用于显示查询的组件。
这样你在输入查询条件之后,点击查询按钮,将要触发一个鼠标点击事件,你可以在处理这个事件的方法之中实现查询功能,然后你在显示查询的组件上显示你查询到的结果。
具体使用什么样的组件你可以查看jdk文档,希望我的回答对你有所帮助!
首先创建一个连接工厂import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlStatement;public class ConnectionFactory {
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
public ConnectionFactory() {
super();
// TODO Auto-generated constructor stub
} public void OpenConn() throws Exception{
try{
ClassforName("commysqljdbcDriver")newInstance();
String url="jdbc:mysql://127001:3306/guestbook";
String user="root";
String password="root";
conn=DriverManagergetConnection(url,user,password);
}catch(Exception e){
Systemoutprintln("创建链接抛出异常为:"+egetMessage());
}
} public ResultSet executeQuery(String sql) throws Exception{
try{
stmt=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);
rs=stmtexecuteQuery(sql);
}catch(Exception e){
Systemoutprintln("执行查询抛出的异常为:"+egetMessage());
}
return rs;
} public void close() throws Exception{
try{
rsclose();
stmtclose();
connclose();
}catch(Exception e){
Systemoutprintln("关闭对象抛出的异常:"+egetMessage());
}
} }
测试类 import javasqlResultSet;public class TestJDBC {
public static void main(String[] args) {
ConnectionFactory c= new ConnectionFactory();
try {
cOpenConn();
String sql="select from tb_guestbook";
ResultSet rs=cexecuteQuery(sql);
while(rsnext()){
Systemoutprintln(rsgetString(2));
}
cclose();
Systemoutprintln();
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
一般正常情况下是有的,但是如果之前程序将某条数据,或者关于某条id的数据删掉之后,之后你又要用到他,就回查询无结果,因为程序要走事务,但是还没提交。这种情况建议先将想要的数据查到,再进行修改或者删除数据,也就是说先select 再delete、update
刚刚漏了帐号密码了,现在补上
try {
//这里的是MYSQL 举例
//加载驱动
ClassforName("commysqljdbcDriver");
//创建数据库连接
Connection con = DriverManagergetConnection("jdbc:mysql://localhost:3306/test","root","root");
//创建查询 “请求”
PreparedStatement ps = conprepareStatement("select from user");
//返回查询结果
ResultSet rs = psexecuteQuery();
//遍历结果
while(rsnext()) {
//假如 User 表中 有个 name 列
Systemoutprintln("name >> "+rsgetString("name"));
}
//关闭
rsclose();
psclose();
conclose();
} catch (Exception e) {
eprintStackTrace();
}
我刚写了一个只有插入的,望采纳
import javasql;
import javautil;
public class TestPre {
public static void main(String[] args) {
int i=0,deptno=0;//i只做while循环使用,deptno是表dept2中的一个属性,类型是int
String dname=null,loc=null;//dname和loc也是表dept2的属性,类型是String
Scanner s=new Scanner(Systemin);
Systemoutprintln("请输入3个参数");
while(i<3){
try{
deptno=snextInt();
i++;
dname=snext();
i++;
loc=snext();
i++;
}catch(InputMismatchException e){
Systemoutprintln("输入的类型不符,退出");
Systemexit(-1);
}
}
Connection conn=null;
PreparedStatement pstmt=null;
try {
ClassforName("commysqljdbcDriver");
conn = DriverManagergetConnection("jdbc:mysql://localhost/mydata"+ "user=root&password=root");
pstmt=connprepareStatement("insert into dept2 values(,,)");
pstmtsetInt(1, deptno);
pstmtsetString(2, dname);
pstmtsetString(3, loc);
pstmtexecuteUpdate();
Systemoutprintln("插入完成");
} catch (ClassNotFoundException e) {
Systemoutprintln("连接数据库不成功,程序退出");
Systemexit(-1);
} catch (SQLException e) {
Systemoutprintln("连接数据库不成功,程序退出");
Systemexit(-1);
}
finally{
try{
if(pstmt!=null){
pstmtclose();
pstmt=null;
}
if(conn!=null){
connclose();
conn=null;
}
}catch(SQLException e){
eprintStackTrace();
}
}
}
}
Statement stm=conncreateStatement();
ResultSet rs=stmexecute("查询语句");
他会返回一个ResultSet 结果集
然后通过rsnext()方法便利结果集中的值
代码示例:
ClassforName("驱动地址");
Connection con=DriverManagergetConnection("数据库地址","用户名","密码");
Statement stm=concreateStatement();
ResultSet rs=stmexecute("查询语句");
while(rsnext()){
String str=rsgetString("对应的列名");
String str1=rsgetString(2);
int i=rsgetInt(3);
}
2个方案吧:
1用数据库的 存储过程 ,相当于数据库的函数,这里面可以加 逻辑判断
这个方法比较少用
2在客户端分2步访问数据库,第一步登录,根据返回的数据,再决定是否 更新数据库,不是在sql语句中逻辑判断 一般都这么用
以上就是关于如何实现在JAVA的图形界面上查询数据库内容全部的内容,包括:如何实现在JAVA的图形界面上查询数据库内容、java链接MYSQL数据库并实现查找数据代码如何写、java 查询数据库数据时有时候会查不到数据,代码不报异常,当你在查询一次的时候又好了 概率性发生等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)