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小时内删除。
发表评论