Spring整合mybatis
1.配置数据源
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
2.配置sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- mybatis映射文件的位置-->
<property name="mapperLocations">
<list>
<value>
classpath:org/wesley/sms/entity/*.xml
</value>
</list>
</property>
</bean>
3.映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="studentNamespace">
<resultMap id="studentMap" type="student">
<id property="id" column="id" javaType="int" />
<result property="name" column="name" javaType="java.lang.String" />
<result property="password" column="password" javaType="java.lang.String" />
<result property="age" column="age" javaType="int" />
<result property="gender" column="gender" javaType="java.lang.Boolean" />
<result property="studyNumber" column="study_number" javaType="java.lang.String" />
<result property="clazz" column="clazz" javaType="java.lang.String" />
</resultMap>
<insert id="insert" parameterType="student">
insert into t_student
(name,password,age,gender,study_number,clazz)
values
(#{name},#{password},#{age},#{gender},#{studyNumber},#{clazz})
</insert>
<delete id="delete" parameterType="student">
delete from t_student where
id=#{id}
</delete>
<update id="update" parameterType="student">
update t_student
set
name=#{name},password=#{password},age=#{age},gender=#{gender},study_number=#{studyNumber},clazz=#{clazz}
where id=#{id}
</update>
<select id="get" parameterType="int" resultMap="studentMap">
select
id,name,password,age,gender,study_number,clazz
from t_student
where
id=#{id}
</select>
<select id="findByNameAndPassword" parameterType="map"
resultMap="studentMap">
select id,name,password,age,gender,study_number,clazz
from
t_student
where name=#{name} and password=#{password}
</select>
<select id="findAll" resultMap="studentMap">
select
id,name,password,age,gender,study_number,clazz
from t_student
</select>
</mapper>
4.Dao层实现类
package org.wesley.sms.dao;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import org.wesley.sms.entity.Student;
@Repository("studentDao")
public class StudentDao implements IStudentDao {
@Autowired
@Qualifier("sqlSessionFactory")
private SqlSessionFactory sqlSessionFactory;
private SqlSession getSqlSession() {
if (sqlSessionFactory != null) {
return sqlSessionFactory.openSession();
} else {
return null;
}
}
@Override
public void insert(Student student) throws Exception {
getSqlSession().insert("studentNamespace.insert", student);
}
@Override
public void delete(Student student) throws Exception {
getSqlSession().delete("studentNamespace.delete", student);
}
@Override
public void update(Student student) throws Exception {
getSqlSession().update("studentNamespace.update", student);
}
@Override
public Student get(int id) throws Exception {
return getSqlSession().selectOne("studentNamespace.get", id);
}
@Override
public Student findByNameAndPassword(String name, String password) throws Exception {
Map<String, Object> params = new HashMap<String, Object>();
params.put("name", name);
params.put("password", password);
return getSqlSession().selectOne("studentNamespace.findByNameAndPassword", params);
}
@Override
public List<Student> findAll() throws Exception {
return getSqlSession().selectList("studentNamespace.findAll");
}
}