java中怎么获取mysql数据库的数据

java中怎么获取mysql数据库的数据,第1张

用JDBC连接数据,然后用sql语句。要导入mysql的驱动包。

import javasql;

public class TestMySql {

static Connection con = null; // 声明Connection对象

static Statement sql = null;

static ResultSet res = null;

public static void main(String[] args) {

TestMySql c = new TestMySql();

con = cgetConnection();

try {

sql = concreateStatement();

res = sqlexecuteQuery("select from dept");

//sql语句,我数据库里有张dept表

while (resnext()) {//输出结果

Systemoutprint(resgetString(1) + "<——>");

Systemoutprint(resgetString(2) + "<——>");

Systemoutprint(resgetString(3) );

Systemoutprintln();

}

} catch (SQLException e) {

eprintStackTrace();

} finally {

try {

if (res != null) {

resclose();

res =null;

}

if (sql != null) {

sqlclose();

sql =null;

}

if (con != null) {

conclose();

con =null;

}

} catch (SQLException e) {

eprintStackTrace();

}

}

}

public Connection getConnection() {

try {

ClassforName("commysqljdbcDriver");

// 加载oracleJDBC驱动

Systemoutprintln("数据库驱动加载成功");

} catch (ClassNotFoundException e) {

eprintStackTrace();

}

try {// 通过访问数据库的URL获取数据库连接对象

con = DriverManagergetConnection(

"jdbc:mysql://localhost:3306/mydata", "root", "qwer1234");

//mydata为mysql名字

Systemoutprintln("数据库连接成功");

} catch (SQLException e) {

eprintStackTrace();

}

return con; // 按方法要求返回一个Connection对象

}

}

publicDataSetquery(stringsql)

{

DataSetds=newDataSet();//DataSet是表的集合

da=new(sql,conn);//从数据库中查询

daFill(ds);//将数据填充到DataSet

connClose();//关闭连接

returnds;//返回结果

}

这就读出来了

哎呀,你这样子提问题真的不好回答。你学过什么了?会哪些东西?做一个数据库相关的程序,大致过程就是下面这样子:

首先要连接到数据库,比如

Java

就是用

JDBC。

然后打开一个连接,Java

中就是一个

Connection。

创建一个查询,开始查询数据库

遍历查询的结果,这里就是你上面要做的,挨个赋值

最后一定要记住关闭查询和连接,释放资源。

Net,PHP,Python

也是类似的。

不过,在实际开发中,可不是这样了,不仅效率太低而且程序不好维护。

下面是一个从 mysql 数据获取用户数据的案例,可以参考一下:

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

import javautilArrayList;

import javautilList;

// 用户类,存储单个用户信息

class User {

private int id;

private String name;

public User(int id, String name) {

thisid = id;

thisname = name;

}

public int getId() {

return id;

}

public void setId(int id) {

thisid = id;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

@Override

public String toString() {

return "User [id=" + id + ", name=" + name + "]";

}

}

public class Demo1 {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

// 本例使用 mysql 数据库,演示将数据库 test 的 tb_users 表中的用户信息

// 放到 List 中

// 加载数据驱动

ClassforName("commysqljdbcDriver");

// 数据库连接字符串, 此例数据库为 test

String url = "jdbc:mysql://localhost:3306/test";

String user = "root"; // 数据库用户名

String password = ""; // 数据库密码

// 打开一个数据连接

Connection conn = DriverManagergetConnection(url, user, password);

Statement stmt = conncreateStatement();

// 获取表 tb_users 所有用户信息到结果集中

ResultSet rs = stmtexecuteQuery("SELECT id, name FROM tb_users");

// 定义一个存放用户信息的 List

List<User> users = new ArrayList<>();

// 提取用户信息,并将用户信息放入 List

while (rsnext()) {

// 获取用户ID

int id = rsgetInt(1);

// 获取用户名

String name = rsgetString(2);

usersadd(new User(id, name));

}

rsclose();

stmtclose();

connclose();

// 显示用户信息

for (User u : users) {

Systemoutprintln(u);

}

}

}

1、查询数据库(test)中的所有表名的方法:

SELECT name

FROM [test]sysobjects where xtype='U'

补充:

如果有的表不存在时间那就用下面的语句直接把含有时间列的表名找到:

SELECT dname

FROM [test]syscolumns a

inner join [test]sysobjects d on aid=did and dxtype='U' and aname='时间'

2、遍历这个表名取出数据插入到另外的数据库中(SqlServer中的遍历方法我不是很清楚,给你提供个思路,oracle的话我就能把程序写出来了O(∩_∩)O~)。

如:遍历结果存储到数据库test2中

insert into [test2]遍历出的表名 select from 遍历出的表名 where datediff(day,'2009-08-07',时间)>0;

重复上面的sql语句指导讲数据库test中的表名完全遍历完为止。

补充:我试验了一下下面把实验代码给你(建一个存储过程)

create proc test as

--定义游标变量

declare cur1 cursor for

SELECT dname

FROM [test]syscolumns a

inner join [test]sysobjects d on aid=did and dxtype='U' and aname='时间'

--定义临时变量

declare @tmp varchar(1000)

--定义sql字符串

declare @strsql varchar(4000)

--打开游标

open cur1

--读取第一条数据,也就是第一个表名

fetch next from cur1 into @tmp

--是读完

while(@@fetch_status = 0)

begin

--连接sql文

set @strsql='insert into [test2]'+@tmp++' select from '+@tmp+' where datediff(day,'+char(39)+'2009-08-07'+char(39)+',时间)>0'

--执行这个sql

exec(@strsql)

--读取下一条数据

fetch next from cur1 into @tmp

end

--关闭游标

close cur1

--摧毁游标所占资源

deallocate cur1

---

以上,希望对你有所帮助。

mysql是文件存储的,只用将数据库安装目录下的data下的数据库名称文件夹拷贝出来就相当于数据库备份了,然后你在目标机上重新安装mysql数据库,再将该数据库文件拷贝到相应的data目录下即可。

程序有问题呀,你的查询返回了login表中的所有数据,在判断用户名是否存在表中时,只读取了第一条,只要第一条记录的用户名不是你输入的那个用户名,a==username就不会成立。要用一个循环依次读取所有记录来判断才行。

建议在查询时以用户名为条件查询,这样只在查询后检查dr是否返回数据就可以判断用户名存不存在了。

string

username

=

textbox1texttostring();

string

password

=

textbox2texttostring();

string

qq

=

"select

from

login

where

username='"

+

username

+

"'";

sqlconnection

conn

=

new

sqlconnection(connstring);

connopen();

sqlcommand

cmd

=

new

sqlcommand(qq,

conn);

sqldatareader

dr

=

cmdexecutereader();

if

(drhasrows)

//判断dr是否返回了一行或多行数据

{

messageboxshow("用户名已存在,请重新输入!");

}

else

{

。。。。。。

}

以上就是关于java中怎么获取mysql数据库的数据全部的内容,包括:java中怎么获取mysql数据库的数据、怎样从数据库中读出数据(sql数据库怎么读取数据)、请问如何从数据库中读取具体某个数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存