Matlab調用Java類訪問數據庫

1、eclipse建立一個普通的java工程命名爲mdtphp

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();
		}
	}

}

2、把項目mdt導出到一個jar文件:mdt.jarjava

3、把mdt.jar和mysql的jdbc驅動都放入專門的目錄mysql

我把它們放到個人matlab工做目錄下面的java子目錄sql

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

4、啓動matlab把上面兩個jar追加到matlab的classpath數據庫

執行服務器

>> edit classpath.txt
注意:該命令須要用戶對$matlabroot/toolbox/local/classpath.txt有寫的權限,若是普通用戶運行matlab須要執行:sudo chmod a+rw,另外matlab沒法識別環境變量HOME,classpath.txt中須要追加jar文件的全路徑數據結構

5、須要訪問mysql建表腳步:eclipse

-- 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 */;

5、運行數據庫設計

重啓matlab(修改classpath重啓後才能生效)url

>> t = www.zjptcc.wxw.matjdbctest.TestMysql;
>> t.showatable();
000001  數學分析  徐森林  120  
000003  數據庫設計  王斌能  60  
000004  數據庫原理  王珊  120  
000005  數據結構  蘇運霖  120  
000006  分析力學  錢偉長  80  
000007  高等分析  徐治利  80

相關文章
相關標籤/搜索