前段时间老师上课速度太快,每天一个小框架,弄得博主有点应接不暇,没有更新内容。这篇先讲下Mybatis,后面还会补全hibernate、DWR、spring MVC、Struts等等。
一、准备好jar包
二、准备好数据源
这里面放置了连接数据库的基本信息(驱动、url、账号、密码)。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/joying
username=root
password=1234
三、编写从前MVC模式的demo
主要为了学习框架,简单写个小demo。
包括domain,dao层(接口+实现类),service层(接口加实现类),util,及测试。
四、配置xml
在SRC目录下新建一个mybatis-config.xml,。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="db.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/pro/dao/ClassMapper.xml" /> </mappers> </configuration>
五、修改util中的DbHelper
区别于原来的都要自己打代码,直接获取Connection需要的信息。
package com.pro.util; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class DbHelper { public static SqlSession getSqlSession() throws Exception{ InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } }
六、修改掉原来Dao中的实现类
本质来说mybatis与hibernate一样都是修改了Dao层,这里需要新建一个xml。
<?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="com.pro.dao.ClassDao"> <insert id="insert" parameterType="com.pro.domain.Classes"> insert into classes(classId,className) values(#{classId},#{className}); </insert> <select id="selectAll" resultType="com.pro.domain.Classes"> select * from classes </select> </mapper>
parameterType代表参数类型,resultType代表返回类型。
七、测试一下
package com.pro.test; import java.util.List; import junit.framework.TestCase; import com.pro.domain.Classes; import com.pro.service.ClassService; import com.pro.service.ClassServiceImpl; public class MyBatisTest extends TestCase { public void testSave(){ ClassService classService = new ClassServiceImpl(); List<Classes> classList = classService.findAll(); for(int i=0;i<classList.size();i++){ Classes classes1 = classList.get(i); System.out.println(classes1.getClassId()+":"+classes1.getClassName()); } } }
结果: