[Building Sakai] jdbc spring slowly

Aaron Zeckoski aaronz at vt.edu
Wed May 27 00:33:09 PDT 2009


Normally spring jdbc will do a commit for each update/insert/delete
that you run using the jdbctemplate. If you are doing a lot of these
without a transactional wrapper then it can be a little bit expensive
(though not typically the amount of time you are talking about).

I recommend you try using the spring JdbcDaoSupport class and take a
look at the example code here:
http://bugs.sakaiproject.org/confluence/display/BOOT/Spring+JDBC+Info

It may help to clean up all the empty try/finally blocks in your code
for readability when pasting it here. You also might want to send
along your spring configuration file along with your code.
Hope this helps
:-)
-AZ


On Wed, May 27, 2009 at 1:54 AM, yolima u <yolimita.uribe at gmail.com> wrote:
>
> hi all,
>  i'm developing  a tool in sakai using  jdbc spring for the connection to
> the data base
> i'm working with a bean where i create all the functions for the data base:
>
> public class MetGwBean {
>
>        private DataSource dataSource;
>
>        public void setDataSource(DataSource dataSource) {
>                this.dataSource = dataSource;
>        }
>
>
>
>        public void Insertar(String sql,Object[] obj)throws SQLException{
>
>
>           JdbcTemplate sel = new JdbcTemplate(dataSource);
>
>           try {
>                   sel.update(sql, obj);
>                   // do things with your connection (select, insert, delete, etc.)
>           } finally {
>
>           }
>        }
>
>        public List SelectObjetos(String sql,Object[] obj)throws SQLException{
>
>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>                try{
>                        return sel.queryForList(sql, obj, String.class);
>                        }finally{
>
>                        }
>        }
>
>        public List Selectsolo(String sql)throws SQLException{
>
>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>                try{
>                        return sel.queryForList(sql,String.class);
>                        }finally{
>
>                        }
>        }
>
>        public void Borrar(String sql,Object[] obj)throws SQLException{
>
>
>                   JdbcTemplate sel = new JdbcTemplate(dataSource);
>
>                   try {
>                           sel.update(sql, obj);
>                           // do things with your connection (select, insert, delete, etc.)
>                   } finally {
>
>                   }
>
>        }
>
>        public void Actualizar(String sql,Object[] obj)throws SQLException{
>
>
>                   JdbcTemplate sel = new JdbcTemplate(dataSource);
>
>                   try {
>                           sel.update(sql, obj);
>                           // do things with your connection (select, insert, delete, etc.)
>                   } finally {
>
>                   }
>
>        }
>
>        public String Selectid(String sql,Object[] obj)throws SQLException{
>
>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>                try{
>                        return (String)sel.queryForObject(sql, obj, String.class);
>                        }
>                finally{
>
>                        }
>        }
>
>        public int Selectint(String sql,Object[] obj)throws SQLException{
>
>                JdbcTemplate sel = new JdbcTemplate(dataSource);
>                try{
>                        return sel.queryForInt(sql, obj);
>                        }
>                finally{
>
>                        }
>        }
> }
>
>
>
> later i call this functions in a jsp page, for example:
>
>
>
> if (request.getParameter("guardar")!=null)
>        {
>                if (request.getParameter("textarea")!=null)
>                {
>                        objgen.setProyecto(bean2.getCurrentSiteId());//id del proyecto
>                        String
> idobgen=bean.Selectid(objgen.SqlObjId(),objgen.ObjetoBuscar(objgen));//buscar
> el id del obj general
>                        objesp.setObjgeneral(Integer.parseInt(idobgen));//id de obj general en
> obj esp
>                        objesp.setdescObjetivo(request.getParameter("textarea"));
>                        objesp.setAutor(bean2.getCurrentUserId());
>                        objesp.setestado("en definicion");
>                        objesp.setprioridad(0);
>                        bean.Insertar(objesp.SqlInsertar(),objesp.ObjetoInsertar(objesp));
>                        response.sendRedirect("objetivos_esp.jsp");
>                        return;
>                }
>        }
>
> the problem is that the tool is fast for to do the select, but the tool
> takes so much time for to do the inserts, like 3 to 4 minutes.
>
> and in some jsp pages i need show data of the data base that i just insert
> to the DB, but how the tool does this so slowly, the jsp page can't show
> this data.
>
> why does the tool do the insert to slowly?
> what can i do for do this more fast?
>
> --
> View this message in context: http://www.nabble.com/jdbc-spring-slowly-tp23734131p23734131.html
> Sent from the Sakai - Development mailing list archive at Nabble.com.
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"
>



-- 
Aaron Zeckoski (aaronz at vt.edu)
Senior Research Engineer - CARET - Cambridge University
[http://bugs.sakaiproject.org/confluence/display/~aaronz/]
Sakai Fellow - [http://aaronz-sakai.blogspot.com/]


More information about the sakai-dev mailing list