10分钟学会使用mybatis
2015-03-08 12:43
495 查看
第一步,下载mybatis的jar包。这一步非常简单:
pom.xml
以前要查询官网,有时候还不一定马上能找到,特别像mybatis以前又叫ibatis,有github,有apache,有code.google等等,根本不知道哪个。而且即使找到了最新的官网,还得找jar的下载位置。现在都不需要了,用maven10秒钟搞定。在eclipse里搜索mybatis,查出所有版本,直接下载最新的3.2.8即可。如果要源代码,也可以从maven下载。
pipeliner/src/main/java/com/age/sale/dao/SqlMapConfig.xml
数据库配置文件:(这里配置了,tomcat的server.xml就不用配了)
pipeliner/src/main/java/com/age/sale/bean/StatResult.java
pipeliner/src/main/java/com/age/sale/dao/DataCountSqlMap.xml
先写测试类DayMonthBalanceDaoTest.java
dao调用类:
后续改进项:
1、数据库连接要配置多个,并且根据不同的城市自动切换数据库连接;
2、dao类不要直接进行数据库连接,应该单独分离出来;
3、数据库连接考虑怎样连接、释放最节省;
出自ouyida3的csdn blog
2015.3.8
pom.xml
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency>
以前要查询官网,有时候还不一定马上能找到,特别像mybatis以前又叫ibatis,有github,有apache,有code.google等等,根本不知道哪个。而且即使找到了最新的官网,还得找jar的下载位置。现在都不需要了,用maven10秒钟搞定。在eclipse里搜索mybatis,查出所有版本,直接下载最新的3.2.8即可。如果要源代码,也可以从maven下载。
pipeliner/src/main/java/com/age/sale/dao/SqlMapConfig.xml
数据库配置文件:(这里配置了,tomcat的server.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> <!-- 给bean取别名用在mapping文件中 --> <typeAliases> <typeAlias type="com.age.sale.bean.Worker" alias="Worker" /> <typeAlias type="com.age.sale.bean.StatResult" alias="StatResult" /> </typeAliases> <environments default="development"> <environment id="development"> <!-- 使用JDBC的事务管理 --> <transactionManager type="JDBC" /> <!-- 数据源 --> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@32.121.2.130:1521:bsstest" /> <property name="username" value="AUTOAC1" /> <property name="password" value="AUTOAC1" /> </dataSource> </environment> </environments> <!-- 这里可以写多个实体的映射文件 --> <mappers> <mapper resource="com/linkage/sale/bean/WorkerSqlMap.xml" /> <mapper resource="com/linkage/sale/bean/DataCountSqlMap.xml" /> </mappers> </configuration>
pipeliner/src/main/java/com/age/sale/bean/StatResult.java
package com.age.sale.bean; /** * 数据统计结果 * * @author ouyida3 * @since 2015.3.6 */ public class StatResult { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
pipeliner/src/main/java/com/age/sale/dao/DataCountSqlMap.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"> <!-- namespace用于java代码调用时识别指定xml的mapper文件 --> <mapper namespace="com.age.sale.bean"> <sql id="field2"> net_type_name name </sql> <select id="queryMonthAndDay" resultType="StatResult"> select <include refid="field2" /> from TS_B_DETAILSTAT a,td_s_netcode b where a.EPARCHY_CODE = #{EPARCHY_CODE} AND a.CYCLE_ID = #{CYCLE_ID} AND a.STAT_FIELD = b.NET_TYPE_CODE AND A.STAT_TYPE = 'NET_TYPE_CODE' AND b.NET_TYPE_NAME like '%'||#{DATA_NAME}||'%' AND a.STAT_FIELD = #{STAT_FIELD} AND a.SOURCE_TYPE = #{SOURCE_TYPE} AND a.SUB_CYCLE_ID!= '0' ORDER BY a.SUB_CYCLE_ID DESC </select> </mapper>
先写测试类DayMonthBalanceDaoTest.java
package com.age.sale.dao; import static org.junit.Assert.*; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.linkage.appframework.data.DataMap; import com.linkage.appframework.data.IData; import com.linkage.sale.bean.StatResult; /** * @since 2015.3.6 */ public class DayMonthBalanceDaoTest { @SuppressWarnings("unchecked") @Test public final void testQueryByNetTypeWithResult() { IData cond_data = new DataMap(); cond_data.put("SOURCE_TYPE", "EVERYDAY"); cond_data.put("EPARCHY_CODE", "0751"); cond_data.put("CYCLE_ID", "201403"); cond_data.put("DATA_NAME", ""); cond_data.put("STAT_FIELD", "33"); DayMonthBalanceDao dao = new DayMonthBalanceDao(); List<StatResult> result = dao.queryByNetType(cond_data); assertEquals(result.size(), 1); } }
dao调用类:
package com.age.sale.dao; import java.io.IOException; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.age.appframework.data.IData; import com.age.sale.bean.StatResult; /** * @since 2015.3.6 */ public class DayMonthBalanceDao { public List<StatResult> queryByNetType(IData param) { SqlSessionFactory factory = null; try { Reader reader = Resources.getResourceAsReader("com/age/sale/dao/SqlMapConfig.xml"); factory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } SqlSession session = factory.openSession(); List<StatResult> list = session.selectList("com.linkage.sale.bean.queryMonthAndDay", param); return list; } }
后续改进项:
1、数据库连接要配置多个,并且根据不同的城市自动切换数据库连接;
2、dao类不要直接进行数据库连接,应该单独分离出来;
3、数据库连接考虑怎样连接、释放最节省;
出自ouyida3的csdn blog
2015.3.8
相关文章推荐
- 10分钟学会使用qmake
- 10分钟学会使用github管理项目,图形化界面傻瓜式操作。
- 10分钟学会使用qmake
- 10分钟学会使用qmake
- 简单三步快速学会使用Mybatis-Generator自动生成entity实体、dao接口以及mapper映射文件(postgre使用实例)
- 简单两步快速学会使用Mybatis-Generator自动生成entity实体、dao接口和简单mapper映射(用mysql和oracle举例)
- 快速学会使用MyBatis
- 10分钟学会使用qmake
- UWP开发入门(十九)——10分钟学会在VS2015中使用Git
- 10分钟学会Linux系统下Git的本地使用
- 10分钟构建人人都能学会的个性化聊天机器人-使用AIML(王小草博客)
- 5分钟学会-最简单的MyBatis使用方法
- 10分钟学会如何使用Shiro
- qmake之10分钟学会使用qmake
- 10分钟学会使用qmake
- UWP开发入门(十九)——10分钟学会在VS2015中使用Git
- qmake用户手册——10分钟学会使用qmake
- 5天学会使用NoahWeb表现层制作动态网站(第五天)
- 编写 "纯HTML" jsp应用--学会使用 JSTL
- 5天学会使用NoahWeb表现层制作动态网站(第二天)