下面是一个从 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);
}
}
}
java 对读取数据库的数据可以显示在网页上,可以对数据进行分类,保存到其它数据库或者是文件里等,当然前提就是要把数据读取出来
以读取数据为例:
解析:
上面代码就是首先注册驱动,然后进行连接
如果连接成功
就可以用select语句进行执行并读取了
1、对应数据库中的表创建实体类(entity),封装a、b、c等字段。
2、使用jdbc查询数据库,一行数据对应一个实体对象,放进一个集合List<entity>中。
获取数据库增量数据的几种方式:
a触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。
b时间戳:它是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。同触发器方式一样,时间戳方式的性能也比较好,数据抽取相对清楚简单,但对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳 *** 作。
c全表比对:典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。
d日志对比:通过分析数据库自身的日志来判断变化的数据。
android读取数据库可以使用sqlite一些api进行读取,实例如下:
/
查找一条数据
@param uid
/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelpergetReadableDatabase(); //创建数据库辅助类
Cursor cursor =dbrawQuery("select from user where uid=", new String[]{uidtoString()}); //创建一个游标
if(cursormoveToFirst()){ //循环遍历查找数组
int uid2=cursorgetInt(cursorgetColumnIndex("uid"));
String uname=cursorgetString(cursorgetColumnIndex("uname"));
String uaddress=cursorgetString(cursorgetColumnIndex("uaddress"));
User user=new User();
usersetUid(uid2);
usersetUname(uname);
usersetUaddress(uaddress);
return user;
}
cursorclose();
return null;
}
<%
//JSP页面直接访问数据库
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
ClassforName("JDBC驱动");
conn = DriverManagergetConnection("url", "username", "password");
stmt = conncreateStatement();
rs = stmtexecuteQuery("select factor, ratio from 表名 where id=1");
while(rsnext()){
String factor = rsgetString("factor");
String ratio = rsgetString("ratio");
%>
factor :<%=factor %>
ratio :<%=ratio %>
<%
}
}catch(Exception e){
eprintStackTrace();
}finally{
try{
if(rs != null) rsclose();
if(stmt != null) stmtclose();
if(conn != null) connclose();
}catch(Exception e1){
e1printStackTrace();
}
}
%>
修改 驱动、url、username、password、表名、字段名成你应用的相应数据,然后将这些代码加入到你的jsp页面,就可以在jsp页面直接读取到数据库中的对应表指定字段的数据了,祝你好运!
用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对象
}
}
以上就是关于Java如何获取数据库中的数据·案例全部的内容,包括:Java如何获取数据库中的数据·案例、java怎么把数据库的数据取出来、java获取数据库数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)