GVKun编程网logo

从Linux连接访问数据库(从linux连接访问数据库)

13

在本文中,我们将带你了解从Linux连接访问数据库在这篇文章中,我们将为您详细介绍从Linux连接访问数据库的方方面面,并解答从linux连接访问数据库常见的疑惑,同时我们还将给您一些技巧,以帮助您实

在本文中,我们将带你了解从Linux连接访问数据库在这篇文章中,我们将为您详细介绍从Linux连接访问数据库的方方面面,并解答从linux连接访问数据库常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的Android 使用MySQL直接访问数据库、DB2数据库从Linux备份到Win7里还原、Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结、JDBC访问数据库的连接过程

本文目录一览:

从Linux连接访问数据库(从linux连接访问数据库)

从Linux连接访问数据库(从linux连接访问数据库)

我已经创建了我的应用程序并在Windows下对其进行了测试,该Windows可以在Access DB文件中进行读写操作。

但是在现实世界中,它将在linux环境中运行,而我现在遇到了一个大问题,似乎没有用于Linux的驱动程序来访问ms acess
db,这是我现在进行连接的方式:

private static Connection getConnection() {        if (connection == null) {            try {                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + configuration.getAccessDbFile();                connection = DriverManager.getConnection(conStr);            } catch (Exception e) {                e.printStackTrace();            }        }        return connection;    }

有没有人遇到过类似的事情,有人建议我该怎么办?

这是我在linux上得到的例外:

java.lang.NullPointerException        at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)        at java.sql.DriverManager.getConnection(DriverManager.java:582)        at java.sql.DriverManager.getConnection(DriverManager.java:207)

答案1

小编典典

在Linux上运行的应用程序访问MS Access数据库或使用ODBC并不常见。ODBC是Windows技术。linux有一些选项,但这不是常见的情况。

如您所知,Linux计算机上没有Access ODBC驱动程序,因此JDBC-
ODBC桥失败。您也许可以安装合适的ODBC驱动程序,但我不知道有没有免费或开源的驱动程序。Linux的defacto ODBC选项为:

  • http://www.unixodbc.org/

基于UnixODBC的Access的商业驱动程序:

  • http://www.easysoft.com/products/data_access/index.html

可以连接到Access数据库的4型JDBC驱动程序:

  • http://www.hxtt.com/access.html

我没有任何个人经验。4型JDBC驱动程序将是理想的选择,但是我怀疑它是否能像广告中所说的那样完美地工作。

(我确定您有理由,但是如果您打算部署到Linux机器上,我想知道为什么要使用Access数据库。我相信让Java应用程序使用Access数据库的唯一好的理由是,如果它是现有的Access,具有自定义程序的Java应用程序,除了Java应用程序之外,还有其他更好的选择;还应考虑一下,如果您使用Access的主要原因是为了使您可以将Access用作用于表单和报告的用户友好GUI工具,您仍然可以将数据存储在限制较少的数据库(Derby,SQLLite,MySQL,PostgreSQL,MS
SQL
Server等)中,然后通过ODBC从Access连接到数据库。)这将允许您在Linux上部署Java应用程序,您的数据库最有意义的地方,仍然使用Access从Windows连接到数据库。我已经做了很多次。)

Android 使用MySQL直接访问数据库

Android 使用MySQL直接访问数据库

转  https://www.cnblogs.com/jerrywublogs/p/7127641.html

 

在实际项目中,一般很少直接访问MySQL数据库,一般情况下会通过http请求将数据传送到服务端,然后在服务端连接mysql数据库。

在android 中,会通过使用Jdbc 连接MySQL 服务器

复制代码
public class MySqlHelp {
public static boolean InsertSql(String Bc,String lr,String rr,String TestDate)
        {
            com.yy.eye.lib.DB.MySqlSetting mySqlSetting=mDBUtil.queryFirstOrDefault();
            String url_1="jdbc:mysql://127.0.0.1:3306/dbName";
            String UserName_1="abc";
            String pass_1="abc";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            java.sql.Connection cn= DriverManager.getConnection(url_1,UserName_1,pass_1);
            String sql = "INSERT INTO checkresult(bc,lf,ft,td,)Values("+Bc+","+lr+","+rr+","+TestDate")" ;
Statement st=(Statement)cn.createStatement(); result=st.execute(sql); result=true; cn.close(); st.close(); } catch (ClassNotFoundException e) { result=false; // e.printStackTrace(); } catch (SQLException e) { //e.printStackTrace(); result=false; } return result; }
}
复制代码

