当前位置:Gxlcms > 数据库问题 > JDBC面向接口编程

JDBC面向接口编程

时间:2021-07-01 10:21:17 帮助过:13人阅读

cn.code.dao; import cn.code.domain.User; public interface UserDao { public void add(User form); public User find(String username); }

//给出工厂类

  1. <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.dao;
  2. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;
  3. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.InputStream;
  4. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Properties;
  5. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> UserDaoFactory {
  6. </span><span style="color: #0000ff">static</span> Properties props =<span style="color: #0000ff">null</span><span style="color: #000000">;
  7. </span><span style="color: #0000ff">static</span> String impclassname =<span style="color: #0000ff">null</span><span style="color: #000000">;
  8. </span><span style="color: #0000ff">static</span><span style="color: #000000">{
  9. props </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> Properties();
  10. InputStream in </span>= UserDaoFactory.<span style="color: #0000ff">class</span>.getClassLoader().getResourceAsStream("UserDao.properties"<span style="color: #000000">);
  11. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  12. props.load(in);
  13. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException e) {
  14. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  15. <span style="color: #000000"> e.printStackTrace();
  16. }
  17. impclassname </span>= props.getProperty("cn.code.dao.UserDao"<span style="color: #000000">);
  18. }
  19. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span><span style="color: #000000"> UserDao getUserdaoimp(){
  20. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  21. Class clazz </span>=<span style="color: #000000"> Class.forName(impclassname);
  22. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  23. </span><span style="color: #0000ff">return</span><span style="color: #000000"> (UserDao)clazz.newInstance();
  24. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (InstantiationException e) {
  25. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
  26. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IllegalAccessException e) {
  27. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
  28. }
  29. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (ClassNotFoundException e) {
  30. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
  31. }
  32. }
  33. }</span>

//工厂类配置文件

  1. cn.code.dao.UserDao=cn.code.dao.UserDaoImp

//实现类

  1. <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.dao;
  2. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.Connection;
  3. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.PreparedStatement;
  4. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.ResultSet;
  5. </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.SQLException;
  6. </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.DBUtils1.DBUtils1;
  7. </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.domain.User;
  8. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> UserDaoImp <span style="color: #0000ff">implements</span><span style="color: #000000"> UserDao {
  9. @Override
  10. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> add(User form) {
  11. Connection con </span>=<span style="color: #000000"> DBUtils1.getConnection();
  12. PreparedStatement ps </span>=<span style="color: #0000ff">null</span><span style="color: #000000">;
  13. String sql </span>= "INSERT INTO user values(?,?)"<span style="color: #000000">;
  14. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  15. ps </span>=<span style="color: #000000"> con.prepareStatement(sql);
  16. ps.setString(</span>1<span style="color: #000000">,form.getUsername());
  17. ps.setString(</span>2<span style="color: #000000">,form.getPassword());
  18. ps.executeUpdate();
  19. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
  20. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException();
  21. }</span><span style="color: #0000ff">finally</span><span style="color: #000000">{
  22. </span><span style="color: #0000ff">if</span>(ps!=<span style="color: #0000ff">null</span><span style="color: #000000">)
  23. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  24. ps.close();
  25. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
  26. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  27. <span style="color: #000000"> e.printStackTrace();
  28. }
  29. </span><span style="color: #0000ff">if</span>(con!=<span style="color: #0000ff">null</span><span style="color: #000000">)
  30. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  31. con.close();
  32. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
  33. </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
  34. <span style="color: #000000"> e.printStackTrace();
  35. }
  36. }
  37. }
  38. @Override
  39. </span><span style="color: #0000ff">public</span><span style="color: #000000"> User find(String username) {
  40. Connection con </span>=<span style="color: #000000"> DBUtils1.getConnection();
  41. String sql </span>= "select * from user where username=?"<span style="color: #000000">;
  42. </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
  43. PreparedStatement ps </span>=<span style="color: #000000"> con.prepareStatement(sql);
  44. ps.setString(</span>1<span style="color: #000000">,username);
  45. ResultSet rs </span>=<span style="color: #000000"> ps.executeQuery();
  46. </span><span style="color: #0000ff">if</span>(rs==<span style="color: #0000ff">null</span><span style="color: #000000">){
  47. </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
  48. }
  49. </span><span style="color: #0000ff">if</span><span style="color: #000000">(rs.next()){
  50. User user </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> User();
  51. user.setUsername(rs.getString(</span>"username"<span style="color: #000000">));
  52. user.setPassword(rs.getString(</span>"password"<span style="color: #000000">));
  53. </span><span style="color: #0000ff">return</span><span style="color: #000000"> user;
  54. }</span><span style="color: #0000ff">else</span><span style="color: #000000">{
  55. </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
  56. }
  57. } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (SQLException e) {
  58. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span><span style="color: #000000"> RuntimeException(e);
  59. }
  60. }
  61. }</span>

