① java如何读取access数据库
虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试
先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1",内有字段"Name"和"Age"
随便填几条记录,保存后到ODBC里建一个系统数据源"Access2000"连上此数据库
然后就可以用下面的代码显示数据库里的所有记录了
database.java
------------------
import java.sql.*;
class database {
public static void main(String args[]) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:Access2000";
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM table1";
ResultSet rs = statement.executeQuery(sql);
String tt;
while (rs.next()) {
System.out.print("姓名:" + rs.getString("Name"));
System.out.println(" 年龄:" + rs.getString("Age"));
}
rs.close();
connection.close();
}
catch(Exception ex){
System.out.println(ex);
System.exit(0);
}
}
}
------------
OK,编译运行:
E:/java>javac database.java
E:/java>java database
② java如何访问数据库
Java可以使用JDBC访问数据库,也可以使用各类ORM框架访问数据库,但这些框架最终还是通过JDBC访问数据库,它们只是封装了数据库操作,而使得开发者可以减少这部分消耗。因此,本文只讲解JDBC访问方式。
JDBC访问一般分为如下流程:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url,String username,String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
•ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
•使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1); // 此方法比较高效(列是从左到右编号的,并且从列1开始)
}
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
③ java线程读取数据库
//将数据库中的数据条数分段
public void division(){
//获取要导入的总的数据条数
String sql3="SELECT count(*) FROM [CMD].[dbo].[my1]";
try {
pss=cons.prepareStatement(sql3);
rss=pss.executeQuery();
while(rss.next()){
System.out.println("总记录条数:"+rss.getInt(1));
sum=rss.getInt(1);
}
//每30000条记录作为一个分割点
if(sum>=30000){
n=sum/30000;
resie=sum%30000;
}else{
④ 如何在java 中读取数据库的数据
读取数据库最基础的可以使用JDBC连接数据库读取数据
jdbc方式连接数据库查询数据:http://www.cnblogs.com/GarfieldEr007/p/5746137.html
当然也有其他的方式 比如Hibernate\mybatis\ibatis\jpa等等 架构都可以 这你可以后面去查询资料学习
你可以先看JDBC吧
⑤ 怎么在java中读取mysql数据库
要看你是用框架还是传统的JDBC连接了,如果是传统的JDBC连接的话方法如下:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载数据库驱动,不同数据库加载的驱动不一样,这个例子是sqlserver数据库
Stringurl="jdbc:sqlserver://127.0.0.1:1433;databaseName=testDB";//IP:端口;databaseName:数据库名
Stringsql="selectnamefromt_user";//sql查询语句
Connectioncon=DriverManager.getConnection(url,username,password);//url:
数据库连接串userName:数据库登录账号passWord:数据库登录密码
Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSetrs=stmt.executeQuery(sql);
//用户对象集合
List<User>userList=newArrayList<User>();
while(rs.next()){
Useruser=newUser();
user.setName=rs.getString("name");
userList.add(user);
}
⑥ java获取数据库数据
1、对应数据库中的表创建实体类(entity),封装a、b、c等字段。
2、使用jdbc查询数据库,一行数据对应一个实体对象,放进一个集合List<entity>中。
⑦ java如何访问数据库
JAVA连接数据库的方式有多种:
根据所需要的不同数据库驱动分,分为四种:
1:1类驱动。这就是JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。
2:2类驱动。这就是JDBC+厂商API的形式。厂商API一般使用C编写,所以,这种方式也不长使用。
3:3类驱动。这就是JDBC+厂商Database
Connection
Server+DataBase的形式。
这种方法就是在JAVA
与
DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。
4:4类驱动。这就是纯JDBC+DATABASE的连接方式。也是推荐的连接方式。这使得APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:
硬编码方式,就是在程序中硬性编入数据库连接的所须参数。
JNDI
DataSource方式。就是在程序运行的外布环境中又称(Context)设置一个datasource数据源,有一个jndi
名称,程序只须查找此名称就可得到一个数据库连接的对象。
⑧ Java读取数据库的步骤。
代码送上,已经封装好,调用就可
import java.util.List;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
public class BaseDao {
/**
* 连接对象
*/
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private CachedRowSet crs;
public Connection getConnection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
try {
String url = "jdbc:sqlserver://localhost:1104;DatabaseName=nongchang";
conn = DriverManager.getConnection(url, "sa", "8384285");
} catch (SQLException sqle) {
sqle.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
private final void closePstmt() {
try {
if (pstmt != null)
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭Connection对象
*/
private final void closeCon() {
try {
if (conn != null) {
closePstmt();
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭Connection对象,带Rs
*
* @param ResultSet
*/
private final void closeResultSet(ResultSet rs) {
try {
rs.close();
closeCon();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 执行增删改操作
*
* @param sql
* 增删改sql语句
* @param values
* 参数对象数组
* @return int 影响行数
*/
public int executeUpdate(String sql, Object... values) {
if (values == null || values.length == 0) {
return update(sql);
} else {
return update(sql, values);
}
}
private int update(String sql) {
int i = 0;
try {
pstmt = getConnection().prepareStatement(sql);
i = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeCon();
}
return i;
}
private int update(String sql, Object... values) {
int k = 0;
try {
pstmt = getConnection().prepareStatement(sql);
for (int i = 0; i < values.length; i++)
pstmt.setObject(i + 1, values[i]);
k = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeCon();
}
return k;
}
/**
* 执行查询操作
*
* @param sql
* 查询sql语句
* @param values
* 参数对象数组
* @return CachedRowSet 结果集缓存
*/
public CachedRowSet executeQuery(String sql, Object... values) {
if (values == null || values.length == 0) {
return query(sql);
} else {
return query(sql, values);
}
}
private CachedRowSet query(String sql) {
try {
crs = new CachedRowSetImpl();
pstmt = getConnection().prepareStatement(sql);
rs = pstmt.executeQuery();
crs.populate(rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeResultSet(rs);
}
return crs;
}
private CachedRowSet query(String sql, Object... values) {
try {
crs = new CachedRowSetImpl();
pstmt = getConnection().prepareStatement(sql);
for (int i = 0; i < values.length; i++)
pstmt.setObject(i + 1, values[i]);
rs = pstmt.executeQuery();
crs.populate(rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeResultSet(rs);
}
return crs;
}
}
⑨ Java如何获取数据库中的数据·案例
下面是一个从 mysql 数据获取用户数据的案例,可以参考一下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
//用户类,存储单个用户信息
classUser{
privateintid;
privateStringname;
publicUser(intid,Stringname){
this.id=id;
this.name=name;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
@Override
publicStringtoString(){
return"User[id="+id+",name="+name+"]";
}
}
publicclassDemo1{
publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{
//本例使用mysql数据库,演示将数据库test的tb_users表中的用户信息
//放到List中
//加载数据驱动
Class.forName("com.mysql.jdbc.Driver");
//数据库连接字符串,此例数据库为test
Stringurl="jdbc:mysql://localhost:3306/test";
Stringuser="root"; //数据库用户名
Stringpassword=""; //数据库密码
//打开一个数据连接
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement();
//获取表tb_users所有用户信息到结果集中
ResultSetrs=stmt.executeQuery("SELECTid,nameFROMtb_users");
//定义一个存放用户信息的List
List<User>users=newArrayList<>();
//提取用户信息,并将用户信息放入List
while(rs.next()){
//获取用户ID
intid=rs.getInt(1);
//获取用户名
Stringname=rs.getString(2);
users.add(newUser(id,name));
}
rs.close();
stmt.close();
conn.close();
//显示用户信息
for(Useru:users){
System.out.println(u);
}
}
}