Java经典封装JDBC模板(充分体现面向对象思想)

来源:互联网 发布:mp4视频字幕合并 mac 编辑:程序博客网 时间:2024/05/16 17:21

程序清单一览


bean类

[html] view plain copy
print?
  1. package com.software.usermanager.bean;  
  2.   
  3. public class Users {  
  4.     private String id;  
  5.     private String name;  
  6.     private String age;  
  7.     public String getId() {  
  8.         return id;  
  9.     }  
  10.     public void setId(String id) {  
  11.         this.id = id;  
  12.     }  
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.     public void setName(String name) {  
  17.         this.name = name;  
  18.     }  
  19.     public String getAge() {  
  20.         return age;  
  21.     }  
  22.     public void setAge(String age) {  
  23.         this.age = age;  
  24.     }  
  25.       
  26.   
  27. }  
package com.software.usermanager.bean;public class Users {    private String id;    private String name;    private String age;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }}

dao类

[html] view plain copy
print?
  1. package com.software.usermanager.dao;  
  2.   
  3.   
  4. import com.software.usermanager.bean.Users;  
  5. import com.software.usermanager.util.PageModel;  
  6. import java.util.List;  
  7.   
  8. public interface UsersDAO {  
  9.     public boolean insert(Users user);  //增  
  10.     public boolean delete(String id);   //单条删除  
  11.     public boolean delete(String[] userIds);  //批量删除  
  12.     public boolean update(Users user);  //修改  
  13.     public List<Users> query();     //全部查询  
  14.     public Users query(String id);  //单记录查询  
  15.     public PageModel query(int pageNo, int pageSize); //分页查询  
  16.     public PageModel query(int pageNo, int pageSize,String condition); //分页模糊查询  
  17.     public boolean Login(String name,String password); //登录  
  18.   
  19. }  
