package com.kevin.dao;
import com.kevin.entity.User;
import java.util.List;
/**
* Created by kinthon on 17-6-23.
*/
public interface UserDao {
/**
* 添加并保存用户
* @param user
*/
public void add(User user);
/**
* 进行登录
*/
public boolean login(User user);
/**
* 获取用户列表
*/
public List getUser();
/**
* 根据用户Id获取用户信息
* @param id
* @return
*/
public User getUser(int id);
/**
* 更新用户信息
* @param user
*/
public void update(User user);
/**
* 根据用户id删除用户信息
* @param id
*/
public void delete(int id);
}
UserDaoImpl.java 内容
package com.kevin.dao.impl;
import com.kevin.dao.UserDao;
import com.kevin.entity.User;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Iterator;
import java.util.List;
/**
* Created by kinthon on 17-6-23.
*/
@Transactional(rollbackFor = Exception.class)
//出现Exception异常回滚
@Repository("userDao") //进行注入
public class UserDaoImpl implements UserDao {
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
@Override
public void add(User user) {
sessionFactory.getCurrentSession().save(user);
}
@Override
public boolean login(User user) {
Iterator it;
String hsql="FROM User u where u.username=? and u.password=?";
System.out.println(hsql);
Query query = sessionFactory.getCurrentSession().createQuery(hsql);
query.setString(0, user.getUsername());
query.setString(1, user.getPassword());
System.out.println(user.getUsername());
it=query.iterate();
if(it.hasNext()) {
System.out.println("true");
return true;
} else {
System.out.println("false");
return false;
}
}
@Override
public List getUser() {
return sessionFactory.getCurrentSession().createQuery("FROM User").list();
}
@Override
public User getUser(int id) {
return (User)sessionFactory.getCurrentSession().get(User.class, id);
}
@Override
public void update(User user) {
sessionFactory.getCurrentSession().update(user);
}
@Override
public void delete(int id) {
sessionFactory.getCurrentSession().delete(
sessionFactory.getCurrentSession().get(User.class, id)
);
}
}
package com.kevin.service;
import com.kevin.entity.User;
import java.util.List;
/**
* Created by kinthon on 17-6-23.
*/
public interface UserService {
public boolean addUser(User user);
public boolean login(User user);
public List getAllUser();
public User getUserById(int id);
public boolean updateUser(User user);
public boolean deleteUser(int id);
}
UserServiceImpl.java 内容
package com.kevin.service.impl;
import com.kevin.dao.UserDao;
import com.kevin.entity.User;
import com.kevin.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by kinthon on 17-6-23.
*/
//注入服务
@Service("userService")
public class UserServiceImpl implements UserService{
//自动注入userDao,也可以使用@Autowired
@Resource
private UserDao userDao;
@Override
public boolean addUser(User user) {
this.userDao.add(user);
return true;
}
@Override
public boolean login(User user) {
return this.userDao.login(user);
}
@Override
public List getAllUser() {
return this.userDao.getUser();
}
@Override
public User getUserById(int id) {
return this.userDao.getUser(id);
}
@Override
public boolean updateUser(User user) {
this.userDao.update(user);
return true;
}
@Override
public boolean deleteUser(int id) {
this.userDao.delete(id);
return true;
}
}
<%--
Created by IntelliJ IDEA.
User: kinthon
Date: 17-6-23
Time: 下午8:15
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
success.jsp
<%--
Created by IntelliJ IDEA.
User: kinthon
Date: 17-6-25
Time: 下午1:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
success
hello ${user.username}
error.jsp
<%--
Created by IntelliJ IDEA.
User: kinthon
Date: 17-6-25
Time: 下午1:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
.oracle层次查询(connect by)
oracle的emp表中包含了一列mgr指出谁是雇员的经理,由于经理也是雇员,所以经理的信息也存储在emp表中。这样emp表就是一个自引用表,表中的mgr列是一个自引用列,它指向emp表中的empno列,mgr表示一个员工的管理者,
select empno,mgr,ename,sal from e
SAPHANA平台有各种各样的应用场景,这也意味着客户的实施方法有许多种选择,关键是如何挑选最适合他们需求的实施方案。
在 《Implementing SAP HANA》这本书中,介绍了SAP平台在现实场景中的运作原理,并给出了实施建议和成功案例供参考。本系列文章节选自《Implementing SAP HANA》,介绍了行存储和列存储的各自特点,以及SAP HANA的数据存储方式如何提升空间压
学习Java有没有什么捷径?要想学好Java,首先要知道Java的大致分类。自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE
JSF 2.0 introduced annotation @ViewScoped; A bean annotated with this scope maintained its state as long as the user stays on the same view(reloads or navigation - no intervening views). One problem w
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没