栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

SSH搭建

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSH搭建

Hibernate+Sping+SpringMVC

创建maven项目,选择webapp骨架

配置maven,tomcat

导入依赖
 
      jstl
      jstl
      1.2
    

    
      taglibs
      standard
      1.1.2
    

    
      org.springframework
      spring-web
      4.1.2.RELEASE
      compile
    

    
      org.springframework
      spring-webmvc
      4.1.2.RELEASE
      compile
    

    
      org.springframework
      spring-orm
      4.1.2.RELEASE
    

    
      log4j
      log4j
      1.2.17
    
    
      org.slf4j
      slf4j-api
      1.7.7
    
    
      org.slf4j
      slf4j-log4j12
      1.7.7

      
        
          log4j
          log4j
        
      
    

    
      org.springframework
      spring-tx
      3.1.1.RELEASE
    

    
      org.springframework
      spring-test
      3.1.1.RELEASE
    

    
      org.springframework
      spring-jdbc
      3.1.1.RELEASE
    

      
          junit
          junit
          4.12
          test
      

    
    
      commons-lang
      commons-lang
      2.4
    
    
      commons-logging
      commons-logging
      1.1
    
    
      commons-pool
      commons-pool
      1.5.6
    
    
      commons-dbcp
      commons-dbcp
      1.4
    
    
      commons-beanutils
      commons-beanutils
      1.8.3
    
    
      commons-httpclient
      commons-httpclient
      3.1
    
    
      commons-collections
      commons-collections
      3.1
    
    
      commons-codec
      commons-codec
      1.9
    
    
      javax.annotation
      jsr250-api
      1.0
    

    
      net.sf.ezmorph
      ezmorph
      1.0.6
    
    
      javax.activation
      activation
      1.1
    
    
      taglibs
      standard
      1.1.2
    

    
    
      org.hibernate
      hibernate-core
      4.3.8.Final
    


    
    
      mysql
      mysql-connector-java
      5.1.29
    

    
    
      com.alibaba
      fastjson
      1.2.47
    

配置jdbc.properties
#database connection config
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8
jdbc.username = root
jdbc.password = root

#hibernate config
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true
hibernate.format_sql = true
hibernate.hbm2ddl.auto = update
配置log4j.properties
log4j.rootCategory=warn,logfile,stdout
#stdout configure
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - %m%n


#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=E:/IdeaProjects/sshexecise/xxgl.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= %d %p [%c] - <%m>%n
log4j.logger.com.xysd=DEBUG
配置applicationContext.xml


    
    
        
        
    


    
    

    
    
          
             
           
           
              
               
              
          
    

    
    
        
        
        
            
                ${hibernate.hbm2ddl.auto} 
                ${hibernate.dialect}   
                ${hibernate.show_sql}     
                ${hibernate.format_sql}     
            
        
    

    
    
        
    


配置springMvc.xml



    
    
    
    
    
        
              
           
    


配置web.xml


  Archetype Created Web Application

  
  
    /index.jsp
  

  
  
    contextConfigLocation
    
      classpath:applicationContext.xml
    
  

  
  
    spring
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      
      classpath:springMvc.xml
    
    
    1
  

  
    spring
    /
  
  


  
  
    org.springframework.web.context.ContextLoaderListener
  

  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
    
      forceEncoding
      true
    
  
  
    encodingFilter
    

    public Users getUserByUserId(int id);

    public List get(UserVO userVO);

    public Address getAddress(int id);

    public List getUserIds();

    public List getUsers();

    public void getCount();

    public List queryUsers();

    public void queryUsersIterator();

    public Users getSingleUsers();

    public int updateBingFa(Users users);
}
@Repository
public class UserAddressDaoImpl implements UserAddressDao {

    private static Logger logger = Logger.getLogger(UserAddressDaoImpl.class);

    @Autowired
    private SessionFactory sessionFactory;

    private Session getCurrentSession() {
        return this.sessionFactory.openSession();
    }


