Java/JSP/Database
Содержание
- 1 Accessing the table field in Database
- 2 Accessing the tableName Database Table
- 3 Creating a Table
- 4 The tableName Database Table
- 5 Database Lookup
- 6 Fetching Data From a Database
- 7 Filling a Table
- 8 Joining Tables
- 9 Navigating in a Database Table
- 10 Navigating in a Database Table
- 11 Please enter the new address information
- 12 New Address Creation using executeUpdate()
- 13 This Page Obtains a Connection to a Database and executes a query
- 14 This Page Obtains a Connection to a Database and executes a query
- 15 Address List
- 16 Address List
- 17 Selecting tableName From a Database
- 18 Modify Address List
- 19 Using a DataSource
- 20 Address List
- 21 Using Table Metadata
- 22 Address List
- 23 Modify Address List
Accessing the table field in Database
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ; %> <HTML>
<HEAD> <TITLE>Accessing the tableName Database Table</TITLE> </HEAD> <BODY>
Accessing the tableName Database Table
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement() ; ResultSet resultset = statement.executeQuery("select name from tableName") ; %>
Name |
---|
<%= resultset.getString(1)%> |
</BODY>
</HTML>
</source>
A First JSP Database
<source lang="java">
<%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core_rt" %> <%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql_rt" %> <sql:setDataSource var="datasource"
driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/publish" />
<sql:query var="books" dataSource="${datasource}">
SELECT id, title, price FROM book
</sql:query>
<html>
<head> <title>A First JSP Database</title> </head> <body>
id | title | price |
<c:out value="${row.id}" /> | <c:out value="${row.title}" /> | <c:out value="${row.price}" /> |
</body>
</html>
</source>
Calling a Stored procedure within a JSP
<source lang="java">
<%@ taglib uri="jexp.ru.tags" prefix="cbck" %> <html> <head><title>Calling a Stored procedure</title></head> <body>
This JSP calls a stored procedure with a JSP 2.0 function
${cbck:addEvent("Event Name","place","16-Jul-2005")} </body> </html>
</source>
Creating a Table
<source lang="java">
<%@ page import="java.sql.*" %> <HTML>
<HEAD> <TITLE>Creating a Table</TITLE> </HEAD> <BODY>
Creating a Table
<% Connection connection = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); connection = DriverManager.getConnection("jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement(); String command = "CREATE TABLE Employees (ID INTEGER, Name CHAR(50));"; statement.executeUpdate(command); } catch (Exception e) { out.println("An error occurred."); } %> The Employees table was created. </BODY>
</HTML>
</source>
Display table in Database
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>The tableName Database Table </TITLE> </HEAD> <BODY>
The tableName Database Table
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "Steve", "password"); Statement statement = connection.createStatement() ; ResultSet resultset = statement.executeQuery("select * from tableName") ; %>
ID | Name | City | State | Country |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
</BODY>
</HTML>
</source>
Fetching Data From a Database
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>Fetching Data From a Database</TITLE> </HEAD> <BODY>
Database Lookup
<FORM ACTION="self.jsp" METHOD="POST"> Please enter the ID of the publisher you want to find:
<INPUT TYPE="TEXT" NAME="id">
<INPUT TYPE="SUBMIT" value="Submit"> </FORM>
Fetching Data From a Database
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement(); String id = request.getParameter("id"); ResultSet resultset = statement.executeQuery("select * from tableName where id = "" + id + """) ; if(!resultset.next()) { out.println("Sorry, could not find that publisher. " + "Please ."); } else { %>
ID | Name | City | State | Country |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
<% } %> </BODY>
</HTML>
</source>
Filling a Table
<source lang="java">
<%@ page import="java.sql.*" %> <HTML>
<HEAD> <TITLE>Filling a Table</TITLE> </HEAD> <BODY>
Filling a Table
<% Connection connection = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection("jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement(); String command = "INSERT INTO Employees (ID, Name) VALUES (1, "Joe")"; statement.executeUpdate(command); command = "INSERT INTO Employees (ID, Name) VALUES (2, "Yin")"; statement.executeUpdate(command); ResultSet resultset = statement.executeQuery("select * from Employees"); while(resultset.next()){ %>
ID | Name |
---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> |
<% } %> </BODY>
</HTML>
</source>
Joining Tables
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>Joining Tables</TITLE> </HEAD> <BODY>
Joining Tables
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "Steve", "password"); Statement statement = connection.createStatement(); String query = "SELECT a.fname, a.lname, titleauthor.id " + "FROM authors JOIN titleauthor ON authors.id = titleauthor.id"; ResultSet resultset = statement.executeQuery(query) ; %>
First Name | Last Name | Book ID |
---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> |
</BODY>
</HTML>
</source>
JSP Access to Databases
<source lang="java">
/* Beginning JavaServer Pages Vivek Chopra, Jon Eaves, Rupert Jones, Sing Li, John T. Bell ISBN: 0-7645-7485-X
- /
</source>
JSP Database Demo
JSP Database Query
JSTL: Transaction with a JSP
<source lang="java">
<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/sql" prefix="sql" %> <html> <HEAD>
<TITLE>Using a Transaction with a JSP</TITLE> </HEAD>
<body bgcolor="white">
View table Data
<sql:transaction>
<sql:update> insert into atable values(2, "Joe","Id","Feb-24-1996","F") </sql:update> <sql:query var="resultObj"> select * from atable </sql:query>
</sql:transaction>
<c:out value="${column.key}" /> |
<c:out value="${column.value}" /> |
</body> </html>
</source>
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>Navigating in a Database Table </TITLE> </HEAD> <BODY>
<FORM NAME="form1" ACTION="self.jsp" METHOD="POST"> <% int current = 1; if(request.getParameter("hidden") != null) { current = Integer.parseInt(request.getParameter("hidden")); } Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet resultset = statement.executeQuery("select * from tableName"); if(current < 1){ current = 1; } resultset.last(); int rows = resultset.getRow(); if(current <= rows){ resultset.absolute(current); } %>
ID | Name | City | State | Country |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
<INPUT TYPE="HIDDEN" NAME="hidden" VALUE="<%= current %>"> <INPUT TYPE="BUTTON" VALUE="Next Record" ONCLICK="moveNext()"> <INPUT TYPE="BUTTON" VALUE="Previous Record" ONCLICK="movePrevious()"> </FORM> <SCRIPT LANGUAGE="JavaScript"> </SCRIPT> </BODY>
</HTML>
</source>
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ; %> <HTML>
<HEAD> <TITLE>Navigating in a Database Table </TITLE> </HEAD> <BODY>
<FORM NAME="form1" ACTION="self.jsp" METHOD="POST"> <% int current = 0; if(request.getParameter("hidden") != null) { current = Integer.parseInt(request.getParameter("hidden")); } Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement(); ResultSet resultset = statement.executeQuery("select * from tableName"); for(int i = 0; i <= current; i++){ resultset.next(); } %>
ID | Name | City | State | Country |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
<INPUT TYPE="HIDDEN" NAME="hidden" VALUE="<%= current %>"> <INPUT TYPE="BUTTON" VALUE="Next Record" ONCLICK="moveNext()"> </FORM> <SCRIPT LANGUAGE="JavaScript"> </SCRIPT>
</HTML>
</source>
New Address Creation using executeUpdate
<source lang="java">
//File: newAddress.html <html> <head> <title>Add a new entry</title> </head> <body>
Please enter the new address information
<form method="POST" action="addNewAddress.jsp">
Name: <input type="text" name="name" size="20">
Street: <input type="text" name="street" size="20">
City: <input type="text" name="city" size="20">
Zip Code: <input type="text" name="zip" size="20">
Country: <input type="text" name="country" size="20">
Telephone: <input type="text" name="tel" size="20">
<input type="submit" value="Submit">
</form> </body> </html>
//File: addNewAddress.jsp
<%@page import="java.sql.*"%> <html> <head> <title>Add a new Address</title> </head> <body>
New Address Creation using executeUpdate()
<%
Connection conn = null; PreparedStatement stmt = null; try { Class c = Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { System.out.println("Error occurred " + e); } try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ADDRESS"); } catch (SQLException e) { System.out.println("Error occurred " + e); } try { stmt = conn.prepareStatement("INSERT INTO AddressList (name, street, city, zip, country, telephone) VALUES (?, ?, ?,?, ?, ?)"); stmt.setString(1, request.getParameter("name")); stmt.setString(2, request.getParameter("street")); stmt.setString(3, request.getParameter("city")); stmt.setString(4, request.getParameter("zip")); stmt.setString(5, request.getParameter("country")); stmt.setString(6, request.getParameter("tel")); stmt.executeUpdate(); stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("Error occurred " + e); } finally { try { if (stmt != null) stmt.close(); } catch (SQLException e) {} try { if (conn != null) conn.close(); } catch (SQLException e) {} }
%> The new address has been created. </body> </html>
</source>
Obtaining a Connection in JSP
<source lang="java">
<%@page import="java.sql.*"%> <html> <head> <title>Obtaining a Connection</title> </head> <body>
This Page Obtains a Connection to a Database and executes a query
The query is based upon a PreparedStatement <%
Connection conn = null; ResultSet result = null; PreparedStatement stmt = null; ResultSetMetaData rsmd = null; try { Class c = Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { System.out.println("Error occurred " + e); } try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ADDRESS"); } catch (SQLException e) { System.out.println("Error occurred " + e); } try { stmt = conn.prepareStatement("SELECT * FROM AddressList WHERE name= ?"); stmt.setString(1, "Alex"); result = stmt.executeQuery(); stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("Error occurred " + e); } finally { try { if (stmt != null) stmt.close(); } catch (SQLException e) {} try { if (conn != null) conn.close(); } catch (SQLException e) {} }
%> </body> </html>
</source>
Obtaining a database Connection
<source lang="java">
<%@page import="java.sql.*"%> <html> <head> <title>Obtaining a Connection</title> </head> <body>
This Page Obtains a Connection to a Database and executes a query
<%
Connection conn = null; ResultSet result = null; Statement stmt = null;
try { Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (Exception e) { System.out.println("Error occurred " + e); } try { conn = DriverManager.getConnection("jdbc:odbc:ADDRESS", "",""); } catch (SQLException e) { System.out.println("Error occurred " + e); } try { stmt = conn.createStatement(); result = stmt.executeQuery("SELECT * FROM ADDRESS"); } catch (SQLException e) { System.out.println("Error occurred " + e); }
%>
</source>
Presenting database content
<source lang="java">
<%@page import="java.sql.*"%> <html> <head> <title>Presenting database content</title> </head> <body>
Address List
<%
Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try { Class c = Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { System.out.println("Error occurred " + e); } try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ADDRESS"); } catch (SQLException e) { System.out.println("Error occurred " + e); } try { stmt = conn.createStatement(); result = stmt.executeQuery("SELECT * FROM AddressList"); } catch (SQLException e) { System.out.println("Error occurred " + e); } int columns=0; try { rsmd = result.getMetaData(); columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println("Error occurred " + e); }
%>
" + rsmd.getColumnLabel(i) + " | ");
---|
" + result.getString(i) + " | ");
</body> </html>
</source>
Presenting database content using tags
<source lang="java">
//web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.ru/dtd/web-app_2_3.dtd">
<web-app>
<resource-ref> <res-ref-name>jdbc/address</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
</web-app>
<%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core" %>
<html>
<head>
<title>Presenting database content using tags</title>
<sql:setDataSource
dataSource="jdbc/address" var="conn"
/> </head> <body>
Address List
<sql:query dataSource="${conn}" var="addresses">
SELECT * FROM AddressList
</sql:query>
<c:out value="${columnName}"/> |
---|
<c:out value="${column}"/> |
</body> </html>
</source>
Selecting records with condition From a Database
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>Selecting tableName From a Database</TITLE> </HEAD> <BODY>
Selecting tableName From a Database
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement() ; ResultSet resultset = statement.executeQuery("select * from tableName where city = "Boston"") ; %>
ID | Name | City | State | Country |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
</BODY>
</HTML>
</source>
Updating a database using the sql:update tag
<source lang="java">
//web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.ru/dtd/web-app_2_3.dtd">
<web-app>
<resource-ref> <res-ref-name>jdbc/address</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
</web-app>
<%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core" %> <html> <head> <title>Updating a database using the sql:update tag</title> <sql:setDataSource
var="conn" dataSource="jdbc/address"
/> </head> <body>
Modify Address List
<sql:update dataSource="${conn}" var="addresses">
INSERT INTO AddressList (name, street, city, country, telephone) VALUES (?, ?, ?, ?, ?) <sql:param value="${param["name"]}"/> <sql:param value="${param["street"]}"/> <sql:param value="${param["city"]}"/> <sql:param value="${param["country"]}"/> <sql:param value="${param["tel"]}"/>
</sql:update> </body> </html>
</source>
Using a DataSource
<source lang="java">
<%@page import="java.sql.*, javax.sql.*, javax.naming.*"%> <html> <head> <title>Using a DataSource</title> </head> <body>
Using a DataSource
<%
DataSource ds = null; Connection conn = null; ResultSet result = null; Statement stmt = null; ResultSetMetaData rsmd = null; try{ Context context = new InitialContext(); Context envCtx = (Context) context.lookup("java:comp/env"); ds = (DataSource)envCtx.lookup("jdbc/address"); if (ds != null) { conn = ds.getConnection(); stmt = conn.createStatement(); result = stmt.executeQuery("SELECT * FROM AddressList"); } } catch (SQLException e) { System.out.println("Error occurred " + e); } int columns=0; try { rsmd = result.getMetaData(); columns = rsmd.getColumnCount(); } catch (SQLException e) { System.out.println("Error occurred " + e); } %>
" + rsmd.getColumnLabel(i) + " | ");
---|
" + result.getString(i) + " | ");
</body> </html>
</source>
Using a Preconfigured DataSource
<source lang="java">
//web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.ru/dtd/web-app_2_3.dtd">
<web-app>
<resource-ref> <res-ref-name>jdbc/address</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
</web-app>
<%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core" %> <html> <head> <title>Using a Preconfigured DataSource</title> </head> <body>
Address List
<sql:query dataSource="jdbc/address" var="addresses">
SELECT * FROM AddressList
</sql:query>
<c:out value="${columnName}"/> |
---|
<c:out value="${column}"/> |
</body> </html>
</source>
Using a Result object
<source lang="java">
<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/sql" prefix="sql" %> <html> <HEAD>
<TITLE>Using a Result object</TITLE> </HEAD>
<body bgcolor="white">
View Database Data
<c:set var="resultObj" value="${sessionScope[\"javax.servlet.jsp.jstl.sql.Result\"]}" />
<c:out value="${column.key}" /> |
<c:out value="${column.value}" /> |
</body> </html>
</source>
Using Table Metadata
<source lang="java">
<%@ page import="java.sql.*" %> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %> <HTML>
<HEAD> <TITLE>Using Table Metadata</TITLE> </HEAD> <BODY>
Using Table Metadata
<% Connection connection = DriverManager.getConnection( "jdbc:odbc:data", "userName", "password"); Statement statement = connection.createStatement() ; ResultSet resultset = statement.executeQuery("select * from tableName") ; %>
<%= resultset.getMetaData().getColumnName(1)%> | <%= resultset.getMetaData().getColumnName(2)%> | <%= resultset.getMetaData().getColumnName(3)%> | <%= resultset.getMetaData().getColumnName(4)%> | <%= resultset.getMetaData().getColumnName(5)%> |
---|---|---|---|---|
<%= resultset.getString(1) %> | <%= resultset.getString(2) %> | <%= resultset.getString(3) %> | <%= resultset.getString(4) %> | <%= resultset.getString(5) %> |
</BODY>
</HTML>
</source>
Using the SortedMap
<source lang="java">
<%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core" %> <html> <head> <title>Using the SortedMap[] </title> </head> <body>
Address List
<sql:setDataSource dataSource="jdbc/address" var="conn" /> <sql:query dataSource="${conn}" var="addresses">
SELECT * FROM AddressList
</sql:query>
<c:out value="${column}"/> |
</body> </html>
</source>
Using Transactions
<source lang="java">
//web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.ru/dtd/web-app_2_3.dtd">
<web-app>
<resource-ref> <res-ref-name>jdbc/address</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
</web-app>
<%@ taglib prefix="sql" uri="http://java.sun.ru/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.ru/jstl/core" %> <html> <head> <title>Using Transactions</title> <sql:setDataSource
var="conn" dataSource="jdbc/address"
/> </head> <body>
Modify Address List
<sql:transaction dataSource="${conn}" isolation="TRANSACTION_SERIALIZABLE">
<sql:update> INSERT INTO AddressList (name, street, city, country, telephone) VALUES (?, ?, ?, ?, ?) <sql:param value="${param["name"]}"/> <sql:param value="${param["street"]}"/> <sql:param value="${param["city"]}"/> <sql:param value="${param["country"]}"/> <sql:param value="${param["tel"]}"/> </sql:update> <sql:query var="addresses"> SELECT * FROM AddressList </sql:query>
<c:out value="${columnName}"/> |
---|
<c:out value="${column}"/> |
</sql:transaction> </body> </html>
</source>