Presentation on theme: "JDBC Java Database Connectivity. What is an RDBMS? Relational database management system. There are other kinds of DBMS. Access is a GUI on a JET RBDMS."— Presentation transcript:
What is an RDBMS? Relational database management system. There are other kinds of DBMS. Access is a GUI on a JET RBDMS backend. Language for RBMS - > SQL
SQL Structured Query Language There are many standards for SQL SQL92, SQL 89, SQL99, Some commands exists for all the standards. Some commands exists only for specific products
Why do I need JDBC? Connects to a RDBMS RDBMS Neutral Standard API (portable) Allows for transmission of SQL Can help to process results.
Using JDBC and Tiers Java program calls JDBC methods These methods transmit SQL statements The RDBMS responds, via the JDBC methods This is a 2 Tier system.
SQL Is NOT OOP language (yet) able to store instances of classes able to store blobs (unformatted sequences of bytes)
RBMS is good for storing data searching data non-programmer updates of data.
JDBC+RDBMS=2 tier computing Client + server = 2 tier computing. JDBC does connections, query and result processing from the RDBMS. JDBC uses SQL.
Process 1.Connect to DBMS 2.Instance SQL Statement 3.Execute SQL statement 4.Process SQL results 5.close connection to DBMS
3 tier system - distributed computing client web server rdbms cgi html browser w/o java jdbc jdbc results
4 tier system - distributed computing client web server rdbms cgi html browser w/o java jdbc jdbc results b-logic
Jdbc driver ideas JDBC needs to work with many DBMS Oracle mySql JET DB2 SQLServer, etc....
Mapping to a DSN... JDBC with ODBC driver is called JDBC/ODBC (microsoft method). connect using a protocol and subprotocol
How do I formulate a connect URL? String url =“jdbc:dbnet://show.docjava.com:356/addre sses” jdbc – primary protocol dbnet – sub protocol show.docjava.com – FQDN 356 – standard port for RDBMS services
The format of the url string is vendor specific String url = “jdbc:dbnet://localhost:356/Books”; where dbnet is an example of a subprotocol, and //localhost:356/Books is an example of a subname. The DriverManager class can also take an optional user name and password. For example: Connection c = DriverManager.getConnection(url, “userid”, “password”);
Setting up a RDBMS How to set up your RDBMS How to get drivers for JDBC How to load the drivers How to set up a select few IDEs for programming
data source name (DSN) The DSN can be set using one of several techniques. Under Windows, double-click the ODBC Data Sources (32bit) control panel.
Using Appendix H ODBC Data Source Administrator is shown upon opening the ODBC Data Sources control panel. Select the MS Access Database driver and click Add...
Setting up mysql >mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 3.23.22-beta-log Type 'help' for help. mysql> use test Database changed
Make a table mysql> create table User ( UserId varchar(10), Password varchar(10)); Query OK, 0 rows affected (0.06 sec) To create a more more complex table (for example a phone book) use: mysql> create table phonelist (firstname varchar(20),lastname varchar(20), address1 varchar(255), address2 varchar(255), phone1 varchar(50), phone2 varchar(50), phone3 varchar(50)); Query OK, 0 rows affected (0.04 sec) mysql> show tables;
grant access to the user mysql> show grants ; grant create on *.* to guest; Query OK, 0 rows affected (0.08 sec) mysql> use test; Database changed mysql> create table flatfile (message char(255)); Query OK, 0 rows affected (0.02 sec)
Loading a table Use the load command to import data from a text file. For example: mysql> LOAD DATA LOCAL INFILE “c:\lyon\j4p\src\addbk\JAddressBook\foo.cs v" INTO TABLE phonelist FIELDS TERMINATED BY '\t' (name, kind, createdDate, modifiedDate);
class DataBaseMetaData is obtained automatically by the SqlBean Class.forName(driver); c = DriverManager.getConnection(url,userId,password); dbmd = c.getMetaData(); catalogName = c.getCatalog(); isReadOnly = c.isReadOnly(); usesLocalFiles = dbmd.usesLocalFiles(); driverName = dbmd.getDriverName();
For Next Week Make the addressbook program index work so that selecting a letter will display the index so that it starts from that letter. Use the first letter that appears in the name field. If you select ‘I’ but there are no records that start with ‘I’ go to the record preceding where I should be.. For ‘a’ go to the beginning.
Implements the CSV features Using your jtable, import from text files via a delimiter panel. Using the delimiter panel, export your text files.