    @Override
    public List getUserList(UserVO userVO) {

//        StringBuilder sb = new StringBuilder("select username,email,regTime from Users where 1=1 ");
//        if (StringUtils.isNotBlank(userVO.getUsername())) {
//            sb.append(" and username like %" + userVO.getUsername() + "%");
//        }
//        if (StringUtils.isNotBlank(userVO.getEmail())) {
//            sb.append(" and email like %" + userVO.getEmail() + "%");
//        }
//        List data = getCurrentSession().createQuery(sb.toString()).setFirstResult(1).setMaxResults(5).list();
        return getPage(userVO);
    }

    @Override
    public List getPage(UserVO userVO) {
        Map paramMap = new HashMap<>();
        StringBuilder sb = new StringBuilder("select username,email,regTime from Users where 1=1 ");
        if (StringUtils.isNotBlank(userVO.getUsername())) {
            sb.append(" and username like :username ");
            paramMap.put("username", "%" + userVO.getUsername() + "%");
        }
        if (StringUtils.isNotBlank(userVO.getEmail())) {
            sb.append(" and email like :email ");
            paramMap.put("email","%" + userVO.getEmail() + "%");
        }

        List data = getCurrentSession().createQuery(sb.toString()).setProperties(paramMap)
                .setFirstResult(userVO.getPageNum() - 1)
                .setMaxResults(userVO.getPageSize())
                .list();
        return data;
    }

    @Override
    public int getCount(UserVO userVO) {
        Map paramMap = new HashMap<>();
        StringBuilder sb = new StringBuilder("select count(*) as total from Users where 1=1 ");
        if (StringUtils.isNotBlank(userVO.getUsername())) {
            sb.append(" and username like :username");
            paramMap.put("username", "%" + userVO.getUsername() + "%");
        }
        if (StringUtils.isNotBlank(userVO.getEmail())) {
            sb.append(" and email like :email");
            paramMap.put("email","%" + userVO.getEmail() + "%");
        }
        List list = getCurrentSession().createQuery(sb.toString()).setProperties(paramMap).list();
        return list != null && list.size() > 0 ? Integer.parseInt(list.get(0) + "") : 0;
    }

    @Override
    public int save(Users users) {
//        StringBuilder sql = new StringBuilder("insert into Users(username,password,email,regTime)");
//        getCurrentSession().save(sql.toString(), users);
//        return 0;
        return getCurrentSession()
                .createSQLQuery("insert into cz_user(user_name,email,password,reg_time) value (?,?,?,?)")
                .setString(0,"yu")
                .setString(1,"yu@163.com")
                .setString(2,"888888")
                .setDate(3,new Date())
                .executeUpdate();
    }


    
    @Override
    public int update(Users users) {
//        return getCurrentSession().createQuery("update Users set username =?, password =? where userId =?")
//        .setString(0,users.getUsername())
//        .setString(1,users.getPassword())
//        .setInteger(2,users.getUserId())
//        .executeUpdate();
        return getCurrentSession().createSQLQuery("update cz_user set user_name = ?, password = ? where user_id = ? ")
                .setString(0,"guo")
                .setString(1,"101010")
                .setInteger(2,9)
                .executeUpdate();

    }

    @Override
    public int delete(int userId) {
         return getCurrentSession().createQuery("delete from Users where userId = ? ")
                 .setInteger(0,userId)
                 .executeUpdate();
    }

    
    @Override
    public Users getUserByUserId(int id) {
        String sql = "select u.*,a.* " +
                " from cz_user as u inner join cz_address as a on u.user_id = a.user_id where u.user_id = ?";
        //String sql = "select u.user_name,u.email,a.telphone,a.province from cz_user as u,cz_address as a where u.user_id = a.user_id and u.user_id = ?";
        List data = getCurrentSession().createSQLQuery(sql).addEntity(Users.class).setInteger(0,id).list();
        return data != null && data.size() > 0 ? data.get(0) : null;
    }

    

    @Override
    public List get(UserVO userVO) {
        Map paramMap = new HashMap();
        StringBuilder sb = new StringBuilder("select * from cz_user as u where 1=1 ");
        if (StringUtils.isNotBlank(userVO.getUsername())){
            sb.append(" and u.user_name like :user_name ");
            paramMap.put("user_name","%" + userVO.getUsername() + "%");
        }
        if (StringUtils.isNotBlank(userVO.getEmail())){
            sb.append(" and u.email like ? ");
            paramMap.put("email","%" + userVO.getEmail() + "%");
        }


        return getCurrentSession().createSQLQuery(sb.toString()).addEntity(Users.class).setProperties(paramMap).list();
    }

