Chinaunix首页 | 论坛 | 博客
  • 博客访问: 203132
  • 博文数量: 73
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 750
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 18:32
文章分类

全部博文(73)

文章存档

2009年(1)

2008年(72)

我的朋友

分类: Java

2008-03-24 17:54:19

  以对象的方式对数据进行操作。

#数据操作的接口及其实现类
package com.biaoflying;

import java.util.List;

public interface IUserDAO {
    public void insert(User user);
    public List allUser();
    public int count();
}
#UserDAO.java
package com.biaoflying;

import java.util.List;
import javax.sql.DataSource;

import org.springframework.jdbc.object.SqlFunction;
import org.springframework.jdbc.object.SqlQuery;
import org.springframework.jdbc.object.SqlUpdate;

public class UserDAO implements IUserDAO {

    private SqlUpdate userUpdate;
    private SqlQuery userQuery;
    private SqlFunction userFunction;
   
    public void setDataSource(DataSource dataSource){
        userUpdate=new UserUpdate(dataSource);
        userQuery=new UserQuery(dataSource);
        userFunction=new UserFunction(dataSource);
    }
    public List allUser() {
        // TODO Auto-generated method stub
        return userQuery.execute();
    }

    @Override
    public int count() {
        // TODO Auto-generated method stub
        return userFunction.run();
    }

    @Override
    public void insert(User user) {
        // TODO Auto-generated method stub
        userUpdate.update(
                new Object[]{user.getName(),user.getAge()});
    }
}

#使用org.springframework.jdbc.object包中的类实现对象导向方式的数据操作。
#UserFunction.java
package com.biaoflying;

import javax.sql.DataSource;
import org.springframework.jdbc.object.SqlFunction;

public class UserFunction extends SqlFunction{
    public UserFunction(DataSource dataSource){
        super(dataSource,"SELECT COUNT(*) from user");
        compile();
    }
}
#UserUpdate.java
package com.biaoflying;

import java.sql.Types;
import javax.sql.DataSource;
import org.springframework.jdbc.object.SqlUpdate;

public class UserUpdate extends SqlUpdate{
    public UserUpdate(DataSource dataSource){
        super(dataSource,
                "INSERT INTO user (name,age) VALUES(?,?)");
        int[] types={Types.VARCHAR,Types.INTEGER};
        setTypes(types);
        compile();
    }
}
#UserQuery.java
package com.biaoflying;

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;

import org.springframework.jdbc.object.MappingSqlQuery;

public class UserQuery extends MappingSqlQuery{
    public UserQuery(DataSource dataSource){
        super(dataSource,"SELECT * FROM user");
        compile();
    }
    protected Object mapRow(ResultSet rs,
            int rowNum)throws SQLException{
        User user=new User();
        user.setId(new Integer(rs.getInt("id")));
        user.setName(rs.getString("name"));
        user.setAge(new Integer(rs.getInt("age")));
       
        return user;
    }
}

#操作对象User.java
package com.biaoflying;

public class User {
    private Integer id,age;
    private String name;
    public Integer getId(){
        return id;
    }
    public void setId(Integer id){
        this.id=id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public Integer getAge(){
        return age;
    }
    public void setAge(Integer age){
        this.age=age;
    }
}

#主程序SpringDAODemo.java
package com.biaoflying;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.
            support.FileSystemXmlApplicationContext;

public class SpringDAODemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext context=
            new FileSystemXmlApplicationContext(
                    "beans-config.xml");
       
        User user=new User();
        user.setName("king1985");
        user.setAge(new Integer(24));
       
        IUserDAO userDAO=(IUserDAO)context.getBean("userDAO");
       
        userDAO.insert(user);
        System.out.println("笔数: "+userDAO.count());
       
        List list=userDAO.allUser();
        for(int i=0;i            User next=(User)list.get(i);
            System.out.println("\n\tId:\t"+next.getId());
            System.out.println("\tName:\t"+next.getName());
            System.out.println("\tAge:\t"+next.getAge());
        }
    }
}

#beans-config.xml文件

 "">
 

             destroy-method="close">
       
            com.mysql.jdbc.Driver
       

       
            jdbc:mysql://localhost:3306/demo
       

       
            root
       

       
            602436
       

   

   
       
           
       

   
   


执行主程序的输出:
    笔数: 3

    Id:    1
    Name:    abio
    Age:    22

    Id:    2
    Name:    biaoflying
    Age:    22

    Id:    3
    Name:    king1985
    Age:    24


阅读(689) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~