Spring+Hibernate整合案例 (JdbcTemplate)
案例来
实体类一个
public class NewUserTable implements java.io.Serializable {
private Integer userId;
private String userName;
private String userSex;
private Integer userAge;
private Date userBr;
.....
}
dao层实现类
import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import com.ym.dao.IUserInfo;
import com.ym.entity.NewUserTable;
public class DUserInfoImpl extends JdbcTemplate implements IUserInfo {
/**
* 增加
*/
@Override
public int addUser(NewUserTable user) {
int retNum=super.update("insert into new_user_table(userName,userSex,userAge,userBr) values(?,?,?,?)",
new Object[]{user.getUserName(),user.getUserSex(),user.getUserAge(),user.getUserBr()});
return retNum;
}
/**
* 以id为条件查询
*/
@Override
public NewUserTable queryUser(int userId) {
NewUserTable user=super.queryForObject("select * from new_user_table where userId=?",
new Object[]{userId},
new BeanPropertyRowMapper<NewUserTable>(NewUserTable.class));
return user;
}
/**
* 查询全部
*/
@Override
public List<NewUserTable> queryAll() {
//方法一
List<Map<String, Object>> listu = super.queryForList("select * from new_user_table");
//方法二
List<NewUserTable> listu2 = super.query("select * from new_user_table",
new BeanPropertyRowMapper<NewUserTable>(NewUserTable.class));
return listu2;
}
}
测试类:
import java.util.Date;
import java.util.List;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ym.dao.IUserInfo;
import com.ym.entity.NewUserTable;
public class JdbcTest {
BeanFactory bf=new ClassPathXmlApplicationContext("applicationContext.xml");
/**
* @Description: TODO(查询全部)
*/
@Test
public void test01(){
IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
List<NewUserTable> list=iUserInfo.queryAll();
for (NewUserTable ui : list) {
System.out.println(ui.toString());
}
}
/**
* @Description: TODO(通过id查询单个对象)
*/
@Test
public void test02(){
IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
NewUserTable user=iUserInfo.queryUser(4);
System.out.println(user.toString());
}
/**
* @Description: TODO(增加)
*/
@Test
public void test03(){
IUserInfo iUserInfo=bf.getBean("dUser",IUserInfo.class);
NewUserTable user=new NewUserTable("大黑", "男", 25, new Date());
int retNum=iUserInfo.addUser(user);
if(retNum>0){
System.out.println("添加成功...");
}else{
System.out.println("添加失败...");
}
}
}
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:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" >
<!-- 这里 class 属性值改变成jdbc的方式 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 引入链接驱动 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"value="jdbc:mysql://localhost:3306/hiberdb?userUnicode=true
&&characterEncoding=utf-8&&serverTimezone=GMT%2B8">
</property>
<property name="username" value="root"></property>
<property name="password" value="154355"></property>
</bean>
<!-- 创建对象 注入 数据源 -->
<bean id="dUser" class="com.ym.dao.impl.DUserInfoImpl">
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/ym/entity/NewUserTable.hbm.xml</value></list>
</property></bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" /></beans>