Spring七大模块之DAO(上)

Spring的Dao模块式Spring框架中对应持久层的解决方式,提供了对JDBC、Hibernate、JDO等DAO层支持。
Spring框架对JDBC进行了封装,完全抛弃了JDBC API。数据库连接、事务等也交给了Spring打点,开发者只需要使用封装好的JdbcTemplate执行SQL语句,然后得到需要的结果。
需要的包:
这里写图片描述
项目目录:
这里写图片描述
User.java

public class User implements Serializable{
    private int uId;     //用户的id
    private String uName;  //用户名
    private String uPassword; //密码

    public User() {
    }

    public User(int uId, String uName, String uPassword) {
        this.uId = uId;
        this.uName = uName;
        this.uPassword = uPassword;
    }
    public int getuId() {
        return uId;
    }
    public void setuId(int uId) {
        this.uId = uId;
    }
    public String getuName() {
        return uName;
    }
    public void setuName(String uName) {
        this.uName = uName;
    }
    public String getuPassword() {
        return uPassword;
    }
    public void setuPassword(String uPassword) {
        this.uPassword = uPassword;
    }
    @Override
    public String toString() {
        return "User [uId=" + uId + ", uName=" + uName + ", uPassword="
                + uPassword + "]";
    }
}

IUserDao.java

public interface IUserDao {
    /**
     * 保存用户数据 
     * @param user
     * @throws Exception 
     */
    public void save(User user) throws Exception;
    /**
     * 删除数据
     * @param user
     */
    public void delete(User user)throws Exception;
    /**
     * 修改数据
     * @param user
     */
    public void update(User user)throws Exception;
    /**
     * 查询数据
     * @param user
     */
    public void query(User user)throws Exception;
}

UserDao.java

public class UserDao implements IUserDao{
    //下面这个就是访问数据库的对象 
    private JdbcTemplate jdbcTemplate;
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }
    @Override
    public void save(User user) throws Exception{
        String sql="insert into t_user(uName,uPassword) values(?,?)";
    jdbcTemplate.update(sql,user.getuName(),user.getuPassword());
    }

    @Override
    public void delete(User user) throws Exception{
        String sql="delete from t_user where uId=?";
        jdbcTemplate.update(sql,user.getuId());
    }

    @Override
    public void update(User user) throws Exception{
        String sql="update t_user set uName=?,uPassword=? where uId=?";
        jdbcTemplate.update(sql,user.getuName(),user.getuPassword(),user.getuId());
    }

    @Override
    public void query(User user) throws Exception{
        String sql="select * from t_user";
        List<User> users=jdbcTemplate.query(sql,new RowMapper<User>(){
            @Override
            public User mapRow(ResultSet set, int number) throws SQLException {
                int uId=set.getInt("uId");
                String uName=set.getString("uName");
                String uPassword=set.getString("uPassword");
                return new User(uId, uName, uPassword);
            }
        });
        System.out.println("数据是:"+users);
    }
}

IUserService.java

public interface IUserService {
    /**
     * 保存用户数据 
     * @param user
     * @throws Exception 
     */
    public void save(User user) throws Exception;
    /**
     * 删除数据
     * @param user
     */
    public void delete(User user)throws Exception;
    /**
     * 修改数据
     * @param user
     */
    public void update(User user)throws Exception;
    /**
     * 查询数据
     * @param user
     */
    public void query(User user)throws Exception;
}

UserService.java

public class UserService implements IUserService{
    private IUserDao userDao=null;
    public void setUserDao(IUserDao userDao) {
        this.userDao = userDao;
    }
    @Override
    public void save(User user) throws Exception {
    if("".equals(user.getuName())||"".equals(user.getuPassword())){
            throw new RuntimeException("参数有问题...");
        }
        userDao.save(user);
    }
    @Override
    public void delete(User user) throws Exception{
        if(user.getuId()<=0){
            throw new RuntimeException("参数有误....");
        }
        userDao.delete(user);
    }
    @Override
    public void update(User user) throws Exception{
        if(user.getuId()<=0){
            throw new RuntimeException("参数有误....");
        }
        userDao.update(user);
    }
    @Override
    public void query(User user) throws Exception {
        userDao.query(user);
    }
}

bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!--配置我们的数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <property name="acquireIncrement" value="2"></property>
      <property name="maxPoolSize" value="100"></property>
      <property name="minPoolSize" value="2"></property>
      <property name="maxStatements" value="100"></property> 
      <!--连接数据库的信息-->
      <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
      <property name="jdbcUrl" value="jdbc:mysql:///test01"></property>
      <property name="user" value="root"></property>
      <property name="password" value="123456"></property>
    </bean>
    <!--dao -->
    <bean id="userDao" class="com.wc.jdbc.dao.impl.UserDao"
        p:jdbcTemplate-ref="jdbcTemplate"></bean>
    <!--Service -->
    <bean id="userService" class="com.wc.jdbc.service.impl.UserService"
        p:userDao-ref="userDao"></bean>
    <!--配置访问数据库的类 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
</beans>

下一章:Spring七大模块之DAO (下) 会讲到事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值