    @Override
    public Address getAddress(int id) {
        List
list = getCurrentSession().createSQLQuery("select u.*,a.* from cz_user as u,cz_address as a where address_id = ? and a.user_id = u.user_id ").addEntity(Address.class).setInteger(0, 1).list(); return list != null && list.size() > 0 ? list.get(0) : null; } @Override public List getUserIds() { List ids = getCurrentSession() .createSQLQuery("select user_id from cz_user where user_id < ? limit ?,?") .addEntity(Integer.class) .setInteger(0,10) .setInteger(1,0) .setInteger(2,3) .list(); return ids; } public List getUsers() { List ids = getCurrentSession() .createQuery("select userId from Users where userId < ? limit ?,? ") .setInteger(0,10) .setInteger(1,0) .setInteger(2,3) .list(); return ids; } public void getCount(){ Object o = getCurrentSession().createSQLQuery("select count(*) from cz_user").uniqueResult(); Object o1 = getCurrentSession().createSQLQuery("select count(user_name) from cz_user ").uniqueResult(); System.out.println("count : " + o + " , " + "countUsername : " + o1); } @Override public List queryUsers() { List list = getCurrentSession().createSQLQuery("select * from cz_user ").addEntity(Users.class).list(); return list; } @Override public void queryUsersIterator() { Iterator iterate = getCurrentSession().createQuery("from Users ") .iterate(); while (iterate.hasNext()){ Users users = iterate.next(); System.out.println(users); } } @Override public Users getSingleUsers(){ Users users = (Users) getCurrentSession().createQuery(" from Users where userId = 3").uniqueResult(); System.out.println(users); users = (Users) getCurrentSession().get(Users.class,3); logger.warn(users); return users; } @Override public int updateBingFa(Users users) { Session session = getCurrentSession(); session.beginTransaction(); session.createSQLQuery(" update cz_user set user_name = ?,password = ? where user_id = ? ") .setString(0,users.getUsername()) .setString(1,users.getPassword()) .setInteger(2,users.getUserId()) .executeUpdate(); session.getTransaction().commit(); return 1; }
创建service接口及实现类,controller
public interface UserAddressService {

    public List getUserList(UserVO userVO);

    public List getPage(UserVO userVO);

    public int getCount(UserVO userVO);

    public int save(Users users);

    public int update(Users users);

    public int delete(int userId);

    public Users getUsersByUserId(int id);

    public List get(UserVO userVO);
}
@Service
public class UserAddressServiceImpl implements UserAddressService {

    @Autowired
    private UserAddressDao userAddressDao;

    @Override
    public List getUserList(UserVO userVO) {
        return userAddressDao.getUserList(userVO);
    }

    @Override
    public List getPage(UserVO userVO) {
        return userAddressDao.getPage(userVO);
    }

    @Override
    public int getCount(UserVO userVO) {
        return userAddressDao.getCount(userVO);
    }

    @Override
    public int save(Users users) {
        return userAddressDao.save(users);
    }

    @Override
    public int update(Users users) {
        return userAddressDao.update(users);
    }

    @Override
    public int delete(int userId) {
        return userAddressDao.delete(userId);
    }

    @Override
    public Users getUsersByUserId(int id) {
        return userAddressDao.getUserByUserId(id);
    }

    @Override
    public List get(UserVO userVO) {
        return userAddressDao.get(userVO);
    }
}
@Controller
@RequestMapping("/user/address")
public class UserAddressController {

    private static Logger logger = Logger.getLogger(UserAddressController.class);

    @Autowired
    private UserAddressService userAddressService;

    @RequestMapping(value = "/getUserList",produces = "application/json;charset=utf-8")
    @ResponseBody
    public String getUserList(String username,String email){
        UserVO userVO = new UserVO(username,email);
        List userList = userAddressService.getUserList(userVO);
        Map map = new HashMap<>();
        map.put("userList",userList);
        int count = userAddressService.getCount(userVO);
        map.put("total",count);
        logger.warn("total:" + count + " data size : " + userList.size());
        return JSON.toJSONString(map);
    }

