Spring JdbcTemplate

package  hvp.spring.jdbc.jdbctemplate;

import  hvp.spring.commons.inim.UserPO;

import  java.sql.Connection;
import  java.sql.PreparedStatement;
import  java.sql.ResultSet;
import  java.sql.SQLException;
import  java.util.List;

import  org.springframework.context.ApplicationContext;
import  org.springframework.context.support.ClassPathXmlApplicationContext;
import  org.springframework.jdbc.core.JdbcTemplate;
import  org.springframework.jdbc.core.PreparedStatementCreator;
import  org.springframework.jdbc.core.RowMapper;
import  org.springframework.jdbc.support.GeneratedKeyHolder;
import  org.springframework.jdbc.support.KeyHolder;

public   class  UserDAO
{
    JdbcTemplate jt;
    
    
public UserDAO()
    
{
        
this.jt = this.getJdbcTemplate2();
    }

    
    
public JdbcTemplate getJdbcTemplate2()
    
{
        String configPath 
= "hvp/spring/jdbc/jdbctemp/beans.xml";
        ApplicationContext ctx 
= new ClassPathXmlApplicationContext(configPath);
        
return (JdbcTemplate) ctx.getBean("jdbcTemplate");
    }

    
    
public void createTable()
    
{
        StringBuffer sql 
= new StringBuffer();
        sql.append(
"CREATE TABLE t_user(");
        sql.append(
"user_id int AUTO_INCREMENT PRIMARY KEY,");
        sql.append(
"user_name VARCHAR(32)");
        sql.append(
")");
        jt.execute(sql.toString());
    }

    
    
public UserPO addUser(final UserPO po)
    
{
        
final String sql = "INSERT INTO t_user(user_name) VALUES (?)";
        KeyHolder keyHolder 
= new GeneratedKeyHolder();
        jt.update(
new PreparedStatementCreator()
            
{
                
public PreparedStatement createPreparedStatement(Connection conn)
                        
throws SQLException
                
{
                    PreparedStatement ps 
= conn.prepareStatement(sql);
                    ps.setString(
1, po.getUserName());
                    
return ps;
                }

            }
, keyHolder);
        po.setUserId(keyHolder.getKey().intValue());
        System.out.println(po.getUserId() 
+ ":" + po.getUserName());
        
return po;
    }

    
    @SuppressWarnings(
"unchecked")
    
public List<UserPO> queryUserPOs()
    
{
        StringBuffer sql 
= new StringBuffer();
        sql.append(
"SELECT user_id,user_name FROM t_user");
        sql.append(
" LIMIT ");
        sql.append(
0);
        sql.append(
",");
        sql.append(
10);
        
        
return jt.query(sql.toString(), new RowMapper()
            
{
                
public Object mapRow(ResultSet rs, int index)
                        
throws SQLException
                
{
                    UserPO userPO 
= new UserPO();
                    userPO.setUserId(rs.getInt(
"user_id"));
                    userPO.setUserName(rs.getString(
"user_name"));
                    
return userPO;
                }

            }
);
    }

    
    
public UserPO findUser(Integer userId)
    
{
        String sql 
= "SELECT user_id,user_name FROM t_user WHERE user_id=?";
        
return (UserPO) jt.queryForObject(sql, new Object[] { userId },
                
new RowMapper()
                    
{
                        
public Object mapRow(ResultSet rs, int index)
                                
throws SQLException
                        
{
                            UserPO userPO 
= new UserPO();
                            userPO.setUserId(rs.getInt(
"user_id"));
                            userPO.setUserName(rs.getString(
"user_name"));
                            
return userPO;
                        }

                    }
);
    }

    
    
public int getCount()
    
{
        String sql 
= "SELECT COUNT(*) FROM t_user";
        
return jt.queryForInt(sql);
    }

    
    
public static void main(String[] args)
    
{
        UserDAO ct 
= new UserDAO();
        
// UserPO user = new UserPO();
        
// user.setUserName("Huy Vanlee");
        
// ct.addUser(user);
        System.out.println(ct.queryUserPOs());
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值