1、spring配置文件
功能:实现与数据库的连接,完成SqlSessionFactory的建立
文件内容:
a.加载配置文件
<context:property-placeholder location="classpath:db.properties"/>
b.数据源,使用DBCP
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destory-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="10"/> //最大数据库连接数量
<property name="maxIdle" value="5"/> //最大等待连接的数量
</bean>
c.sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--加载MyBatis的配置文件-->
<property name="configLocation" value="mybatis/SqlMapConfig.xml"/>
<!--数据源-->
<property name="dataSource" ref="dataSource"/>
</bean>
2、MyBatis配置文件
由于在spring的配置文件中有了数据源的信息,所以在这里就只是一些缓存的setting的参数配置、typeAliases别名定义、各种Mapper映射文件的加载。
3、编写mapper映射文件(sql语句)
<mapper namespace="test">
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id=#{id}
</select>
</mapper>
4、java实现文件类
(1)User类
public class User implements Serializable{
private int id;
private String username;
private String password;
...
}
(2)编写DAO层(进行数据库的交互)
UserDao接口:
public interface UserDao{
public User findUserById(int id) throws Exception;
}
UserDaoImpl实现类:
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
public User findUserById(int id) throws Exception{
SqlSession sqlSession = this.getSqlSession();
User user = sqlSession.selectOne("test.findUser",id);
return user;
}
}
如果UserDaoImpl类要成功获取SqlSessionFactory对象,还需要在Spring配置文件中添加UserDao 的bean配置。
//原始的Dao接口
<bean id="userDao" class="cn.com.sm.dao.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
5、测试的java类
public class UserTest throws Exception{
private ApplicationContext ac;
ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml")
UserDao userDao=(UserDao)ac.getBean("userDao");
User user = userDao.findUserById(1);
System.out.print(user);
}
心得:一开始运行的时候很多错误,最大的就是spring 的配置文件连接数据库的必须使用jdbc.url等,不能是单独的url,所以在db.properties里面的也要写成类似jdbc.username=root这种。
db.properties:
jdbc.driver=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test?characterEncoding=utf-8
jdbc.username=root
jdbc.password=sql2008