代码:
1.配置文件
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- 定义BasicDataSource数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<!-- 指定连接数据库的JDBC驱动 -->
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<!-- 指定数据库所用的url-->
<property name="url"
value="jdbc:mysql://localhost:3306/bookshop">
</property>
<!-- 指定连接数据库的用户名 -->
<property name="username" value="root"></property>
<!-- 指定连接数据库的密码 -->
<property name="password" value="1234"></property>
</bean>
<!-- 定义Hibernate的SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 将上面定义的数据源dataSource注入到LocalSessionFactoryBean类的sessionFactory属性 -->
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- 设置Hibernate的相关属性 -->
<property name="hibernateProperties">
<props>
<!-- 设置Hibernate的数据库方言 -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
<!--
定义UserDAOImpl类实例,并将已经创建LocalSessionFactoryBean的实例
sessionFactory依赖注入到UserDAOImpl类所继承的 HibernateDaoSupport
的sessionFactory属性
-->
<bean id="userDAO" class="com.ssh2test1.dao.UserDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 定义UserBizImpl类实例,并给UserBizImpl类中的userDAO注入值 -->
<bean id="userBiz" class="com.ssh2test1.biz.UserBizImpl">
<property name="userDAO" ref="userDAO" />
</bean>
</beans>
2.编写业务逻辑层
UserBiz.java
package com.ssh2test1.biz;
import java.util.List;
import com.ssh2test1.entity.Users;
public interface UserBiz {
public List login(Users condition);
}
UserBizImpl.java
package com.ssh2test1.biz;
import java.util.List;
import com.ssh2test1.dao.UserDAO;
import com.ssh2test1.entity.Users;
public class UserBizImpl implements UserBiz {
//使用UserDAO接口声明对象,并添加set方法用于依赖注入
UserDAO userDAO;
public void setUserDAO(UserDAO userDAO){
this.userDAO=userDAO;
}
public List login(Users condition) {
// TODO Auto-generated method stub
return userDAO.search(condition);
}
}
3.编写数据访问层
UserDAO.java
package com.ssh2test1.dao;
import java.util.List;
import com.ssh2test1.entity.Users;
public interface UserDAO {
public List search(Users condition);
}
UserDAOImpl.java
package com.ssh2test1.dao;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.ssh2test1.entity.Users;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
public List search(final Users condition) {
return super.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
// TODO 自动生成方法存根
Criteria c=session.createCriteria(Users.class);
if(condition!=null){
if(condition.getLoginName()!=null && !condition.getLoginName().equals("")){
c.add(Restrictions.eq("loginName", condition.getLoginName()));
}
if(condition.getLoginPwd()!=null && !condition.getLoginPwd().equals("")){
c.add(Restrictions.eq("loginPwd", condition.getLoginPwd()));
}
}
return c.list();
}
});
}
}
4.实体类及实体映射文件
Users.java
package com.ssh2test1.entity;
import java.io.Serializable;
public class Users implements Serializable {
private Integer id;
private String loginName;
private String loginPwd;
private String name;
private String address;
private String phone;
private String mail;
private Integer userRoleId;
private Integer userStateId;
public Users() {
}
public Users(String loginName, String loginPwd, String name,
String address, String phone, String mail, Integer userRoleId,
Integer userStateId) {
this.loginName = loginName;
this.loginPwd = loginPwd;
this.name = name;
this.address = address;
this.phone = phone;
this.mail = mail;
this.userRoleId = userRoleId;
this.userStateId = userStateId;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getLoginPwd() {
return this.loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return this.address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getMail() {
return this.mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Integer getUserRoleId() {
return this.userRoleId;
}
public void setUserRoleId(Integer userRoleId) {
this.userRoleId = userRoleId;
}
public Integer getUserStateId() {
return this.userStateId;
}
public void setUserStateId(Integer userStateId) {
this.userStateId = userStateId;
}
}
Users.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.ssh2test1.entity.Users" table="users" catalog="bookshop">
<id name="id" type="java.lang.Integer">
<column name="Id" />
<generator class="native"></generator>
</id>
<property name="loginName" type="java.lang.String">
<column name="LoginName" length="50" />
</property>
<property name="loginPwd" type="java.lang.String">
<column name="LoginPwd" length="16" />
</property>
<property name="name" type="java.lang.String">
<column name="Name" length="16" />
</property>
<property name="address" type="java.lang.String">
<column name="Address" length="16" />
</property>
<property name="phone" type="java.lang.String">
<column name="Phone" length="16" />
</property>
<property name="mail" type="java.lang.String">
<column name="Mail" length="16" />
</property>
<property name="userRoleId" type="java.lang.Integer">
<column name="UserRoleId" />
</property>
<property name="userStateId" type="java.lang.Integer">
<column name="UserStateId" />
</property>
</class>
</hibernate-mapping>
5.测试类
TestSpringHibernate.java
package com.ssh2test1;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ssh2test1.biz.UserBiz;
import com.ssh2test1.entity.Users;
public class TestSpringHibernate {
public static void main(String[] args) {
//加载applicationContext.xml配置
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
//获取配置中的实例
UserBiz userBiz =(UserBiz)context.getBean("userBiz");
Users conditon=new Users();
conditon.setLoginName("admin");
conditon.setLoginPwd("123456");
List list=userBiz.login(conditon);
if(list.size()>0){
System.out.println("登陆成功");
}
else{
System.out.println("登陆失败");
}
}
}
6.截图