我理解的spring&ibatis
2014-01-19 17:08
344 查看
一、spring&ibatis是什么
spring和ibatis是两个框架,那么框架又是神马呢,框架就是用来简化编程的工具,只要按照框架所设定的规则去编程,可以极大的提高程序开发效率。
spring和ibatis就是两个简化数据库操作的框架。
二、如何才能让spring&ibatis为我所用呢
第一步:相关配置文件
1、sqlmap-config.xml,这里面描述了两种重要信息
数据库表与类的映射关系
<typeAlias alias="User" type="org.jd.domain.User" />
数据库操作方法与sql映射关系 <select id="getUsers" resultClass="User">
select u.id as id, u.name as name, u.password as password
from User u
</select>
2、spring-config.xml,这里面主要包含三种重要的信息
连接数据库的相关信息,比如驱动,用户名,密码,jdbc 链接
<bean id="mySqlDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
数据库映射模板,数据库
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlmap-config.xml" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="mySqlDataSource" />
</property>
</bean>
数据库操作对象
<bean id="testDao" class="org.jd.impl.TestDaoImpl">
<property name="dataSource" ref="mySqlDataSource"></property>
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
第二步:代码实现
这里以数据库一张User表作为例子来实现数据读取操作
domain中实现数据表对应的类 User public class User {
private int id;
private String name;
private String password;
//此处省略set和get方法
}
dao类 TestDaoImpl public class TestDaoImpl extends BaseDao {
public List<User> getUsers(){
return queryForList("testSqlMap.getUsers");
}
public User getUserByName(String name){
return (User)queryForObject("testSqlMap.getUserByName", name);
}
}
dataService类 DataServiceImpl public class DataServiceImpl {
private TestDaoImpl testDao;
/**
* @return the testDao
*/
public TestDaoImpl getTestDao() {
return testDao;
}
/**
* @param testDao the testDao to set
*/
public void setTestDao(TestDaoImpl testDao) {
this.testDao = testDao;
}
public List<User> getUsers(){
return this.testDao.getUsers();
}
}
第三步:启动程序
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "spring-config.xml" });
DataServiceImpl dataService = (DataServiceImpl)context.getBean("dataService");
List<User> users = dataService.getUsers();
for(User user : users){
System.out.println(user.getName()+" "+user.getPassword());
}
例子程序下载地址:http://pan.baidu.com/s/1kTt4ejX
spring和ibatis是两个框架,那么框架又是神马呢,框架就是用来简化编程的工具,只要按照框架所设定的规则去编程,可以极大的提高程序开发效率。
spring和ibatis就是两个简化数据库操作的框架。
二、如何才能让spring&ibatis为我所用呢
第一步:相关配置文件
1、sqlmap-config.xml,这里面描述了两种重要信息
数据库表与类的映射关系
<typeAlias alias="User" type="org.jd.domain.User" />
数据库操作方法与sql映射关系 <select id="getUsers" resultClass="User">
select u.id as id, u.name as name, u.password as password
from User u
</select>
2、spring-config.xml,这里面主要包含三种重要的信息
连接数据库的相关信息,比如驱动,用户名,密码,jdbc 链接
<bean id="mySqlDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
数据库映射模板,数据库
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlmap-config.xml" />
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="mySqlDataSource" />
</property>
</bean>
数据库操作对象
<bean id="testDao" class="org.jd.impl.TestDaoImpl">
<property name="dataSource" ref="mySqlDataSource"></property>
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
第二步:代码实现
这里以数据库一张User表作为例子来实现数据读取操作
domain中实现数据表对应的类 User public class User {
private int id;
private String name;
private String password;
//此处省略set和get方法
}
dao类 TestDaoImpl public class TestDaoImpl extends BaseDao {
public List<User> getUsers(){
return queryForList("testSqlMap.getUsers");
}
public User getUserByName(String name){
return (User)queryForObject("testSqlMap.getUserByName", name);
}
}
dataService类 DataServiceImpl public class DataServiceImpl {
private TestDaoImpl testDao;
/**
* @return the testDao
*/
public TestDaoImpl getTestDao() {
return testDao;
}
/**
* @param testDao the testDao to set
*/
public void setTestDao(TestDaoImpl testDao) {
this.testDao = testDao;
}
public List<User> getUsers(){
return this.testDao.getUsers();
}
}
第三步:启动程序
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "spring-config.xml" });
DataServiceImpl dataService = (DataServiceImpl)context.getBean("dataService");
List<User> users = dataService.getUsers();
for(User user : users){
System.out.println(user.getName()+" "+user.getPassword());
}
例子程序下载地址:http://pan.baidu.com/s/1kTt4ejX
相关文章推荐
- J2EE框架(Struts&Hibernate&Spring)的理解
- iBATIS&Spring合奏(三)--事务&动态SQL
- spring整合ibatis出错,Cannot create PoolableConnectionFactory (Access denied for user 'root '@'localhost'
- iBATIS&Spring合奏(四)--设计模式in iBATIS
- Spring4深入理解IOC&DI03----Bean配置--SpEL,IOC 容器中 Bean 的生命周期
- 理解jstl.struts.spring.ibatis/hibernate/jdbc
- Spring ResourceLoader.getResource() & getResources()的理解
- iBATIS&Spring合奏(五)--整合lucene搜索表字段内容
- Flex&iBatis&Hibernate&Spring—师徒奶茶系统V1总结
- J2EE框架(Struts&Hibernate&Spring)的理解
- J2EE框架(Struts&Hibernate&Spring)的理解
- J2EE框架(Struts&Hibernate&Spring)的理解
- Spring+Ibatis>>Oracle>>ORA-0060>>arguments: [kkslgbv0]错误解决办法
- J2EE框架(Struts&Hibernate&Spring)的理解
- J2EE框架(Struts&Hibernate&Spring)的理解
- J2EE框架(Struts&Hibernate&Spring)的理解
- (Struts2,Spring,Ibatis)初步整合理解
- jboss Spring :Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.
- Spring&iBatis之SqlMapClientDaoSupport
- Memcached理解笔2---XMemcached&Spring集成