package com.software.usermanager.dao;import com.software.usermanager.bean.Users;import com.software.usermanager.util.PageModel;import java.util.List;public interface UsersDAO {    public boolean insert(Users user);  //增    public boolean delete(String id);   //单条删除    public boolean delete(String[] userIds);  //批量删除    public boolean update(Users user);  //修改    public List<Users> query();     //全部查询    public Users query(String id);  //单记录查询    public PageModel query(int pageNo, int pageSize); //分页查询    public PageModel query(int pageNo, int pageSize,String condition); //分页模糊查询    public boolean Login(String name,String password); //登录}

daoimpl类

[html] view plain copy
print?
  1. package com.software.usermanager.dao;  
  2. import com.software.usermanager.util.OptTemplate;  
  3. import java.sql.ResultSet;  
  4. import java.util.List;  
  5.   
  6. import com.software.usermanager.bean.Users;  
  7. import com.software.usermanager.util.*;  
  8.   
  9. public class UsersDAOImpl implements UsersDAO {  
  10.   
  11.     private OptTemplate optTemplate = null;  
  12.   
  13.     public UsersDAOImpl(OptTemplate optTemplate) {  
  14.         super();  
  15.         this.optTemplate = optTemplate;  
  16.     }  
  17.     public boolean Login(String name, String password) {  
  18.         // TODO Auto-generated method stub  
  19.         return false;  
  20.     }  
  21.   
  22.     public boolean delete(String id) {  
  23.         String sql = “delete from users where id=?”;  
  24.         Object[] obj = { id };  
  25.         return optTemplate.update(sql, obj, false);  
  26.     }  
  27.   
  28.     public boolean delete(String[] userIds) {  
  29.         StringBuffer sbStr = new StringBuffer();  
  30.         Object[] obj = userIds;  
  31.         ;  
  32.         for (int i = 0; i < userIds.length; i++) {  
  33.             sbStr.append(“?,”);  
  34.         }  
  35.         String sql = “delete from users where id in(“  
  36.                 + sbStr.substring(0, sbStr.length() - 1) + ”)”;  
  37.         return optTemplate.update(sql, obj, false);  
  38.     }  
  39.   
  40.     public boolean insert(Users user) {  
  41.         String sql = “insert into users(id,name,age) values(?,?,?)”;  
  42.         Object[] obj = {user.getId(),user.getName(),user.getAge()};  
  43.         return optTemplate.update(sql, obj, false);  
  44.     }  
  45.   
  46.     @SuppressWarnings(“unchecked”)  
  47.     public List<Users> query() {  
  48.         String sql = “select * from users”;  
  49.         Object[] obj = {};  
  50.         return (List<Users>) optTemplate.query(sql, obj, new UsersDAOObjectMapper());  
  51.           
  52.     }  
  53.   
  54.     public Users query(String id) {  
  55.         String sql = “select * from users”;  
  56.         Object[] obj = {};  
  57.         return (Users) optTemplate.query(sql, obj, new UsersDAOObjectMapper()).get(0);  
  58.     }  
  59.   
  60.     public PageModel query(int pageNo, int pageSize) {  
  61.         String sql1 = “select * from users”;  
  62.         Object[] obj1 = {};  
  63.         List<Users> list1 = (List<Users>) optTemplate.query(sql1, obj1,  
  64.                 new UsersDAOObjectMapper());  
  65.         int i = list1.size();  
  66.         String sql=“select * from (select j.*,rownum rn from (select * from users) j where rownum<=?) where rn>?”;  
  67.         Object[] obj = {pageNo * pageSize, (pageNo - 1) * pageSize};  
  68.         List<Users> list = (List<Users>) optTemplate.query(sql, obj,  
  69.                 new UsersDAOObjectMapper());  
  70.         PageModel pagemodel = new PageModel();  
  71.         pagemodel.setPageNo(pageNo);  
  72.         pagemodel.setPageSize(pageSize);  
  73.         pagemodel.setList(list);  
  74.         pagemodel.setTotalRecords(i);  
  75.         return pagemodel;  
  76.     }  
  77.   
  78.     public PageModel query(int pageNo, int pageSize, String condition) {  
  79.         String sql1 = “select * from users”;  
  80.         Object[] obj1 = {};  
  81.         List<Users> list1 = (List<Users>) optTemplate.query(sql1, obj1,  
  82.                 new UsersDAOObjectMapper());  
  83.         int i = list1.size();  
  84.         String sql=“select * from (select j.*,rownum rn from (select * from users where id like ’”+condition+”%’ or name like ’”+condition+”%’) j where rownum<=?) where rn>?”;  
  85.         Object[] obj = {pageNo * pageSize, (pageNo - 1) * pageSize};  
  86.         List<Users> list = (List<Users>) optTemplate.query(sql, obj,  
  87.                 new UsersDAOObjectMapper());  
  88.         PageModel pagemodel = new PageModel();  
  89.         pagemodel.setPageNo(pageNo);  
  90.         pagemodel.setPageSize(pageSize);  
  91.         pagemodel.setList(list);  
  92.         pagemodel.setTotalRecords(i);  
  93.         return pagemodel;  
  94.     }  
  95.   
  96.     public boolean update(Users user) {  
  97.         String sql = “update users set name=?,age=? where id=?”;  
  98.         Object[] obj = {user.getName(),user.getAge(),user.getId()};  
  99.         return optTemplate.update(sql, obj, false);  
  100.     }  
  101.   
  102.   
  103. }  
  104. class UsersDAOObjectMapper implements ObjectMapper{  
  105.     public Object mapping(ResultSet rs){  
  106.         Users u=new Users();      
  107.             try{  
  108.                   
  109.                 u.setId(rs.getString(“id”));  
  110.                 u.setName(rs.getString(“age”));  
  111.                 u.setName(rs.getString(“name”));  
  112.   
  113.                   
  114.             }catch(Exception ex){  
  115.                 ex.printStackTrace();  
  116.             }  
  117.   
  118.         return u;  
  119.     }  
  120.       
  121. }  
package com.software.usermanager.dao;import com.software.usermanager.util.OptTemplate;import java.sql.ResultSet;import java.util.List;import com.software.usermanager.bean.Users;import com.software.usermanager.util.*;public class UsersDAOImpl implements UsersDAO {    private OptTemplate optTemplate = null;    public UsersDAOImpl(OptTemplate optTemplate) {        super();        this.optTemplate = optTemplate;    }    public boolean Login(String name, String password) {        // TODO Auto-generated method stub        return false;    }    public boolean delete(String id) {        String sql = "delete from users where id=?";        Object[] obj = { id };        return optTemplate.update(sql, obj, false);    }    public boolean delete(String[] userIds) {        StringBuffer sbStr = new StringBuffer();        Object[] obj = userIds;        ;        for (int i = 0; i < userIds.length; i++) {            sbStr.append("?,");        }        String sql = "delete from users where id in("                + sbStr.substring(0, sbStr.length() - 1) + ")";        return optTemplate.update(sql, obj, false);    }    public boolean insert(Users user) {        String sql = "insert into users(id,name,age) values(?,?,?)";        Object[] obj = {user.getId(),user.getName(),user.getAge()};        return optTemplate.update(sql, obj, false);    }    @SuppressWarnings("unchecked")    public List<Users> query() {        String sql = "select * from users";        Object[] obj = {};        return (List<Users>) optTemplate.query(sql, obj, new UsersDAOObjectMapper());    }    public Users query(String id) {        String sql = "select * from users";        Object[] obj = {};        return (Users) optTemplate.query(sql, obj, new UsersDAOObjectMapper()).get(0);    }    public PageModel query(int pageNo, int pageSize) {        String sql1 = "select * from users";        Object[] obj1 = {};        List<Users> list1 = (List<Users>) optTemplate.query(sql1, obj1,                new UsersDAOObjectMapper());        int i = list1.size();        String sql="select * from (select j.*,rownum rn from (select * from users) j where rownum<=?) where rn>?";        Object[] obj = {pageNo * pageSize, (pageNo - 1) * pageSize};        List<Users> list = (List<Users>) optTemplate.query(sql, obj,                new UsersDAOObjectMapper());        PageModel pagemodel = new PageModel();        pagemodel.setPageNo(pageNo);        pagemodel.setPageSize(pageSize);        pagemodel.setList(list);        pagemodel.setTotalRecords(i);        return pagemodel;    }    public PageModel query(int pageNo, int pageSize, String condition) {        String sql1 = "select * from users";        Object[] obj1 = {};        List<Users> list1 = (List<Users>) optTemplate.query(sql1, obj1,                new UsersDAOObjectMapper());        int i = list1.size();        String sql="select * from (select j.*,rownum rn from (select * from users where id like '"+condition+"%' or name like '"+condition+"%') j where rownum<=?) where rn>?";        Object[] obj = {pageNo * pageSize, (pageNo - 1) * pageSize};        List<Users> list = (List<Users>) optTemplate.query(sql, obj,                new UsersDAOObjectMapper());        PageModel pagemodel = new PageModel();        pagemodel.setPageNo(pageNo);        pagemodel.setPageSize(pageSize);        pagemodel.setList(list);        pagemodel.setTotalRecords(i);        return pagemodel;    }    public boolean update(Users user) {        String sql = "update users set name=?,age=? where id=?";        Object[] obj = {user.getName(),user.getAge(),user.getId()};        return optTemplate.update(sql, obj, false);    }}class UsersDAOObjectMapper implements ObjectMapper{    public Object mapping(ResultSet rs){        Users u=new Users();                try{                u.setId(rs.getString("id"));                u.setName(rs.getString("age"));                u.setName(rs.getString("name"));            }catch(Exception ex){                ex.printStackTrace();            }        return u;    }}

util类

[html] view plain copy
print?
  1. package com.software.usermanager.util;  
  2. import java.sql.Connection;  
  3. import java.sql.PreparedStatement;  
  4. import java.sql.ResultSet;  
  5. import java.sql.SQLException;  
  6. import java.sql.Statement;  
  7. import java.util.ArrayList;  
  8. import java.util.List;  
  9.   
  10. import com.software.usermanager.db.DBConnection;  
  11.   
  12. public class OptTemplate {  
  13.     public Object find(String sql,Object[] obj,ObjectMapper mapper){  
  14.         Object o=null;  
  15.         Connection conn=null;  
  16.         PreparedStatement pstmt=null;  
  17.         try{  
  18.             conn=DBConnection.getConn();  
  19.             pstmt=conn.prepareStatement(sql);  
  20.             for(int i=0;i<obj.length;i++){  
  21.                 pstmt.setObject(i+1, obj[i]);  
  22.                 ResultSet rs=pstmt.executeQuery();  
  23.                 if(rs.next()){  
  24.                     o=mapper.mapping(rs);  
  25.                 }  
  26.             }  
  27.             }catch(Exception ex){  
  28.                 ex.printStackTrace();  
  29.             }finally{  
  30.                 try{  
  31.                     pstmt.close();  
  32.                     conn.close();  
  33.                 }catch(SQLException ex){  
  34.                     ex.printStackTrace();  
  35.                 }  
  36.             }  
  37.             return o;  
  38.         }  
  39.   
  40.     public List<? extends Object> query(String sql,Object[] obj,ObjectMapper mapper){  
  41.         Object o=null;  
  42.         List<Object> list=new ArrayList<Object>();  
  43.         Connection conn=null;  
  44.         PreparedStatement pstmt=null;  
  45.         try{  
  46.             conn=DBConnection.getConn();  
  47.             pstmt=conn.prepareStatement(sql);  
  48.             for(int i=0;i<obj.length;i++){  
  49.                 pstmt.setObject(i+1, obj[i]);  
  50.             }  
  51.                 ResultSet rs=pstmt.executeQuery();  
  52.   
  53.                 while(rs.next()){  
  54.                       
  55.                     o=mapper.mapping(rs);  
  56.                     list.add(o);  
  57.                 }  
  58.               
  59.               
  60.         }catch(SQLException ex){  
  61.             ex.printStackTrace();  
  62.         }finally{  
  63.             try{  
  64.                 pstmt.close();  
  65.                 conn.close();  
  66.             }catch(SQLException ex){  
  67.                 ex.printStackTrace();  
  68.             }  
  69.         }  
  70.         return list;  
  71.     }  
  72.     public boolean update(String sql,Object[] obj,boolean isGenerateKey){  
  73.         Connection conn=null;  
  74.         PreparedStatement pstmt=null;  
  75.         boolean bFlag=false;  
  76.         try{  
  77.             conn=DBConnection.getConn();  
  78.             pstmt=isGenerateKey ? conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS):conn.prepareStatement(sql);  
  79.             for(int i=0;i<obj.length;i++){  
  80.                 pstmt.setObject(i+1, obj[i]);  
  81.             }  
  82.             conn.setAutoCommit(false);  
  83.             int i=pstmt.executeUpdate();  
  84.             conn.commit();  
  85.             if(i>0)  
  86.                 bFlag=true;  
  87.         }catch(SQLException ex){  
  88.             ex.printStackTrace();  
  89.         }finally{  
  90.             try{  
  91.                 conn.close();  
  92.                 pstmt.close();  
  93.                   
  94.             }catch(SQLException ex){  
  95.                 ex.printStackTrace();  
  96.             }  
  97.         }  
  98.         return bFlag;  
  99.     }  
  100.       
  101.   
  102. }  
package com.software.usermanager.util;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import com.software.usermanager.db.DBConnection;public class OptTemplate {    public Object find(String sql,Object[] obj,ObjectMapper mapper){        Object o=null;        Connection conn=null;        PreparedStatement pstmt=null;        try{            conn=DBConnection.getConn();            pstmt=conn.prepareStatement(sql);            for(int i=0;i<obj.length;i++){                pstmt.setObject(i+1, obj[i]);                ResultSet rs=pstmt.executeQuery();                if(rs.next()){                    o=mapper.mapping(rs);                }            }            }catch(Exception ex){                ex.printStackTrace();            }finally{                try{                    pstmt.close();                    conn.close();                }catch(SQLException ex){                    ex.printStackTrace();                }            }            return o;        }    public List<? extends Object> query(String sql,Object[] obj,ObjectMapper mapper){        Object o=null;        List<Object> list=new ArrayList<Object>();        Connection conn=null;        PreparedStatement pstmt=null;        try{            conn=DBConnection.getConn();            pstmt=conn.prepareStatement(sql);            for(int i=0;i<obj.length;i++){                pstmt.setObject(i+1, obj[i]);            }                ResultSet rs=pstmt.executeQuery();                while(rs.next()){                    o=mapper.mapping(rs);                    list.add(o);                }        }catch(SQLException ex){            ex.printStackTrace();        }finally{            try{                pstmt.close();                conn.close();            }catch(SQLException ex){                ex.printStackTrace();            }        }        return list;    }    public boolean update(String sql,Object[] obj,boolean isGenerateKey){        Connection conn=null;        PreparedStatement pstmt=null;        boolean bFlag=false;        try{            conn=DBConnection.getConn();            pstmt=isGenerateKey ? conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS):conn.prepareStatement(sql);            for(int i=0;i<obj.length;i++){                pstmt.setObject(i+1, obj[i]);            }            conn.setAutoCommit(false);            int i=pstmt.executeUpdate();            conn.commit();            if(i>0)                bFlag=true;        }catch(SQLException ex){            ex.printStackTrace();        }finally{            try{                conn.close();                pstmt.close();            }catch(SQLException ex){                ex.printStackTrace();            }        }        return bFlag;    }}

分页封装类

[html] view plain copy
print?
  1. package com.software.usermanager.util;  
  2.   
  3. import java.util.List;  
  4.   
  5. public class PageModel<T> {  
  6.       
  7.     //结果集  
  8.     private List<T> list;  
  9.       
  10.     //记录数  
  11.     private int totalRecords;  
  12.       
  13.     //每页多少条数据  
  14.     private int pageSize;  
  15.       
  16.     //第几页  
  17.     private int pageNo;  
  18.   
  19.     /**  
  20.      * 返回总页数  
  21.      * @return  
  22.      */  
  23.     public int getTotalPages() {  
  24.         return (totalRecords + pageSize - 1) / pageSize;  
  25.     }  
  26.       
  27.     /**  
  28.      * 首页  
  29.      * @return  
  30.      */  
  31.     public int getTopPageNo() {  
  32.         return 1;  
  33.     }  
  34.       
  35.     /**  
  36.      * 上一页   
  37.      * @return  
  38.      */  
  39.     public int getPreviousPageNo() {  
  40.         if (this.pageNo <= 1) {  
  41.             return 1;  
  42.         }  
  43.         return this.pageNo - 1;  
  44.     }  
  45.       
  46.     /**  
  47.      * 下一页  
  48.      * @return  
  49.      */  
  50.     public int getNextPageNo() {  
  51.         if (this.pageNo >= getButtomPageNo()) {  
  52.             return getButtomPageNo();  
  53.         }  
  54.         return this.pageNo + 1;  
  55.     }  
  56.       
  57.     /**  
  58.      * 尾页  
  59.      * @return  
  60.      */  
  61.     public int getButtomPageNo() {  
  62.         return getTotalPages();  
  63.     }  
  64.       
  65.     public List<T> getList() {  
  66.         return list;  
  67.     }  
  68.   
  69.     public void setList(List<T> list) {  
  70.         this.list = list;  
  71.     }  
  72.   
  73.     public int getTotalRecords() {  
  74.         return totalRecords;  
  75.     }  
  76.   
  77.     public void setTotalRecords(int totalRecords) {  
  78.         this.totalRecords = totalRecords;  
  79.     }  
  80.   
  81.     public int getPageSize() {  
  82.         return pageSize;  
  83.     }  
  84.   
  85.     public void setPageSize(int pageSize) {  
  86.         this.pageSize = pageSize;  
  87.     }  
  88.   
  89.     public int getPageNo() {  
  90.         return pageNo;  
  91.     }  
  92.   
  93.     public void setPageNo(int pageNo) {  
  94.         this.pageNo = pageNo;  
  95.     }  
  96. }  
package com.software.usermanager.util;import java.util.List;public class PageModel<T> {    //结果集    private List<T> list;    //记录数    private int totalRecords;    //每页多少条数据    private int pageSize;    //第几页    private int pageNo;    /**     * 返回总页数     * @return     */    public int getTotalPages() {        return (totalRecords + pageSize - 1) / pageSize;    }    /**     * 首页     * @return     */    public int getTopPageNo() {        return 1;    }    /**     * 上一页      * @return     */    public int getPreviousPageNo() {        if (this.pageNo <= 1) {            return 1;        }        return this.pageNo - 1;    }    /**     * 下一页     * @return     */    public int getNextPageNo() {        if (this.pageNo >= getButtomPageNo()) {            return getButtomPageNo();        }        return this.pageNo + 1;    }    /**     * 尾页     * @return     */    public int getButtomPageNo() {        return getTotalPages();    }    public List<T> getList() {        return list;    }    public void setList(List<T> list) {        this.list = list;    }    public int getTotalRecords() {        return totalRecords;    }    public void setTotalRecords(int totalRecords) {        this.totalRecords = totalRecords;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public int getPageNo() {        return pageNo;    }    public void setPageNo(int pageNo) {        this.pageNo = pageNo;    }}

数据库配置文件dbconf.properties

[html] view plain copy
print?
  1. #oracle连接实例    
  2. driverClass = oracle.jdbc.driver.OracleDriver    
  3. url = jdbc:oracle:thin:@192.168.137.23:1521:orcl    
  4. username = 用户名    
  5. password = 密码    
#oracle连接实例  driverClass = oracle.jdbc.driver.OracleDriver  url = jdbc:oracle:thin:@192.168.137.23:1521:orcl  username = 用户名  password = 密码  

数据库封装类

[html] view plain copy
print?
  1. package com.software.usermanager.db;  
  2.   
  3.   
  4. import java.io.IOException;  
  5. import java.sql.Connection;  
  6. import java.sql.DriverManager;  
  7. import java.sql.SQLException;  
  8. import java.util.Properties;  
  9.   
  10.   
  11. public class DBConnection {  
  12.   
  13.     private static Connection conn = null;  
  14.     private static Properties props = null;  
  15.   
  16.     static {  
  17.         props = new Properties();  
  18.         try {  
  19.             props.load(DBConnection.class.getResourceAsStream(“/dbconf.properties”));  
  20.         } catch (IOException e1) {  
  21.             e1.printStackTrace();  
  22.         }  
  23.         try {  
  24.             Class.forName(props.getProperty(“driverClass”));  
  25.         } catch (ClassNotFoundException e) {  
  26.             e.printStackTrace();  
  27.         }  
  28.     }  
  29.       
  30.   
  31.     public static Connection getConn(){  
  32.         try {  
  33.             conn = DriverManager.getConnection(props.getProperty(“url”), props.getProperty(“username”), props.getProperty(“password”));  
  34.             conn.setAutoCommit(false);  
  35.         } catch (SQLException e) {  
  36.             e.printStackTrace();  
  37.         }  
  38.         return conn;  
  39.     }  
  40.   
  41.       
  42.       
  43.     public void closeConn(){  
  44.         try {  
  45.             if (conn != null)  
  46.                 conn.close();  
  47.         } catch (SQLException e) {  
  48.             e.printStackTrace();  
  49.         }  
  50.           
  51.     }  
  52. }  
package com.software.usermanager.db;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;public class DBConnection {    private static Connection conn = null;    private static Properties props = null;    static {        props = new Properties();        try {            props.load(DBConnection.class.getResourceAsStream("/dbconf.properties"));        } catch (IOException e1) {            e1.printStackTrace();        }        try {            Class.forName(props.getProperty("driverClass"));        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }    public static Connection getConn(){        try {            conn = DriverManager.getConnection(props.getProperty("url"), props.getProperty("username"), props.getProperty("password"));            conn.setAutoCommit(false);        } catch (SQLException e) {            e.printStackTrace();        }        return conn;    }    public void closeConn(){        try {            if (conn != null)                conn.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

junit测试类

[html] view plain copy
print?
  1. package com.software.usermanager.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.software.usermanager.bean.Users;  
  6.   
  7. import org.apache.tomcat.jni.User;  
  8. import org.junit.After;  
  9. import org.junit.Before;  
  10. import org.junit.Test;  
  11.   
  12. import com.software.usermanager.dao.UsersDAO;  
  13. import com.software.usermanager.dao.UsersDAOImpl;  
  14. import com.software.usermanager.db.DBConnection;  
  15. import com.software.usermanager.util.OptTemplate;  
  16. import com.software.usermanager.util.PageModel;  
  17.   
  18. public class UserTest {  
  19.     DBConnection dbConn = null;  
  20.   
  21.     @Before  
  22.     public void setUp() {  
  23.         dbConn = new DBConnection();  
  24.     }  
  25.   
  26.     @After  
  27.     public void tearDown() {  
  28.         dbConn.closeConn();  
  29.   
  30.     }  
  31.     /************测试插入记录***************/  
  32.   
  33. //  @Test  
  34. //  public void testinsert() {  
  35. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  36. //      for(int i=0;i<20;i++){  
  37. //      Users u = new Users();  
  38. //      u.setId(“”+i);  
  39. //      u.setName(“郑六”);  
  40. //      u.setAge(“2”+i);  
  41. //      boolean b=usersdao.insert(u);  
  42. //      if(b==false){  
  43. //          System.out.println(“插入失败”);  
  44. //      }else{  
  45. //          System.out.println(“插入成功”);  
  46. //      }}  
  47. //        
  48. //  
  49. //  }  
  50.     /************测试修改记录***************/  
  51.   
  52. //  @Test  
  53. //  public void testupdate() {  
  54. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  55. //      Users u = new Users();  
  56. //      u.setId(“5”);  
  57. //      u.setName(“郑六”);  
  58. //      u.setAge(“21”);  
  59. //      boolean b=usersdao.update(u);  
  60. //      if(b==false){  
  61. //          System.out.println(“更新失败”);  
  62. //      }else{  
  63. //          System.out.println(“更新成功”);  
  64. //      }  
  65. //        
  66. //  
  67. //  }  
  68.     /************测试删除单条记录***************/  
  69.   
  70. //  @Test  
  71. //  public void testdeleteById() {  
  72. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  73. //      boolean b=usersdao.delete(“2”);  
  74. //      if(b==false){  
  75. //          System.out.println(“删除失败”);  
  76. //      }else{  
  77. //          System.out.println(“删除成功”);  
  78. //      }  
  79. //        
  80. //  }  
  81.     /************测试批量删除记录***************/  
  82. //  
  83. //  @Test  
  84. //  public void testdeleteByArray() {  
  85. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  86. //      String[] s={“3”,”4”,”5”};  
  87. //      boolean b=usersdao.delete(s);  
  88. //      if(b==false){  
  89. //          System.out.println(“删除失败”);  
  90. //      }else{  
  91. //          System.out.println(“删除成功”);  
  92. //      }  
  93. //        
  94. //  }  
  95.     /*********查询全部记录结果集为泛型 ************/  
  96. //  @Test  
  97. //  public void testqueryAll(){  
  98. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  99. //      List<Users> list=usersdao.query();  
  100. //      for(Users u:list){  
  101. //          System.out.println(u.getId());  
  102. //      }  
  103. //  }  
  104.     /*********查询单条记录结果集为对象 ************/  
  105. //  @Test  
  106. //  public void testqueryAll(){  
  107. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  108. //      Users u=usersdao.query(“7”);  
  109. //      System.out.println(u.getName());  
  110. //        
  111. //  }  
  112. //  /*********分页查询全部记录结果集为pagemodel************/  
  113. //  @Test  
  114. //  public void testqueryAll(){  
  115. //      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  116. //      PageModel pml=usersdao.query(2,2);  
  117. //      List<Users> list=pml.getList();  
  118. //      for(Users u:list){  
  119. //          System.out.println(u.getId());  
  120. //      }  
  121. //  }  
  122.     /*********分页模糊查询全部记录结果集为pagemodel************/  
  123.     @Test  
  124.     public void testqueryAll(){  
  125.         UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());  
  126.         PageModel pml=usersdao.query(1,2,”2”);  
  127.         List<Users> list=pml.getList();  
  128.         for(Users u:list){  
  129.             System.out.println(u.getId());  
  130.         }  
  131.     }  
  132.   
  133. }  
package com.software.usermanager.test;import java.util.List;import com.software.usermanager.bean.Users;import org.apache.tomcat.jni.User;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.software.usermanager.dao.UsersDAO;import com.software.usermanager.dao.UsersDAOImpl;import com.software.usermanager.db.DBConnection;import com.software.usermanager.util.OptTemplate;import com.software.usermanager.util.PageModel;public class UserTest {    DBConnection dbConn = null;    @Before    public void setUp() {        dbConn = new DBConnection();    }    @After    public void tearDown() {        dbConn.closeConn();    }    /************测试插入记录***************///  @Test//  public void testinsert() {//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      for(int i=0;i<20;i++){//      Users u = new Users();//      u.setId(""+i);//      u.setName("郑六");//      u.setAge("2"+i);//      boolean b=usersdao.insert(u);//      if(b==false){//          System.out.println("插入失败");//      }else{//          System.out.println("插入成功");//      }}//      ////  }    /************测试修改记录***************///  @Test//  public void testupdate() {//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      Users u = new Users();//      u.setId("5");//      u.setName("郑六");//      u.setAge("21");//      boolean b=usersdao.update(u);//      if(b==false){//          System.out.println("更新失败");//      }else{//          System.out.println("更新成功");//      }//      ////  }    /************测试删除单条记录***************///  @Test//  public void testdeleteById() {//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      boolean b=usersdao.delete("2");//      if(b==false){//          System.out.println("删除失败");//      }else{//          System.out.println("删除成功");//      }//      //  }    /************测试批量删除记录***************/////  @Test//  public void testdeleteByArray() {//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      String[] s={"3","4","5"};//      boolean b=usersdao.delete(s);//      if(b==false){//          System.out.println("删除失败");//      }else{//          System.out.println("删除成功");//      }//      //  }    /*********查询全部记录结果集为泛型 ************///  @Test//  public void testqueryAll(){//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      List<Users> list=usersdao.query();//      for(Users u:list){//          System.out.println(u.getId());//      }//  }    /*********查询单条记录结果集为对象 ************///  @Test//  public void testqueryAll(){//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      Users u=usersdao.query("7");//      System.out.println(u.getName());//      //  }//  /*********分页查询全部记录结果集为pagemodel************///  @Test//  public void testqueryAll(){//      UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());//      PageModel pml=usersdao.query(2,2);//      List<Users> list=pml.getList();//      for(Users u:list){//          System.out.println(u.getId());//      }//  }    /*********分页模糊查询全部记录结果集为pagemodel************/    @Test    public void testqueryAll(){        UsersDAO usersdao = new UsersDAOImpl(new OptTemplate());        PageModel pml=usersdao.query(1,2,"2");        List<Users> list=pml.getList();        for(Users u:list){            System.out.println(u.getId());        }    }}

注意:以下代码非本程序必须代码,仅供自己笔记之用

Filter

[html] view plain copy
print?
  1. package com.software.usermanager.filter;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.Filter;  
  6. import javax.servlet.FilterChain;  
  7. import javax.servlet.FilterConfig;  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.ServletRequest;  
  10. import javax.servlet.ServletResponse;  
  11.   
  12.     public class FilterEncoding implements Filter {  
  13.   
  14.         private String encoding = “utf-8”;  
  15.         public void destroy() {  
  16.   
  17.         }  
  18.   
  19.         public void doFilter(ServletRequest request, ServletResponse response,  
  20.                 FilterChain arg2) throws IOException, ServletException {  
  21.             request.setCharacterEncoding(encoding);  
  22.             response.setCharacterEncoding(encoding);  
  23.             arg2.doFilter(request, response);  
  24.   
  25.         }  
  26.   
  27.         public void init(FilterConfig arg0) throws ServletException {  
  28.             encoding = arg0.getInitParameter(“encoding”);  
  29.         }  
  30.   
  31.     }  
package com.software.usermanager.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;    public class FilterEncoding implements Filter {        private String encoding = "utf-8";        public void destroy() {        }        public void doFilter(ServletRequest request, ServletResponse response,                FilterChain arg2) throws IOException, ServletException {            request.setCharacterEncoding(encoding);            response.setCharacterEncoding(encoding);            arg2.doFilter(request, response);        }        public void init(FilterConfig arg0) throws ServletException {            encoding = arg0.getInitParameter("encoding");        }    }

Listener

[html] view plain copy
print?
  1. package com.software.usermanager.listener;  
  2.   
  3. import java.util.Date;  
  4.   
  5. import javax.servlet.ServletContextEvent;  
  6. import javax.servlet.ServletContextListener;  
  7.   
  8. public class Listener implements ServletContextListener   
  9. {  
  10.     public void contextDestroyed(ServletContextEvent event)   
  11.     {  
  12.         // 销毁记录  
  13.     }  
  14.   
  15.     public void contextInitialized(ServletContextEvent event)   
  16.     {  
  17.         // 记录登录信息  
  18.         Date date = new Date();  
  19.         event.getServletContext().log(date.toString());  
  20.     }  
  21. }  
package com.software.usermanager.listener;import java.util.Date;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class Listener implements ServletContextListener {    public void contextDestroyed(ServletContextEvent event)     {        // 销毁记录    }    public void contextInitialized(ServletContextEvent event)     {        // 记录登录信息        Date date = new Date();        event.getServletContext().log(date.toString());    }}

web.xml配置文件

[html] view plain copy
print?
  1. <?xml version=“1.0” encoding=“UTF-8”?>  
  2. <web-app id=“WebApp_ID” version=“2.4” xmlns=“http://java.sun.com/xml/ns/j2ee” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”>  
  3.     <display-name>xkxt</display-name>  
  4.     <welcome-file-list>  
  5.         <welcome-file>index.jsp</welcome-file>        
  6.     </welcome-file-list>  
  7.       <filter>  
  8.       <filter-name>Encoding</filter-name>  
  9.       <filter-class>com.software.usermanager.FilterEncoding</filter-class>  
  10.    
  11.     <init-param>  
  12.     <param-name>encoding</param-name>  
  13.     <param-value>UTF-8</param-value>  
  14.     </init-param>  
  15.      </filter>  
  16.        <filter-mapping>  
  17.        <filter-name>Encoding</filter-name>  
  18.        <url-pattern>/*</url-pattern>  
  19.   </filter-mapping>  
  20.       
  21.     <listener>  
  22.         <listener-class>com.software.usermanager.Listener</listener-class>  
  23.     </listener>  
  24.     <servlet>  
  25.        <servlet-name>xkxt</servlet-name>  
  26.        <servlet-class>com.software.usermanager.XKXTServlet</servlet-class>  
  27.     </servlet>  
  28.     <servlet-mapping>  
  29.       <servlet-name>xkxt</servlet-name>  
  30.       <url-pattern>/action</url-pattern>  
  31.     </servlet-mapping>  
  32.         <servlet>  
  33.        <servlet-name>querydqm</servlet-name>  
  34.        <servlet-class>com.software.usermanager.DQMServlet</servlet-class>  
  35.     </servlet>  
  36.     <servlet-mapping>  
  37.       <servlet-name>querydqm</servlet-name>  
  38.       <url-pattern>/action</url-pattern>  
  39.     </servlet-mapping>  
  40. </web-app>  
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <display-name>xkxt</display-name>    <welcome-file-list>        <welcome-file>index.jsp</welcome-file>          </welcome-file-list>      <filter>      <filter-name>Encoding</filter-name>      <filter-class>com.software.usermanager.FilterEncoding</filter-class>    <init-param>    <param-name>encoding</param-name>    <param-value>UTF-8</param-value>    </init-param>     </filter>       <filter-mapping>       <filter-name>Encoding</filter-name>       <url-pattern>/*</url-pattern>  </filter-mapping>    <listener>        <listener-class>com.software.usermanager.Listener</listener-class>    </listener>    <servlet>       <servlet-name>xkxt</servlet-name>       <servlet-class>com.software.usermanager.XKXTServlet</servlet-class>    </servlet>    <servlet-mapping>      <servlet-name>xkxt</servlet-name>      <url-pattern>/action</url-pattern>    </servlet-mapping>        <servlet>       <servlet-name>querydqm</servlet-name>       <servlet-class>com.software.usermanager.DQMServlet</servlet-class>    </servlet>    <servlet-mapping>      <servlet-name>querydqm</servlet-name>      <url-pattern>/action</url-pattern>    </servlet-mapping></web-app>


dao类
  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目 价格 Computer $1600 Phone $12 Pipe $1

可以使用冒号来定义对齐方式:

项目 价格 数量 Computer 1600 元 5 Phone 12 元 12 Pipe 1 元 234

定义列表

Markdown Extra 定义列表语法:
项目1
项目2
定义 A
定义 B
项目3
定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:

@requires_authorizationdef somefunc(param1='', param2=0):    '''A docstring'''    if param1 > param2: # interesting        print 'Greater'    return (param2 - param1 + 1) or Noneclass SomeClass:    pass>>> message = '''interpreter... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

    • Markdown及扩展
      • 表格
      • 定义列表
      • 代码块
      • 脚注
      • 目录
      • 数学公式
      • UML 图
    • 离线写博客
    • 浏览器兼容

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为:Γ(n)=(n1)!nN
  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0张三张三李四李四嘿,小四儿, 写博客了没?李四愣了一下,说:忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0开始我的操作确认?结束yesno
  • 关于 序列图 语法,参考 这儿,
  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入


  1. 这里是 脚注内容. ↩
0 0