spring3jdbctemplate注解实例(有时间字段转换的⽅法).第⼀步,先引⼊需要的包,这⾥不作详细说明
第⼆步,配置注解扫描,txManager是事务管理提供datasource就可以了
[java]
1. <aop:aspectj-autoproxy />
2.
3.    <!-- transaction manager, use JtaTransactionManager for global tx -->
4.    <bean id="txManager"
5.        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
6.        <property name="dataSource" ref="dynamicDataSource" />
7.    </bean>
8.
9.    <!--
10.        enable component scanning (beware that this does not enable mapper
11.        scanning!)
12.    -->
13.    <context:component-scan base-package="com.shadow" />
14.
15.    <!-- enable autowire -->
16.    <context:annotation-config />
17.
18.    <!-- enable transaction demarcation with annotations -->
19.    <tx:annotation-driven transaction-manager="txManager" />
第三步,配置jdbctemplate的实例,同样提供⼀个datasource就可以了
[java]
1. <!-- JDBC模板 -->
2.    <bean id="jdbcTemplate"
3.        class="org.JdbcTemplate">
4.        <property name="dataSource" ref="dynamicDataSource" />
5.    </bean>
第四步,写个BaseDao⽅便下⾯的dao层调⽤,由于时间转换经常⽤到,这⾥只写了个通⽤的时间转换
[java]
1. /**
2.  *
3.  * @author shadow
4.  * @email 124010356@qq
5.  * @create 2012.04.28
6.  *
7.  * @param <T>
7.  * @param <T>
8.  */
9. public abstract class AbstractBaseDao<T> implements DateFormatEntry {
10.
11.    // SPRING JDBC模板接⼝
12.    private JdbcTemplate jdbcTemplate;
13.
14.    public JdbcTemplate getJdbcTemplate() {
15.        return jdbcTemplate;
16.    }
17.
18.    @Resource
19.    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
20.        this.jdbcTemplate = jdbcTemplate;
21.    }
22.
23.    /**
24.      * 获取⽇期
25.      *
26.      * @param timestamp
27.      * @return Date
28.      */
29.    public Date getDate(Timestamp timestamp) {
30.        return toDate(timestamp, null);
31.    }
32.
33.    /**
34.      * 获取⽇期
35.      *
36.      * @param timestamp
37.      * @param format
38.      * @return Date
39.      */
40.    public Date getDate(Timestamp timestamp, String format) {
41.        return toDate(timestamp, format);
42.    }
43.
44.    /**
45.      * Timestamp按格式转换成Date
46.      *
47.      * @param timestamp
48.      * @param format
49.      * @return Date
50.      */
51.    public Date toDate(Timestamp timestamp, String format) {
52.        Date date = null;
53.        if (null == format || "".equals(format))
54.            format = DEFAULT_FORMAT;
55.        SimpleDateFormat sdf = new SimpleDateFormat(format);
56.        try {
57.            date = sdf.parse(sdf.format(timestamp));
58.        } catch (ParseException e) {
59.            e.printStackTrace();
60.        }
61.        return date;
62.    }
63.
64. }
第五步,写个UserDao接⼝跟实现类
[java]
1. public interface UserDao {
2.
3.    public List<User> queryByUserName(String username);
4.
5.    public int checkUser(String username);
6.
7.    public List<User> queryForAll();
8.
9. }
这⾥使⽤@Component("userDao"),相当于在xml配置⾥做⼀个<bean id="userDao" class="xxxxxx.UserDaoImpl"/>,然后我们在service调⽤就直接Resource("userDao")就能⾃动匹配这个实现类了
1. @Component("userDao")
2. public class UserDaoImpl extends AbstractBaseDao<User> implements UserDao {
3.
4.    public int checkUser(String username) {
5.        // TODO Auto-generated method stub
6.        return 0;
7.    }
8.
9.    @SuppressWarnings("unchecked")
10.    public List<User> queryByUserName(String username) {
11.        String sql = "select t1.* from t_user t1 where t1.username = ?";
12.        List<User> list = JdbcTemplate().query(sql,
13.                new Object[] { username }, new UserMapper());
14.        return list;
15.    }
16.
17.    public List<User> queryForAll() {
18.        SqlRowSet rowSet = getJdbcTemplate().queryForRowSet(null);
19.        while (()) {
string转date的方法20.        }
21.        return null;
22.    }
23.
24.    @SuppressWarnings("unchecked")
25.    private class UserMapper implements RowMapper {
26.        public Object mapRow(ResultSet rs, int i) throws SQLException {
27.            User vo = new User();
28.            vo.Int("id"));
29.            vo.String("username"));
30.            vo.String("password"));
31.            vo.String("name"));
32.            return vo;
33.        }
34.    }
35.
36. }
第六步,写service层调⽤dao的⽅法
1. public interface UserService {
2.
3.    /**
4.      * 更新登录信息
5.      *
6.      * @param user
7.      */
8.    public void LoginForUpdate(User user);
9.
10.    /**
11.      * 安全退出功能
12.      *
13.      * @return String
14.      */
15.    public String logout();
16.
17.    /**
18.      * 检测⽤户是否存在
19.      *
20.      * @param username
21.      * @return Boolean
22.      */
23.    public boolean checkUser(String username);
24.
25.    /**
26.      * 通过⽤户名获取账号
27.      *
28.      * @param username
29.      * @return List<User>
30.      */
31.    public List<User> findByUserName(String username);
这⾥使⽤了的@Resource没有带参数就是默认使⽤接⼝类名⾸字母⼩写(例如接⼝是UserDao,默认匹配是userDao),@Transactional是事务的注解,可加各种参数设置,
具体请看帮助⽂档

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。