//service层

  1. <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.service;
  2. </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.dao.UserDao;
  3. </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.dao.UserDaoFactory;
  4. </span><span style="color: #0000ff">import</span><span style="color: #000000"> cn.code.domain.User;
  5. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> UserService {
  6. </span><span style="color: #0000ff">private</span> UserDao userDaoImp =<span style="color: #000000"> UserDaoFactory.getUserdaoimp();
  7. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> regist(User user)<span style="color: #0000ff">throws</span><span style="color: #000000"> UserException{
  8. </span><span style="color: #008000">/**</span><span style="color: #008000">
  9. * 使用用户名去查询,如果返回null,完成添加
  10. * 如果返回布市null,抛出异常!
  11. * </span><span style="color: #008000">*/</span><span style="color: #000000">
  12. User u </span>=<span style="color: #000000"> userDaoImp.find(user.getUsername());
  13. </span><span style="color: #0000ff">if</span>(u!=<span style="color: #0000ff">null</span>)<span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("用户名"+user.getUsername()+"已经被注册!"<span style="color: #000000">);
  14. userDaoImp.add(user);
  15. }
  16. </span><span style="color: #0000ff">public</span> User login(User user) <span style="color: #0000ff">throws</span><span style="color: #000000"> UserException {
  17. User u </span>=<span style="color: #000000"> userDaoImp.find(user.getUsername());
  18. </span><span style="color: #0000ff">if</span>(u==<span style="color: #0000ff">null</span>)<span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("用户名不存在!"<span style="color: #000000">);
  19. </span><span style="color: #0000ff">if</span>(!<span style="color: #000000">u.getPassword().equals(user.getPassword())){
  20. </span><span style="color: #0000ff">throw</span> <span style="color: #0000ff">new</span> UserException("密码错误"<span style="color: #000000">);
  21. }
  22. </span><span style="color: #0000ff">return</span><span style="color: #000000"> u;
  23. }
  24. }</span>

//domain层

  1. <span style="color: #0000ff">package</span><span style="color: #000000"> cn.code.domain;
  2. </span><span style="color: #008000">/*</span><span style="color: #008000">
  3. * 实体类
  4. * </span><span style="color: #008000">*/</span>
  5. <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> User {
  6. </span><span style="color: #0000ff">private</span><span style="color: #000000"> String username;
  7. </span><span style="color: #0000ff">private</span><span style="color: #000000"> String password;
  8. </span><span style="color: #0000ff">private</span><span style="color: #000000"> String verifyCode;
  9. @Override
  10. </span><span style="color: #0000ff">public</span><span style="color: #000000"> String toString() {
  11. </span><span style="color: #0000ff">return</span> "User [username=" + username + ", password=" +<span style="color: #000000"> password
  12. </span>+ ", verifyCode=" + verifyCode + "]"<span style="color: #000000">;
  13. }
  14. </span><span style="color: #0000ff">public</span><span style="color: #000000"> User(String username, String password, String verifyCode) {
  15. </span><span style="color: #0000ff">super</span><span style="color: #000000">();
  16. </span><span style="color: #0000ff">this</span>.username =<span style="color: #000000"> username;
  17. </span><span style="color: #0000ff">this</span>.password =<span style="color: #000000"> password;
  18. </span><span style="color: #0000ff">this</span>.verifyCode =<span style="color: #000000"> verifyCode;
  19. }
  20. </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getUsername() {
  21. </span><span style="color: #0000ff">return</span><span style="color: #000000"> username;
  22. }
  23. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setUsername(String username) {
  24. </span><span style="color: #0000ff">this</span>.username =<span style="color: #000000"> username;
  25. }
  26. </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getPassword() {
  27. </span><span style="color: #0000ff">return</span><span style="color: #000000"> password;
  28. }
  29. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setPassword(String password) {
  30. </span><span style="color: #0000ff">this</span>.password =<span style="color: #000000"> password;
  31. }
  32. </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getVerifyCode() {
  33. </span><span style="color: #0000ff">return</span><span style="color: #000000"> verifyCode;
  34. }
  35. </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> setVerifyCode(String verifyCode) {
  36. </span><span style="color: #0000ff">this</span>.verifyCode =<span style="color: #000000"> verifyCode;
  37. }
  38. </span><span style="color: #0000ff">public</span><span style="color: #000000"> User() {
  39. }
  40. }</span>

 

JDBC面向接口编程

标签:this   als   form   完成   input   resource   exception   ati   find   

人气教程排行