Matlab调用Java类访问数据库

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、eclipse创建一个普通的java工程命名为mdt

Matlab调用Java类访问数据库_第1张图片

package www.zjptcc.wxw.matjdbctest;

import java.sql.*;

public class TestMysql {
	static String url = "jdbc:mysql://localhost:3306/mymotif?useSSL=false&user=mymotif&password=wxwpxh";


	public void showatable(){
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(url);
			Statement st = conn.createStatement();
			ResultSet rs = st.executeQuery("SELECT * FROM COURSE");
			int colcount=st.getResultSet().getMetaData().getColumnCount();
			while (rs.next()) {
				for(int col=1;col<=colcount;col++){
					System.out.print(rs.getString(col));
					System.out.print("  ");
				}
				System.out.println();
			}
			rs.close();
			st.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

二、把项目mdt导出到一个jar文件:mdt.jar

三、把mdt.jar和mysql的jdbc驱动都放入专门的目录

我把它们放到我的matlab工作目录下面的java子目录

mkdir ${HOME}/matlab_workplace/java
cp mdt.jar  ${HOME}/matlab_workplace/java
cp mysql-connector-java-5.1.44-bin.jar ${HOME}/matlab_workplace/java
$ ls ${HOME}/matlab_workplace/java
mdt.jar  mysql-connector-java-5.1.44-bin.jar

四、启动matlab把上面两个jar追加到matlab的classpath

执行

>> edit classpath.txt
注意:该命令需要用户对$matlabroot/toolbox/local/classpath.txt有写的权限,如果普通用户运行matlab需要执行:sudo chmod a+rw,另外matlab无法识别环境变量HOME,classpath.txt中需要追加jar文件的全路径

五、需要访问mysql建表脚步:

-- phpMyAdmin SQL Dump
-- version 4.1.2
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2018-06-13 23:07:24
-- 服务器版本: 5.7.22
-- PHP Version: 5.6.36

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `mymotif`
--

-- --------------------------------------------------------

--
-- 表的结构 `COURSE`
--

CREATE TABLE IF NOT EXISTS `COURSE` (
  `CNO` char(6) NOT NULL,
  `CNAME` char(12) NOT NULL,
  `TEACHER` char(8) NOT NULL,
  `TIME` smallint(6) NOT NULL,
  PRIMARY KEY (`CNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- 转存表中的数据 `COURSE`
--

INSERT INTO `COURSE` (`CNO`, `CNAME`, `TEACHER`, `TIME`) VALUES
('000001', '数学分析', '徐森林', 120),
('000003', '数据库设计', '王斌能', 60),
('000004', '数据库原理', '王珊', 120),
('000005', '数据结构', '苏运霖', 120),
('000006', '分析力学', '钱伟长', 80),
('000007', '高等分析', '徐治利', 80);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

五、运行

重启matlab(修改classpath重启后才能生效)

>> t = www.zjptcc.wxw.matjdbctest.TestMysql;
>> t.showatable();
000001  数学分析  徐森林  120  
000003  数据库设计  王斌能  60  
000004  数据库原理  王珊  120  
000005  数据结构  苏运霖  120  
000006  分析力学  钱伟长  80  
000007  高等分析  徐治利  80 

Matlab调用Java类访问数据库_第2张图片

转载于:https://my.oschina.net/u/2245781/blog/1829924

你可能感兴趣的:(Matlab调用Java类访问数据库)