第一步:新建一个web项目
第二步:引入主要jar包
spring.jar,ibatis-2.3.4.jar,mysql-connector-java-5.1.5-bin.jar,c3p0-0.9.1.1.jar,ant.jar,commons-logging.jar等。
第三步:在web.xml文件中添加
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
第四步:新建data-source.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:spring-beans-2.5.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://192.168.0.61:3306/test?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="sa" />
<property name="acquireIncrement" value="5" />
<property name="maxIdleTime" value="3600" />
<property name="initialPoolSize" value="10" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="30" />
<property name="numHelperThreads" value="5" />
</bean>
</beans>
第五步:新增applicationContext.xml 内容如下
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:spring-beans-2.5.xsd
http://www.springframework.org/schema/context classpath:spring-context-2.5.xsd
http://www.springframework.org/schema/tx classpath:spring-tx-2.5.xsd
http://www.springframework.org/schema/aop classpath:spring-aop-2.5.xsd
http://cxf.apache.org/jaxws classpath:jaxws.xsd">
<import resource="data-source.xml" />
<!--
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl"
value="jdbc:mysql://192.168.0.61:3306/seawar_test?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="sea" />
<property name="acquireIncrement" value="5" />
<property name="maxIdleTime" value="3600" />
<property name="initialPoolSize" value="10" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="30" />
<property name="numHelperThreads" value="5" />
</bean>
-->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="classpath:sqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="guildPlayerDAO" class="com.ibatis.two.GuildPlayerDAO">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
</beans>
第六步:新增帮助类 springService.java
package com.common;
import javax.servlet.ServletContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* spring 帮助类
* @author barsk.li
*
*/
public class SpringService {
private static ServletContext servletContext;
private static WebApplicationContext webApplictionContext;
public static Object getBean(String name){
return webApplictionContext.getBean(name);
}
public static ServletContext getServletContext() {
return servletContext;
}
public static void setServletContext(ServletContext servletContext) {
SpringService.servletContext = servletContext;
SpringService.webApplictionContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
}
public static ApplicationContext getApplicationContext() {
ApplicationContext ctx = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");
return ctx;
}
}
第七步:其他类
1. GuildPlayer.java
/** 公会玩家编号 */
private Integer guildPlayerID;
/** 玩家编号 */
private Integer playerID;
/** 公会编号 */
private Integer guildID;
/** 公会职务 */
private Integer position;
/** 创建时间 */
private Date createTime;
2.IGuildPlayerDAO
package com.ibatis.two;
public interface IGuildPlayerDAO {
public void createGuildPlayer(GuildPlayer guildPlayer);
}
3.GuildPlayerDAO.java
package com.ibatis.two;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
public class GuildPlayerDAO extends SqlMapClientDaoSupport implements IGuildPlayerDAO{
public void createGuildPlayer(GuildPlayer guildPlayer) {
getSqlMapClientTemplate().insert("GuildPlayer.createGuildPlayer",guildPlayer);
}
}
4. GuildPlayer.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="GuildPlayer">
<typeAlias alias="GuildPlayer" type="com.ibatis.two.GuildPlayer" />
<insert id="createGuildPlayer" parameterClass="GuildPlayer">
insert into
t_guild_player(guild_id,player_id,position,create_time)
values(#guildID#,#playerID#,#position#,sysdate())
</insert>
</sqlMap>
好了,基本上差不多了。写个测试类测试下
GuildPlayerDAOTest.java
package com.ibatis.two;
import org.junit.BeforeClass;
import org.junit.Test;
import com.common.SpringService;
public class GuildPlayerDAOTest {
private static IGuildPlayerDAO guildPlayerDAO ;
@BeforeClass
public static void setUpBeforClass() {
guildPlayerDAO = (IGuildPlayerDAO) SpringService.getApplicationContext().getBean("guildPlayerDAO");
}
@Test
public void test() {
GuildPlayer guildPlayer = new GuildPlayer();
guildPlayer.setGuildID(44);
guildPlayer.setPlayerID(33);
guildPlayer.setPosition(2);
guildPlayerDAO.createGuildPlayer(guildPlayer);
}
}
好了,如果配置没什么问题的话,应该是OK的。下面我们来看下mybaits-3.0的使用。
需要mybatis-3.0.1.jar
sql文件配置区别
GuildPlayer.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="GuildPlayer">
<insert id="createGuildPlayer" parameterType="GuildPlayer">
insert into
t_guild_player(guild_id,player_id,position,create_time)
values(#{guildID},#{playerID},#{position},sysdate())
</insert>
</mapper>