 需要注意的是使用jdbc需要赋予项目权限

在AndroidManifest.xml 中,添加

<uses-permission android:name="android.permission.INTERNET"/>

在调用Mysql时,需要使用线程

复制代码
new Thread(new Runnable() {
            @Override
            public void run() {
     flag1= MySqlHelp.InsertSql(bc,lR,rR,dt);
                    Message msg = Message.obtain();
                    msg.what = 0;
                    Handler.sendMessage(msg);
            }
        }).start();
复制代码

线程执行后,可以使用handle作信息处理

复制代码
private Handler Handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            if (msg.what == 0 ) {
                Toast.makeText(ViewTest.this, "提交成功", Toast.LENGTH_SHORT).show();
                InitEye();
            }
        }
    };
复制代码

 在build.gradle 的dependencies中添加

compile files(''libs/mysql-connector-java-5.0.8-bin.jar'')

 程序包需要手动下载

其它参考:

Android 连接MySQL数据库并进行增删改查操作

转 https://blog.csdn.net/weixin_37730482/article/details/77984417


1.Android 连接MySQL数据库

public class DBOpenHelper {

private static String driver = "com.mysql.jdbc.Driver";//MySQL 驱动
private static String url = "jdbc:mysql://IP:3306/数据库";//MYSQL数据库连接Url
private static String user = "root";//用户名
private static String password = "root";//密码

/**
* 连接数据库
* */

public static Connection getConn(){
Connection conn = null;
try {
Class.forName(driver);//获取MYSQL驱动
conn = (Connection) DriverManager.getConnection(url, user, password);//获取连接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

/**
* 关闭数据库
* */

public static void closeAll(Connection conn, PreparedStatement ps){
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

}

/**
* 关闭数据库
* */

public static void closeAll(Connection conn, PreparedStatement ps, ResultSet rs){
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}


2.增删改查

public class DBService {

private Connection conn=null; //打开数据库对象
private PreparedStatement ps=null;//操作整合sql语句的对象
private ResultSet rs=null;//查询结果的集合

//DBService 对象
public static DBService dbService=null;

/**
* 构造方法 私有化
* */

private DBService(){

}

/**
* 获取MySQL数据库单例类对象
* */

public static DBService getDbService(){
if(dbService==null){
dbService=new DBService();
}
return dbService;
}


/**
* 获取要发送短信的患者信息 查
* */

public List<User> getUserData(){
//结果存放集合
List<User> list=new ArrayList<User>();
//MySQL 语句
String sql="select * from user";
//获取链接数据库对象
conn= DBOpenHelper.getConn();
try {
if(conn!=null&&(!conn.isClosed())){
ps= (PreparedStatement) conn.prepareStatement(sql);
if(ps!=null){
rs= ps.executeQuery();
if(rs!=null){
while(rs.next()){
User u=new User();
u.setId(rs.getString("id"));
u.setName(rs.getString("name"));
u.setPhone(rs.getString("phone"));
u.setContent(rs.getString("content"));
u.setState(rs.getString("state"));
list.add(u);
}
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
DBOpenHelper.closeAll(conn,ps,rs);//关闭相关操作
return list;
}

/**
* 修改数据库中某个对象的状态 改
* */

public int updateUserData(String phone){
int result=-1;
if(!StringUtils.isEmpty(phone)){
//获取链接数据库对象
conn= DBOpenHelper.getConn();
//MySQL 语句
String sql="update user set state=? where phone=?";
try {
boolean closed=conn.isClosed();
if(conn!=null&&(!closed)){
ps= (PreparedStatement) conn.prepareStatement(sql);
ps.setString(1,"1");//第一个参数state 一定要和上面SQL语句字段顺序一致
ps.setString(2,phone);//第二个参数 phone 一定要和上面SQL语句字段顺序一致
result=ps.executeUpdate();//返回1 执行成功
}
} catch (SQLException e) {
e.printStackTrace();
}
}
DBOpenHelper.closeAll(conn,ps);//关闭相关操作
return result;
}

/**
* 批量向数据库插入数据 增
* */

public int insertUserData(List<User> list){
int result=-1;
if((list!=null)&&(list.size()>0)){
//获取链接数据库对象
conn= DBOpenHelper.getConn();
//MySQL 语句
String sql="INSERT INTO user (name,phone,content,state) VALUES (?,?,?,?)";
try {
boolean closed=conn.isClosed();
if((conn!=null)&&(!closed)){
for(User user:list){
ps= (PreparedStatement) conn.prepareStatement(sql);
String name=user.getName();
String phone=user.getPhone();
String content=user.getContent();
String state=user.getState();
ps.setString(1,name);//第一个参数 name 规则同上
ps.setString(2,phone);//第二个参数 phone 规则同上
ps.setString(3,content);//第三个参数 content 规则同上
ps.setString(4,state);//第四个参数 state 规则同上
result=ps.executeUpdate();//返回1 执行成功
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
DBOpenHelper.closeAll(conn,ps);//关闭相关操作
return result;
}


/**
* 删除数据 删
* */

public int delUserData(String phone){
int result=-1;
if((!StringUtils.isEmpty(phone))&&(PhoneNumberUtils.isMobileNumber(phone))){
//获取链接数据库对象
conn= DBOpenHelper.getConn();
//MySQL 语句
String sql="delete from user where phone=?";
try {
boolean closed=conn.isClosed();
if((conn!=null)&&(!closed)){
ps= (PreparedStatement) conn.prepareStatement(sql);
ps.setString(1, phone);
result=ps.executeUpdate();//返回1 执行成功
}
} catch (SQLException e) {
e.printStackTrace();
}
}
DBOpenHelper.closeAll(conn,ps);//关闭相关操作
return result;
}

}
---------------------

小白通过JDBC在AndroidStudio一步步来访问MYSQL数据库

 

 

Android Studio使用JDBC远程连接mysql的注意事项(附示例)

 

 

DB2数据库从Linux备份到Win7里还原

DB2数据库从Linux备份到Win7里还原

概述: 用 db2look + db2move 进行数据库迁移


涉及的两个操作系统: Redhat6.5 win7

[db2inst@localhost ~]$ uname -a Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux [db2inst@localhost ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago)


涉及的数据库版本: Linux下为 express-c 10.5 Win7 下为 express-c 11.1

[db2inst@localhost ~]$ db2 (c) Copyright IBM Corporation 1993,2007 Command Line Processor for DB2 Client 10.5.5

(c) Copyright IBM Corporation 1993,2007 DB2 客户机 11.1.3.3 的命令行处理器


Redhat6.5是一个专用的数据库机器。


参考文章:

Linux下导出db2数据库还原到windows下 如何将在Linux下导出的db2数据库还原到windows下

Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结

Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结

总结

以上是小编为你收集整理的Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

JDBC访问数据库的连接过程

JDBC访问数据库的连接过程

        Java数据库连接(Java DataBase Connectivity, JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句、访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含可JDBC操作数据库的所有类。通过JDBC访问数据库有如下几个步骤:

  1. 加载JDBC驱动器。将数据库的JDBC驱动加载到classpath中,在基于JavaEE的Web应用开发过程中,通常要把目标数据库产品的JDBC驱动复制到WEB—INF/lib目录下;

  2. 加载JDBC驱动,并将其 注册到DriverManager中。一般使用反射Class.forName(String driveName);

  3. 建立数据库连接,取得Connection对象。一般通过DriverManager.getConnection(url,username,passwd)方法实现;其中,url表示连接数据库的字符串,username表示连接数据库的用户名,passwd表示连接数据库的密码;

  4. 建立statement对象或是PreparedStatement对象;

  5. 执行SQL语句

  6. 访问结果集ResultSet对象

  7. 依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放掉所占用资源,例如:rs.close(),con.close()等。为什么要这么做呢,原因在于JDBC驱动底层通常是通过网络IO实现SQL命令与数据传输的。

我们今天的关于从Linux连接访问数据库从linux连接访问数据库的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android 使用MySQL直接访问数据库、DB2数据库从Linux备份到Win7里还原、Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结、JDBC访问数据库的连接过程的相关信息,请在本站查询。

本文标签: