Spring七大模块之DAO(上)

来源:互联网 发布:java 淘淘商城 编辑:程序博客网 时间:2024/05/21 17:57

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 (下) 会讲到事务。

原创粉丝点击