Storing Result in Java Bean
Hi All.
I m a new member on this forum.Posting my first question here.Hope some one will reply me. I got a assignment in which I have to store Result Set in java bean. I am using JSP. I dont know what java bean is and how we store data in Java bean.And then Java bean should provide a method to show the result in tabular format. Thanks in advance.
A java bean is nothing more than a class that holds information. Here is one:
public class Person
private String name;
private String zipcode;
public void setName(String theName)
name = theName;
public String getName()
return name;
public void setZipcode(String theZipcode)
zipcode = theZipcode;
public String getZipcode()
return zipcode;
}Now if you have a resultset containing a name and a zipcode, you can store each record in an object of the above type.
I don't understand what you mean by "tabular format". Could you explain that further?
Similar Messages
-
Calling Portal Service using result as Java Bean Model impossible?
Hello folks,
we try to achieve to call a portal service (working) which gives as a result a list of object of type com.foo.Report. We want to make use of this class as a model class, so we have the class as a model node in the context. The class itself is part of the service DC.
Unfortunately at run time it gives us a NoClassDefFound Exception of com.foo.Report.
As the com.foo.Report is part of the same DC as the service, it is no option to add the PAR public part to the used DCs of the WD DC because then there is this type conflict when we call the service (service look up). Or am I wrong and this is the way to do it? I mean I struggled quite a while to get the service look up right and needed to remove all the PAR/lib used DCs from the used DCs of the WD Project, when I got it working this Model error came up. I also tried to put the Model class in a separate DC but that caused the same error.
how is it possible to call a Portal service from WD and using it's return vale as a Model class
our system iis 7.0.17
best
StefanHi,
Refers the following docs..
EJBs in Web Dynpro Application Using Wrapper Class
Here Java Bean Model used in web dynpro.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00be903b-8551-2b10-c28a-8520400c6451
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1f5f3366-0401-0010-d6b0-e85a49e93a5c
Accessing database table using EJB and web dynpro
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70929198-0d36-2b10-04b8-84d90fa3df9c
Oracle Connectivity with EJB using WebDynpro Application
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/oracle%2bconnectivity%2bwith%2bejb%2busing%2bwebdynpro%2bapplication
Hope it will help u.
thanks
Abhilasha -
Request parameter are not stored in database through Java Bean
Hi,
I want to store the request parameter in database through Java Bean.Allthough program are properly run but value are not store in DB.
Here My code:
Login.html:<html>
<head>
<title>A simple JSP application</title>
<head>
<body>
<form method="get" action="submit.jsp" >
Name: <input type="text" name="User">
Password: <input type="password" name="Pass">
<input type="Submit" value="Submit">
</form>
</body>
</html>SimpleBean.java:
package co;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
public class SimpleBean implements java.io.Serializable{
private String User="";
private String Pass="";
public SimpleBean(){}
public String getUser() {
return User;
public void setUser(String User) {
this.User = User;
public String getPass() {
return Pass;
public void setPass(String Pass) {
this.Pass = Pass;
public void show()
try
System.out.println("Printed*************************************************************");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Loading....");
Connection con=DriverManager.getConnection("jdbc:odbc:Ex11dump");
System.out.println("Connected....");
PreparedStatement st=con.prepareStatement("insert into Table1 values(?,?)");
System.out.println("~~~~~~~~~~~~~~~~~~~~");
String User=getUser();
st.setString(1,User);
String Pass=getPass();
st.setString(2,Pass);
int y= st.executeUpdate();
System.out.println(y);
System.out.println("Query Executed");
con.commit();
con.close();
System.out.println("Your logging is saved in DB *****************");
catch(Exception e)
e.printStackTrace();
}submit.jsp:
<jsp:useBean id="obj" class="co.SimpleBean"/>
<jsp:setProperty name="obj" property="*" />
<jsp:getProperty name="obj" property="User" /> <br>
<jsp:getProperty name="obj" property="Pass" /> <br>
<% obj.show();%>
<%
out.println("Ur data is saved in DB");
%>Please Help me.
Thanks.The issue is in the naming of your fields.
Change User -> user and Pass->pass
Name: <input type="text" name="user">
Password: <input type="password" name="pass"> -
<%@ page contentType="text/html;charset=windows-1252" errorPage = "error.jsp"%>
<%@ page import="java.sql.*,java.io.*,javax.sql.*, mypackage1.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Process</title>
</head>
<body>
<P align="center">
<STRONG><FONT face="Algerian" size="6" color="#0033cc">Result from the Query</FONT></STRONG>
</P>
<P align="center"> </P>
<P align="center"> </P>
<P align="center"> </P>
<P align="center"> </P>
<P align="center">
<%
int rowsChanged;
Connection con;
try
String sql;
sql = request.getParameter("query");
System.out.println(sql);
session=request.getSession(true);
String name = (String)session.getAttribute("theID");
String password = (String)session.getAttribute("paswd");
String driver="oracle.jdbc.OracleDriver";
Class.forName(driver);
String url ="jdbc:oracle:thin:@minerva.humber.ca:1521:grok" ;
con = DriverManager.getConnection(url,name,password);
if(sql.substring(0,6).equalsIgnoreCase("Select"))
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery(sql);
%>
<jsp:useBean id="myBean" scope="page" class="mypackage1.Table" >
</jsp:useBean>
<jsp:setProperty name="myBean" property="*" param="<%rs%>"/>
<%
myBean.setTable(rs);
out.println(myBean.getTable());
%>
<%
else
Statement stat = con.createStatement();
rowsChanged = stat.executeUpdate(sql);
out.println("<h3><STRONG><FONT face=Algerian size=5 color=#0033cc>Number of rows affected are: "+rowsChanged+"</h3></Strong></Font>");
}//End of Try
catch(Exception e)
System.out.println(e+ "gd"+ e.getMessage());
%>
</P>
<P align="center">
<a href="check.jsp">Please Click Here to Return to Main Page</a>
</P>
</body>
</html>Above is my JSP file, which is calling a Java bean class called Table. The thing is that Its not returning any Table from the Table Class. I dont know how to use Java bean as I m new to it. Following is my Table Class. So If anyone can plz help me then it would be great. I m suffering from 2 days just because of this class and JSP.
package mypackage1;
import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
public class Table implements Serializable
private ResultSet rs;
public Table()
public void setTable(ResultSet result)
rs = result;
public String getTable()
String output=null;
try
ResultSetMetaData metadata;
metadata=rs.getMetaData();
// find the number of fields in customer table
int col=metadata.getColumnCount();
output = "<table/><tr/>";
for(int i=1;i<=col;i++)
output+="<td/><b/>"+metadata.getColumnName(i)+"</b/></td/>";
output += "</tr/>";
while (rs.next())
output="<tr/>";
for(int i=1;i<=col;i++)
output+="<td/>"+rs.getString(i)+"</td/>";
output += "</tr/></table/>";
}//End of While
catch(Exception e)
return output;
}//End of Table method
}//End of ClassFirst reaction: yuck.
This is not something you should be using a bean for.
Beans are meant for storing data, not for generating HTML from.
I don't really like queries on a JSP page either, but thats a different story again.
I would recommend you use JSTL for this.
1 - it provides a c:forEach tag for looping
2 - it provides sql tags for doing queries in a database
IF you are going to do database queries from a JSP page, I absolutely recommend you use the JSTL tags.
(end rant)
Your problem is probably caused by the fact that in your bean you have the following
try{
// code here
catch (Exception e){
// completely ignore exception and carry on as if nothing bad happened.
// what you should be doing is something like:
System.out.println("Error occurred " + e.getMessage());
e.printStackTrace();
return e.getMessage();
}Cheers,
evnafets -
How can I include Java Bean model into the model outside the component
Hi All,
I am new to SAP portal. I wanted to create a bean for storing the data and to include that into the application model.
Please help me with an example .
Regards,
SarojHi,
Check these blogs.
The specified item was not found.
Importing Complex JavaBean model into WebDynpro by creating relationships for the model classes
JavaBean Model Import: when it really works
Issue in Importing Java Bean Model
Regards,
Harini S
Consider rewarding points for helpful answers. Post this thread in WD forums for more results. -
Java Bean scope when used with the JPDK
Portal 3.0.9.8.4 and Jserv
When using JSPs with Java Beans and the JPDK I have noticed problems when setting the scope attribute of the useBean action to something other than "page". For example, <jsp:useBean id="provider" scope="session" class="MyClass" /> causes a java.lang.ClassCastException when there are more than two JSP portlets than attempt to access the ProviderSession object.
Does anyone know what value the JSP scope should be set to when you want the JSPs read/write to the ProviderSession?The behavior you report is an expected one as your keys of objects on session are not unique to the two portlet instances. Two portlets with the same session object (may have been deployed on the same Portal page), are sharing the same object put on session, thus resulting in thread conflicts. What you need to do is to generate unique keys for objects stored for each portlet instance.
For example, instead of having the id as "provider", you should have it as <portlet instance name> + "provider".
You are not experiencing the same behavior in "request" or "page" scope, as in these scopes, the objects are not shared across portlet instances.
Please let me know if my interpretation of your issue is wrong.
Regards,
Abhinav -
How can i display the result of java class in InputText ?
Hi all,
How can i get the result of java class to InputText Or OutputText ???
also can every one in the forum give me road map for dealing with java in oracle adf because i'm beginner in oracle adf
i saw some samples in oracle adf corner but it's difficult for me.User,
Always mention your JDev version, technologies used and clear usecase description (read through this announcement : https://forums.oracle.com/forums/ann.jspa?annID=56)
How can i get the result of java class to InputText Or OutputText ???Can you elaborate on your requirement? Do you mean the return value of a method in a class as output text? Or an attribute in your class (bean?) as text field?
-Arun -
What is the difference between java direct or java bean in JSP?
What is the difference if I use java code directly in JSP or use java bean in JSP?
Which class to use for receiving the passed parameter from html or java script? Any difference for java code and java bean in the way receiving the passed data?
How can I pass string from jsp to html or java script?it's generally accepted as better design to separate presentation from logic. meaning, the java code in the jsp should be used to support displaying data, as oppsoed to implementing the application - like database access, etc.
when the logic is separated from the presentation, it allows you to reuse logic components within several jsp pages.
if you decide to change the presentation layer in the future (to support wap, for example) you don't need to rewrite your entire application, since the "guts" of the application is outside of the jsps.
it is also a good idea to separate your business logic from your data layer. adding a "buffer zone" between these layers helps in the same manner as in separating presentation from logic. if you're using flat files for storage now, upgrading to a database wouldn't require rewriting all your business logic, just the methods which write out the data to a file, for example.
once you feel comfortable with separating the various layers, check out the struts framework at http://jakarta.apache.org/
to answer your second question, to get parameters passed in from HTML forms, use ServletRequet's getParameter() method.
in tomcat:
<% String lastName = request.getParameter( "lastname" ); %>
to answer your third question: when displaying the HTML from withing a jsp, print out the string to a javascript variable or a hidden form element:
<% String firstName = "mike"; %>
<input type="hidden" name="firstname" value="<%= firstName %>">
<script language="javascript1.2">
var firstName = "<%= firstName %>";
</script>
this jsp results in the following html:
<input type="hidden" name="firstname" value="mike">
<script language="javascript1.2">
var firstName = "mike";
</script> -
Crystal Reports data connection using Java beans
Hi
My name is Bach Ong, i'm currently perform re-configuring Crystal reports 2008 to connect via
Java bean to Jboss server, this uses look up service on JBoss server. The connection is using Connect
look up using the properties:
java.naming.provider.url=jnp://emgsydapp121:10499
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
for file CRConfig.xml i put as follows:
<JDBCURL></JDBCURL>
<JDBCClassName></JDBCClassName>
<JDBCUserName></JDBCUserName>
<JNDIURL>jnp://emgsydapp121:10499</JNDIURL>
<JNDIConnectionFactory>org.jnp.interfaces.NamingContextFactor
y</JNDIConnectionFactory>
<JNDIInitContext>/</JNDIInitContext>
<JNDIUserName></JNDIUserName>
Can you advise us if this step is correct, and is there any
documentation that can guide us to right direction.
for Java testing in Eclipse using remote call class it is working suing the following code:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://emgsydapp121:10499");
InitialContext ctx = new InitialContext(p);
Date asAtDate = CrystalUtils.convertToDate("2014-01-01", CrystalUtils.relativeToToday(0), false);
String asxCode = "BHP";
ClosingPricesReportRequest criteria = new ClosingPricesReportRequest(asAtDate, asxCode);
InitialContext context = new InitialContext(p);
ClosingPricesReportService ejb = (ClosingPricesReportService) context.lookup(ClosingPricesReportService.REMOTE_JNDI);
ClosingPricesReport report = ejb.createMTMClosingPriceReport(criteria);
System.out.println(report.getClosingPrices()[0].getClosingPrice());
testval = report.getClosingPrices()[0].getClosingPrice().toString();
System.out.println(testval);
when i run the tes code the results as follow:
10:49:45,244 DEBUG [SecurityAssociation ] Using ThreadLocal: false
10:49:45,338 DEBUG [MicroSocketClientInvoker ] SocketClientInvoker[709446e4, socket://emgsydapp121:10473] constructed
10:49:45,338 DEBUG [MicroRemoteClientInvoker ] SocketClientInvoker[709446e4, socket://emgsydapp121:10473] connecting
10:49:45,338 DEBUG [MicroSocketClientInvoker ] Creating semaphore with size 50
10:49:45,338 DEBUG [MicroRemoteClientInvoker ] SocketClientInvoker[709446e4, socket://emgsydapp121:10473] connected
10:49:45,369 DEBUG [ClientSocketWrapper ] reset timeout: 0
10:49:45,650 DEBUG [InvokerRegistry ] removed SocketClientInvoker[709446e4, socket://emgsydapp121:10473] from registry
10:49:45,650 DEBUG [MicroSocketClientInvoker ] SocketClientInvoker[709446e4, socket://emgsydapp121:10473] disconnecting ...
10:49:45,650 DEBUG [SocketWrapper ] ClientSocketWrapper[Socket[addr=/10.137.2.40,port=10473,localport=64150].2cba5bdb] closing
37.99000000000000198951966012828052043914794921875
37.99000000000000198951966012828052043914794921875
Can anyone assist me in convert the above settings to get access by Crystal reports.
My attemp current are below:
public class CFDClosingPricesRpt extends CrystalReport {
//Constructor
public CFDClosingPricesRpt(){
super(ClosingPriceBean.INSTANCE);
* Returns the ResultSet for this report to Crystal.
* @param asxCode
* @param asAtDateString
* @return
public ResultSet getNewReport(String asxCode, String asAtDateString) {
try {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://emgsydapp121:10499");
//InitialContext ctx = new InitialContext(p);
clearCachedReportBeans();
Date asAtDate = CrystalUtils.convertToDate("2013-01-01", CrystalUtils.relativeToToday(0), false);
asxCode = "BHP";
ClosingPricesReportRequest criteria = new ClosingPricesReportRequest(asAtDate, asxCode);
//ClosingPricesReportService ejb = (ClosingPricesReportService) ctx.lookup(ClosingPricesReportService.REMOTE_JNDI);
ClosingPricesReportService ejb = (ClosingPricesReportService) ServiceLocator.getInstance().getService(ClosingPricesReportService.REMOTE_JNDI);
ClosingPricesReport report = ejb.createClosingPriceReport(criteria);
// assemble Crystal-friendly DTO
Collection closingPrices = Arrays.asList(report.getClosingPrices());
for (Iterator iter = closingPrices.iterator(); iter.hasNext();) {
MBLXClosingPrice cp = (MBLXClosingPrice) iter.next();
if (cp==null) continue;
addReportBean(new ClosingPriceBean( report.getSuppliedDate(),
cp.getClosingPrice(),
cp.getAsxCode()));
} catch (Throwable x) {
saveErrorMessage(x);
return getAsResultSet();
Thanks
Bach OngHi Don Thanks for the reply.
I've was able to connect via Java beans and JNDI. But this one is going the JNDI of JBoss sever, which the JNDI already configure and working for Crystal reports v10.
Bach -
How to store multiline string literal in to java bean shell variable
Hello Experts
How to store multiline string literals in java bean shell like we use triple quote for jython variable
Using Jython
str=""" helllo
welcome to my world"""
above syntax is working but not for java bean shell like below
String str=""" hello
welcome to my world""";
So how to do this in java bean shell. I came to this scenario while storing logs to a variable. I believe there is no solution for storing multiline strings to java bean shell variable.
<@
String str="<%=odiRef.getPrevStepLog("MESSAGE")%>";
@>
Any suggestion will be highly appreciated.
Thank You.maddythehunk wrote:
Im trying this but its not working...
while(billingQueryParamsItr.hasNext()) {
billingQueryParam = (BillingQueryParam) billingQueryParamsItr.next();
System.out.println("****** Param Name-->"+billingQueryParam.getParamName());
String[0] name = billingQueryParam.getParamName(); // giving error ; expected
//billingItemActionForm.setParamName(billingQueryParam.getParamName());
Declare the array outside of the loop. Fill the array as you iterate. And stop putting your error messages inside of comments in the code. -
Using Java Bean in JSP to show database record
I have links in my Tomcat container that if someone clicks on a specific link it should go to a Record page (Show.jsp) with all the values associated with a record from a database.
For example if someone clicks on a specific link like this:
LinkExample
it would take you to a jsp with database info for someone named Jones and show you his info:
Lastname = Jones
Firstname = Mike
City = San Diego
I would like to do this using a Java helper class and bean so I dont have any database connection or Java code in my JSP.
I created Java class file that has Database connection that works with a Java bean. I just dont know how to get the Show.jsp to work with the Java Bean and Java helper class file.
Here is what I have for Show.jsp and this is the part I have been working on the longest but cant get it to work because it doesnt seem to work with the database:<jsp:useBean id="user" class="num.UserDB"/>
//do I call getUser(lastname) here and if so how?
<jsp:setProperty name="user" property="*"/>
Last Name: <jsp:getProperty name="user" property="lastname"/><BR>
First Name: <jsp:getProperty name="user" property="firstname"/><BR>
City: <jsp:getProperty name="user" property="city"/><BR>My Java Helper class that compiles and connects to database:
package num;
import java.io.*;
import java.sql.*;
import java.util.*;
import num.User;
public class UserDB
public User getUser(String lastname)
User user = new User();
try
Class.forName...//database connection stuff here
ResultSet results = stmt.executeQuery("SELECT * from user where lastname = '" + lastname + "'");
if(results.next() == true)
results.next();
user.setLastname(results.getString("lastname"));
user.setFirstname(results.getString("firstname"));
user.setFirstname(results.getString("city"));
catch(Exception e)
System.out.println("Exception...");
return user;
}My Java Bean that compiles here:
package num;
public class User
private String firstname;
private String lastname;
private String city;
public User()
//no arg constructor
public User(String firstname, String lastname, String city)
this.lastname = lastname;
this.firstname = firstname;
this.city = city;
public String getLastname()
return lastname;
public void setLastname(String lastname)
this.lastname = lastname;
//more bean methods for all fields here
Sorry if I wasnt specific enough. I have a link that passes a value (field that is passed is called lastname) to a JSP where I want to show record info for that value that is passed.
My question is how do I show the database record info on Show.jsp for the lastname field value of Jones where I want to use a Java Bean and Database helper class in Show.jsp
Here is the message I get when I hit the link (LinkExample) and it goes to Show.jsp:
org.apache.jasper.JasperException: Cannot find any information on property 'lastname' in a bean of type 'num.UserDB'
.....My UserDB class:
public class UserDB
public User getUser(String lastname)
User user = new User();
try
Class.forName("org.gjt.mm.mysql.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/dbconnone?user=smitherson&password=abcdefg");
Statement stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("SELECT * from user where lastname = '" + lastname + "'");
if(results.next() == true)
results.next();
user.setLastname(results.getString("lastname"));
user.setFirstname(results.getString("firstname"));
user.city(results.getString("city"));
catch(Exception e)
System.out.println("Exception..." + e);
return user;
}Bean class:
package num;
public class User
private String firstname;
private String lastname;
private String city;
public User()
//no arg constructor
public User(String firstname, String lastname, Sting city)
this.firstname = firstname;
this.lastname = lastname;
this.city = city;
public String getFirstname()
return firstname;
public void setFirstname(String firstname)
this.firstname = firstname;
public String getLastname()
return lastname;
public void setLastname(String lastname)
this.lastname = lastname;
public String getCity()
return city;
public void setCity(String city)
this.city = city;
-
Help with Login Form (JSP DB Java Beans Session Tracking)
Hi, I need some help with my login form.
The design of my authetication system is as follows.
1. Login.jsp sends login details to validation.jsp.
2. Validation.jsp queries a DB against the parameters received.
3. If the query result is good, I retrieve some information (login id, name, etc.) from the DB and store it into a Java Bean.
4. The bean itself is referenced with the current session.
5. Once all that's done, validation.jsp forwards to main.jsp.
6. As a means to maintain state, I prefer to use url encoding instead of cookies for obvious reasons.I need some help from step 3 onwards please! Some code snippets will do as well!
If you think this approach is not a good practice, pls let me know and advice on better practices!
Thanks a lot!Alright,here is an example for you.
Assume a case where you don't want to give access to any JSP View/HTML Page/Servlet/Backing Bean unless user logging system and let assume you are creating a View Object with the name.
checkout an example (Assuming the filter is being applied to a pattern * which means when a resource is been accessed by webapplication using APP_URL the filter would be called)
public doFilter(ServletRequest req,ServletResponse res,FilterChain chain){
if(req instanceof HttpServletRequest){
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession();
String username = request.getParameter("username");
String password = request.getParameter("password");
String method = request.getMethod();
String auth_type = request.getAuthType();
if(session.getAttribute("useInfoBean") != null)
request.getRequestDispatcher("/dashBoard").forward(req,res);
else{
if(username != null && password != null && method.equaIsgnoreCase("POST") && (auth_type.equalsIgnoreCase("FORM_AUTH") || auth_type.equalsIgnoreCase("CLIENT_CERT_AUTH")) )
chain.doFilter(req,res);
else
request.getRequestDispatcher("/Login.jsp").forward(req,res);
}If carefully look at the code the autherization is given only if either user is already logged in or making an attempt to login in secured way.
to know more insights about where these can used and how these can be used and how ?? the below links might help you.
http://javaboutique.internet.com/tutorials/Servlet_Filters/
http://e-docs.bea.com/wls/docs92/dvspisec/servlet.html
http://livedocs.adobe.com/jrun/4/Programmers_Guide/filters3.htm
http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters.html
http://www.servlets.com/soapbox/filters.html
http://www.onjava.com/pub/a/onjava/2001/05/10/servlet_filters.html
and coming back to DAO Pattern hope the below link might help you.
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
http://java.sun.com/blueprints/patterns/DAO.html
http://www.javapractices.com/Topic66.cjp
http://www.ibm.com/developerworks/java/library/j-dao/
http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-dao.html
On the whole(:D) it is always a good practice to get back to Core Java/J2EE Patterns.and know answers to the question Why are they used & How do i implement them and where do i use it ??
http://www.fluffycat.com/java-design-patterns/
http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
http://www.cmcrossroads.com/bradapp/javapats.html
Hope that might help :)
REGARDS,
RaHuL -
How can I insert a record through a java bean
Hi everybody,
I'd some problem when I insert a record using java bean. When I want to insert a record. The result in executeUpdate must return 0. Would you please tell me what's wrong in my code?
java bean
package miniproj;
import java.sql.*;
public class Register{
private String sql;
private String username;
private String usertype;
private String password;
private String blocknum;
private int floornum;
private String owner;
private int rows;
private String s;
// set parameter to database
public int setMember(){
try{
//load database driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// Get a connection to the database
Connection sqlConn = java.sql.DriverManager.getConnection("jdbc.odbc:WFBS");
// Get a statement from the connection
Statement sqlStmt = sqlConn.createStatement();
sql = "INSERT INTO USERS(user_name, password) VALEUS ('aaa', 'aaa')";
// sql = "INSERT INTO USERS(user_name, password) VALEUS (" + user_name + "," + password + ")" ;
rows = sqlStmt.executeUpdate(sql);
// sqlRst.close();
sqlStmt.close();
sqlConn.close();
catch(SQLException se){
catch(Exception e){
return rows;
// set user name method
public void setUsername(String name){
username = name;
// set passwrod method
public void setPassword(String pwd){
password = pwd;
// set block num mehtod
public void setBlockNum(String block){
blocknum = block;
// set floor num method
public void setFloorNum(int floor){
floornum = floor;
// set owner method
public void setOnwer(String own){
owner = own;
// get user name method
public String getUsername(){
return username;
// get password method
public String getPassword(){
return password;
jsp code
<%@ include file="Header.jsp" %>
<%@ page errorPage="Error.jsp" %>
<jsp:useBean id="register" class="miniproj.Register" />
<jsp:setProperty name="register" property="*" />
User name : <%=register.getUsername()%><br>
Password : <%=register.getPassword()%><br>
<%
int i = register.setMember();
out.println(i);
%>
Thanks a lot
ChrisCorrect the spelling of Values
sql = "INSERT INTO USERS(user_name, password) VALUES ('aaa', 'aaa')"; -
User parameter are not show in database using Servlet and java Bean
Hello Sir,
when I insert the parameter in run time, weblogic server and JSP show that parameter are saved.
Allthough row increment in database but they not show in database.
Here My Code:
login.html:
<html>
<head>
<title>A simple JSP application</title>
<head>
<body>
<form method="get" action="tmp" >
Name: <input type="text" name="user">
Password: <input type="password" name="pass">
<input type="Submit" value="Submit">
</form>
</body>
</html>LoginServlet.java:import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException{
try
String user=request.getParameter("user");
String pass=request.getParameter("pass");
co.SimpleBean st = new co.SimpleBean();
st.setuserName(user);
st.setpassword(pass);
request.setAttribute("user",st);
request.setAttribute("pass",st);
RequestDispatcher dispatcher1 =request.getRequestDispatcher("submit.jsp");
dispatcher1.forward(request,response);
catch(Exception e)
e.printStackTrace();
}SimpleBean.java:
package co;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
public class SimpleBean {
private String user="";
private String pass="";
private String s="";
public String getuserName() {
return user;
public void setuserName(String user) {
this.user = user;
public String getpassword() {
return pass;
public void setpassword(String Pass) {
this.pass= pass ;
public String issueData()
try
System.out.println("Printed*************************************************************");
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Connection loaded");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@VijayKumar-PC:1521:XE","SYSTEM","SYSTEM");
System.out.println("Connection created");
PreparedStatement st=con.prepareStatement("insert into vij2 values(?,?)");
System.out.println("~~~~~~~~~~~~~~~~~~~~");
String NAME=getuserName();
st.setString(1,NAME);
String PASSWORD=getpassword();
st.setString(2,PASSWORD);
st.executeUpdate();
System.out.println("Query Executed");
con.close();
s= "Your logging is saved in DB ";
System.out.println("Your logging is saved in DB *****************");
return(s);
catch(Exception e)
e.printStackTrace();
return "failed";
}submit.jsp:This is Submit page
<jsp:useBean id="st" class="co.SimpleBean"/>
<jsp:setProperty name="st" property="*" />
<jsp:getProperty name="st" property="userName" /> <br>
<jsp:getProperty name="st" property="password" /> <br>
<% st.issueData();%>
<%
out.println("Ur data is saved in DB");
%>Please Help me.
Thanks.Ok, this seems to be a long and convoluted path to do absolutely nothing.
You submit the form.
You run a servlet that gets the parameters correctly (good), creates a SimpleBean (good) and then sets this into request attribute space under the names "user" and "pass" - (why?)
You then forward to the jsp: submit.jsp.
Submit.jsp creates a new SimpleBean, and attempts to populate it with <jsp:setProperty>. You then call the issueData method on it.
Your complaint: Rows are being created in the database which have empty string values instead of the parameters you have passed.
So, why are the values blank? Where do you think these values should be coming from?
Looking at SimpleBean we find one mistake - you have mis-named your get/set methods.
To properly follow java beans standards, you should use camel-case for your methods.
Rather than getuserName() the method should be getUserName(). getpassword() should be getPassword() etc etc.
The method getUserName() defines a property "userName" for the bean.
Once that is fixed, lets go to submit.jsp. The <jsp:setProperty> statement will try and set all properties of the bean from the request parameters.
There are no request parameters "userName" or "password" so those values don't get set in the bean, therefore it uses their default value of empty string - "".
There ARE request parameters called "user" and "pass" but because they aren't properties of the bean, they get ignored.
As a result, the values are empty string, and that is exactly what gets inserted into the database.
Ways to fix this
1 - rename your parameters on your form to be "userName" and "password" to match the bean. That way the <jsp:setProperty> tag will populate them properly.
or
2 - Call issueData() method from your servlet after you have created the SimpleBean. Better in my opinion as you then don't have any scriptlet code on a JSP page.
Cheers,
evnafets -
Stored Procedure Call from Bean Error - PLS-00201
Hello all,
I am using the java stored procedure code in the examples dir of weblogic51/examples/jdbc/...
with one exception. I created the stored procedure as another user with more
permissions than
the user that the jdbc connection will be established with. I created a public
synonym so the stored
procedure doesn't have to be refered to as "username.proc_squareInt". I keep
getting the following
errors. The web user has execute permissions and I tried calling it both with
the owner.proc_name
and proc_name (which I know won't work since it won't be able to find it).
Any help would be greatly appreciated.
Sincerely,
Michael Prinsen
Tue Jul 17 13:47:41 MDT 2001:<E> <WebAppServletContext-et> Root cause of ServletException
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'WTHDBM.PROC_SQUAREINT' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1330)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:757)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1353)
at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1807)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:332)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:376)
at weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:35)
at csu.et.testBean.getWeatherData1(testBean.java:46)
at jsp_servlet._test._tester._jspService(_tester.java:107)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
// START CODE
package csu.et;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import java.beans.*;
import java.math.*;
import java.util.Date;
import java.util.Locale;
import csu.util.*;
public class testBean {
public String getWeatherData1() throws SQLException {
Connection conn = null;
conn = CSUConnection.getConnection("etSelectConnectionPool");
// Create a stored proc - (CREATED ALREADY)
// Statement stmt1 = conn.createStatement();
// stmt1.execute("CREATE OR REPLACE PROCEDURE proc_squareInt " +
// "(field1 IN OUT INTEGER, " +
// " field2 OUT INTEGER) IS " +
// "BEGIN field2 := field1 * field1; " +
// "field1 := field1 * field1; END proc_squareInt;");
// stmt1.close();
String sql = "{call proc_squareInt(?, ?)}";
CallableStatement cstmt1 = conn.prepareCall(sql);
cstmt1.registerOutParameter(2, java.sql.Types.INTEGER);
for (int i = 0; i < 5; i++) {
cstmt1.setInt(1, i);
cstmt1.execute();
System.out.println(i + " " + cstmt1.getInt(1) + " " + cstmt1.getInt(2));
cstmt1.close();
conn.close();
return("hard-coded stuff");
//END CODE
this is probably an oracle related issue, and has very little to do with
Weblogic transactions.
your easiest way to debug this is to open a SQL/Plus window, log in as user
WTHDBM and try to run the command
"execute proc_squareInt(5,5);"
"execute owner.proc_squareInt(5,5);"
if this doesn't work, consult Oracle technet on how to setup synonyms and
permissions
Filip
~
Namaste - I bow to the divine in you
~
Filip Hanik
Software Architect
[email protected]
www.filip.net
"Michael Prinsen" <[email protected]> wrote in message
news:[email protected]...
>
> Hello all,
>
> I am using the java stored procedure code in the examples dir of
weblogic51/examples/jdbc/...
> with one exception. I created the stored procedure as another user with
more
> permissions than
> the user that the jdbc connection will be established with. I created a
public
> synonym so the stored
> procedure doesn't have to be refered to as "username.proc_squareInt". I
keep
> getting the following
> errors. The web user has execute permissions and I tried calling it both
with
> the owner.proc_name
> and proc_name (which I know won't work since it won't be able to find it).
>
> Any help would be greatly appreciated.
>
> Sincerely,
>
> Michael Prinsen
>
> Tue Jul 17 13:47:41 MDT 2001:<E> <WebAppServletContext-et> Root cause of
ServletException
> java.sql.SQLException: ORA-06550: line 1, column 7:
> PLS-00201: identifier 'WTHDBM.PROC_SQUAREINT' must be declared
> ORA-06550: line 1, column 7:
> PL/SQL: Statement ignored
>
> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
> at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
> at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:542)
> at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1330)
> at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:757)
> at
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1313
> at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1232)
> at
oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(OracleStatement.java:1
353)
> at oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1760)
> at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:1807)
> at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:332)
> at
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
ava:376)
> at weblogic.jdbc.pool.PreparedStatement.execute(PreparedStatement.java:35)
> at csu.et.testBean.getWeatherData1(testBean.java:46)
> at jsp_servlet._test._tester._jspService(_tester.java:107)
> at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
> at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:120)
> at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:138)
> at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:915)
> at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:879)
> at
weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
Manager.java:269)
> at
weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
> at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
>
>
>
> // START CODE
>
> package csu.et;
>
> import java.io.*;
> import java.sql.*;
> import java.util.*;
> import java.text.*;
> import java.beans.*;
> import java.math.*;
> import java.util.Date;
> import java.util.Locale;
> import csu.util.*;
>
> public class testBean {
>
> public String getWeatherData1() throws SQLException
>
> Connection conn = null;
> conn = CSUConnection.getConnection("etSelectConnectionPool");
>
> // Create a stored proc - (CREATED ALREADY)
> // Statement stmt1 = conn.createStatement();
> // stmt1.execute("CREATE OR REPLACE PROCEDURE proc_squareInt " +
> // "(field1 IN OUT INTEGER, " +
> // " field2 OUT INTEGER) IS " +
> // "BEGIN field2 := field1 * field1; " +
> // "field1 := field1 * field1; END proc_squareInt;");
> // stmt1.close();
>
> String sql = "{call proc_squareInt(?, ?)}";
> CallableStatement cstmt1 = conn.prepareCall(sql);
>
> cstmt1.registerOutParameter(2, java.sql.Types.INTEGER);
> for (int i = 0; i < 5; i++) {
> cstmt1.setInt(1, i);
> cstmt1.execute();
> System.out.println(i + " " + cstmt1.getInt(1) + " " +
cstmt1.getInt(2));
> }
>
> cstmt1.close();
> conn.close();
> return("hard-coded stuff");
> }
>
> }
>
> file://END CODE
Maybe you are looking for
-
HT1338 Can I install mountain lion on more than one mac book?
I have 2 macbook pro's at home, I have paid for and installed mountain lion on the newer of the two, bit I was wondering if I could install the update on the second machine as well? I thought that I heard or read somewhere that this was possible but
-
It was a dark and stormy night... For the past eight years, I had been happy with Verizon wireless service. Great coverage and rarely a dropped call. However, all of that changed when I moved into a lovely mid-century modern condominium. The solid co
-
I am changing over from an iPhone 4 to 5 and the backup from the iCloud is taking an extremely long time. I can perform basic functions on the phone but all the apps are still being downloaded. THey each have the blue progress bar underneath and hav
-
How will the applications gets translated using Globalization
Hi, By using the Apex user guide, I have done with the multilingual process but not able to view the translated application in the application builder list, How can I get the arabic language gets effected in my applications(Apex). What are the steps
-
Upgrading a Report from Crystal Reports 10 to Crystal Reports 11
Post Author: Chakradhar CA Forum: Upgrade to XI 3.0 HI All, Please provide a solution for this.. Is there any way to change the version of a report without redesigning the report? If we upgrade the report without redisign, dont we lose the special fe