* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download database server
Relational algebra wikipedia , lookup
Encyclopedia of World Problems and Human Potential wikipedia , lookup
Commitment ordering wikipedia , lookup
Global serializability wikipedia , lookup
Serializability wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Microsoft Access wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
Oracle Database wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Ingres (database) wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Versant Object Database wikipedia , lookup
Relational model wikipedia , lookup
Clusterpoint wikipedia , lookup
CSCI 6962: Server-side Design and Programming Server-side Databases and Drivers Outline • • • • Database servers and drivers Databases and the MVC paradigm SQL overview The Derby database server – Creating databases – Populating a database • MySQL Databases and E-Commerce • Long term information stored in databases – Queries used to produce lists of products – Updates used to store orders • New record created for order in Order table • Customer information added to other tables • Quantities updated in inventory tables Database Servers • Access to database controlled by database server – Constantly running (like web container) – Server runs database queries and updates for databases it controls – Server handles security of database • Most are password-controlled – – – – MySQL (free) Oracle MS Server Not Access! Web server Database Access Object Database server database Database Servers • Programs create statement objects inside server • Server executes them on the database • Server stores results if query performed • Program may then access those results Database server Web server Database Access Object Statement object select * from books ResultSet object productCode title price productCode title price productCode title price database Database Drivers • Database server does not understand Java/C# commands • Only understands its own DBMS protocols – Each server has its own DBMS • Need a database driver to perform translation – Obtain from database server provider – Install in Java libraries web container JSF page Managed JDBC bean/ support class database server database driver DBMS Databases and the MVC Paradigm • Usually do not directly access database from JSF/ASP pages – Requires both web programming and SQL knowledge • Usually done in model classes (such as managed bean) – Bean stores to database when commanded to – Bean performs database query when need to retrieve data • Often have built-in tools for database management – SqlDataSource object in ASP web container JSF pages/ Managed bean ASP pages/ Code behind database server Support classes/ tools SQL and Databases Commands to database server use SQL (structured query language) Common examples: • Query for all records matching some condition: select field from table where condition Example: select * from books where price < 10 • Delete all records matching some condition: delete from table where condition Example: delete from books where ISBN = ‘0004’ SQL and Databases • Set new field value for all records matching some condition: update table set field = value WHERE condition Example: update books set price = 9.95 where productCode = ‘0004’ • Insert new record with given field values: insert into table (field, field, field…) values (value, value, value…) Example: insert into books (productCode, title, price) values (‘0004’, ‘Green Eggs and Ham’, 9.95) Derby • Open source database server from Apache – Not as powerful as MySql, Oracle, etc. – Low memory overhead – Fewer access privileges required • Included in later versions of NetBeans – Create database, create connection to it – Create tables and execute SQL commands – Manipulate database from Java program running in NetBeans Creating a Derby Database • • • • Go to Services tab Expand Databases node Right-click Java DB node Choose Create Database Creating a Derby Database • Give database a name • Set User name to app – Strange schema errors otherwise • Set a password – (I usually also just use “app”) Creating a Derby Database • Must connect to the database before using – Right-click on link corresponding to database – Choose Connect Adding a Table • • • • • Expand link to database Expand App node Right-click Tables node Select Create Table Will get Create Table dialog Adding a Table • Add column for each field of table • First field should be key field – Check Primary key – Check Unique • Set types and other properties as needed – # of characters in VARCHAR – Etc. Adding a Table • Final table structure now shown in services window Manipulating the Database • Can execute queries directly (without using code) – Right click table – Select Execute Command – Brings up command window – Type in SQL statement – Right-click window – Select Run Statement Viewing the Database • Right click table • Select View Data • Executes SELECT * FROM tablename query MySQL • Free database server – Go to www.mysql.com – Follow Products tab – Go to MySQL Community Server – Download and run MySQL Database Driver • From downloads page at mysql.com • Go to connectors page • Go to Connector/J (for Java) • Download and save • Extract the mysql-connector-java-5.version-bin.jar file MySQL Database Driver • In Netbeans right-click Libraries folder of project • Choose Add JAR/Folder • Select mysql-connector-java-5. version-bin.jar file from downloads The MySQL Interface • Command line interface to manipulate databases MySQL controls – Available from PROGRAMS menu – Will need to give password – Can create new databases create database databasename; Creating Database Tables • Must define field names and field types • Some types: – varChar(n) : String of up to n characters – int(n) : integer up to n digits – double(n, d) : decimal number up to n digits and d after the decimal • Must declare a key field with “primary key” • create table tablename ( keyfieldname type primary key, fieldname type, fieldname type, … );