    @RequestMapping(value = "/getPage",produces = "application/json;charset=utf-8")
    @ResponseBody
    public String getPage(@RequestParam(required = false) String username,
                          @RequestParam(required = false) String email,
                          @RequestParam(required = false,defaultValue = "1") int pageNum,
                          @RequestParam(required = false,defaultValue = "5") int pageSize){
        UserVO userVO = new UserVO(username,email,pageNum,pageSize);
        List userList = userAddressService.getUserList(userVO);
        Map map = new HashMap<>();
        map.put("userList",userList);
        int count = userAddressService.getCount(userVO);
        map.put("total",count);
        return JSON.toJSONString(map);
    }

    @RequestMapping("/save")
    @ResponseBody
    public String save(){
        Users users = new Users();
        users.setEmail("852@163.com");
        users.setPassword("777777");
        users.setUsername("dan");
        users.setRegTime(new Date());
        int save = userAddressService.save(users);
        return "success";
    }

    @RequestMapping("/update")
    @ResponseBody
    public String update(){
        Users users = new Users();
        //users.setEmail("a18717931963@163.com");
        users.setPassword("222222");
        users.setUserId(1);
        users.setUsername("李金海");
        //users.setRegTime(new Date());
        int save = userAddressService.update(users);
        return "success";
    }


    @RequestMapping("/delete")
    @ResponseBody
    public String delete(){

        int save = userAddressService.delete(1);
        return "success";
    }
}
测试service接口
//指定在单元测试启动的时候创建spring的工厂类对象
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
//RunWith的value属性指定以spring test的SpringJUnit4ClassRunner作为启动类
//如果不指定启动类,默认启用的junit中的默认启动类
@RunWith(value = SpringJUnit4ClassRunner.class)
public class UserAddressServiceTest {

    public static Logger logger = Logger.getLogger(UserAddressServiceTest.class);

    @Autowired
    private UserAddressService userAddressService;

    @Autowired
    UserAddressDao userAddressDao;

    @Test
    public void test(){
        List usersList = userAddressService.getPage(new UserVO("h", null, 1, 2));
        logger.info(usersList.toString());
    }

    @Test
    public void test2(){
        Users usersByUserId = userAddressService.getUsersByUserId(3);
        System.out.println(usersByUserId);
    }

    @Test
    public void get(){
        List h = userAddressService.get(new UserVO("h", null));
        for (Users users : h) {
            System.out.println(users.toString());
        }
    }

    @Test
    public void insert(){
        int save = userAddressService.save(null);
        System.out.println(save);
    }

    @Test
    public void update(){
        int save = userAddressService.update(null);
        System.out.println(save);
    }

    @Test
    public void getAddressTest(){
        Address address = userAddressDao.getAddress(1);
        System.out.println(address.toString());
    }

    @Test
    public void getUserIdsTest(){
//        List userIds = userAddressDao.getUserIds();
//        for (Integer userId : userIds) {
//            System.out.println(userId);
//        }
        List users = userAddressDao.getUsers();
        for (Users user : users) {
            System.out.println(user);
        }
    }

    @Test
    public void testCount(){
        userAddressDao.getCount();
    }

    @Test
    public void queryUsers(){
        List users = userAddressDao.queryUsers();
        System.out.println(users.toString());
    }

    @Test
    public void queryUsersIterator(){
         //userAddressDao.queryUsersIterator();
        Users singleUsers = userAddressDao.getSingleUsers();
        System.out.println(singleUsers);
    }

    @Test
    public void updateBingFaTest(){
        Users users = new Users();
        users.setUserId(3);
        users.setUsername("lizhihuan");
        users.setPassword("000000");
        userAddressDao.updateBingFa(users);
    }

仅供参考使用,项目搭建好之后,可以选择上面的一个方法进行测试,保证service接口测试成功,访问controller接口可以返回数据即可,其他自己根据需要自己编写测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号