继续上面的2篇,继续Spring的配置方式的开发测试。代码如下:
1.实体类:
package com.tta.model;
public class User implements java.io.Serializable {
private Integer id;
private String name;
private Integer age;
private String address;
public User() {
}
public User(Integer age, String address) {
this.age = age;
this.address = address;
}
public User(String name, Integer age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return this.age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return this.address;
}
public void setAddress(String address) {
this.address = address;
}
}
实体 orm映射文件:
<?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"> <hibernate-mapping> <class name="com.tta.model.User" table="tb_model_user" > <id name="id" type="integer"> <column name="id" /> <generator class="native"></generator> </id> <property name="name" type="string"> <column name="name" length="20" /> </property> <property name="age" type="integer"> <column name="age" not-null="true" /> </property> <property name="address" type="string"> <column name="address" length="50" not-null="true" /> </property> </class> </hibernate-mapping>
2.服务层:
package com.tta.svc;
import java.util.List;
import com.tta.model.User;
public interface IUserService {
void saveUser(User u);
void deleteUser(User u);
void updateUser(User u);
User findUserById(int userId);
List<User> findUsers();
}
package com.tta.svc.impl;
import java.util.List;
import com.tta.dao.IUserDao;
import com.tta.model.User;
import com.tta.svc.IUserService;
public class UserService implements IUserService {
private IUserDao useDao;
@Override
public void deleteUser(User u) {
useDao.deleteUser(u);
}
@Override
public User findUserById(int userId) {
return useDao.findUserById(userId);
}
@Override
public List<User> findUsers() {
return useDao.findUsers();
}
@Override
public void saveUser(User u) {
useDao.saveUser(u);
}
@Override
public void updateUser(User u) {
useDao.updateUser(u);
}
public void setUseDao(IUserDao useDao) {
this.useDao = useDao;
}
}
3.数据操作层:
package com.tta.dao;
import java.util.List;
import com.tta.model.User;
public interface IUserDao {
void saveUser(User u);
void deleteUser(User u);
void updateUser(User u);
User findUserById(int userId);
List<User> findUsers();
}
package com.tta.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.tta.dao.IUserDao;
import com.tta.model.User;
public class UserDao extends HibernateDaoSupport implements IUserDao {
@Override
public void deleteUser(User u) {
getHibernateTemplate().delete(u);
}
@Override
public User findUserById(int userId) {
User u = new User();
u.setId(userId);
return (User) getHibernateTemplate().findByExample(u).get(0);
}
@Override
public List<User> findUsers() {
//Model User
// return getHibernateTemplate().find("from User");
//View User
return getHibernateTemplate().find("select new User(age,address) from User");
}
@Override
public void saveUser(User u) {
getHibernateTemplate().save(u);
}
@Override
public void updateUser(User u) {
getHibernateTemplate().merge(u);
}
}
4.配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mbpa"></property> <property name="username" value="root"></property> <property name="password" value="sainwind"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> <property name="mappingResources"> <list> <value>com/tta/model/User.hbm.xml</value> </list> </property> </bean> <bean id="userDaoId" class="com.tta.dao.impl.UserDao"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="userServiceId" class="com.tta.svc.impl.UserService"> <property name="useDao" ref="userDaoId"></property> </bean> </beans>
5.测试类:
package com.tta.svc.test;
import java.util.List;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.tta.model.User;
import com.tta.svc.IUserService;
import com.tta.svc.impl.UserService;
public class UserCfgTest {
private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
private static IUserService svc = (UserService)applicationContext.getBean("userServiceId");
// @Test
public void save(){
User u = new User(22,"zhangsan");
svc.saveUser(u);
}
// @Test
public void delete(){
svc.deleteUser(svc.findUserById(1));
}
// @Test
public void update(){
User u = svc.findUserById(1);
u.setAddress("上海市徐汇区零陵路123号");
u.setAge(35);
u.setName("赵冰");
svc.updateUser(u);
}
@Test
public void getUsers(){
List<User> users = svc.findUsers();
for(User u : users){
System.out.println("name : "+u.getName()+" address:"+u.getAddress());
}
}
}