我用ABATOR生成的代码如下:
KOMEN_TEST_SqlMap.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="KOMEN_TEST">
<resultMap class="com.test.domain.Test" id="abatorgenerated_TestResult">
<result column="ID" jdbcType="DECIMAL" property="id" />
<result column="USERNAME" jdbcType="VARCHAR" property="username" />
<result column="USERPASSWORD" jdbcType="VARCHAR" property="userpassword" />
<result column="USERAGE" jdbcType="DECIMAL" property="userage" />
</resultMap>
<sql id="abatorgenerated_Example_Where_Clause">
<iterate conjunction="or" prepend="where" property="oredCriteria" removeFirstPrepend="iterate">
<isEqual compareValue="true" property="oredCriteria[].valid">
(
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithoutValue">
$oredCriteria[].criteriaWithoutValue[]$
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithSingleValue">
$oredCriteria[].criteriaWithSingleValue[].condition$
#oredCriteria[].criteriaWithSingleValue[].value#
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithListValue">
$oredCriteria[].criteriaWithListValue[].condition$
<iterate close=")" conjunction="," open="(" property="oredCriteria[].criteriaWithListValue[].values">
#oredCriteria[].criteriaWithListValue[].values[]#
</iterate>
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithBetweenValue">
$oredCriteria[].criteriaWithBetweenValue[].condition$
#oredCriteria[].criteriaWithBetweenValue[].values[0]# and
#oredCriteria[].criteriaWithBetweenValue[].values[1]#
</iterate>
)
</isEqual>
</iterate>
</sql>
<select id="abatorgenerated_selectByExample" parameterClass="com.test.domain.TestExample" resultMap="abatorgenerated_TestResult">
select ID, USERNAME, USERPASSWORD, USERAGE from KOMEN.TEST
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
<isNotNull property="orderByClause">
order by $orderByClause$
</isNotNull>
</isParameterPresent>
</select>
<delete id="abatorgenerated_deleteByExample" parameterClass="com.test.domain.TestExample">
delete from KOMEN.TEST
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</delete>
<insert id="abatorgenerated_insert" parameterClass="com.test.domain.Test">
insert into KOMEN.TEST (ID, USERNAME, USERPASSWORD, USERAGE)
values (#id:DECIMAL#, #username:VARCHAR#, #userpassword:VARCHAR#, #userage:DECIMAL#)
</insert>
<select id="abatorgenerated_countByExample" parameterClass="com.test.domain.TestExample" resultClass="java.lang.Integer">
select count(*) from KOMEN.TEST
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</select>
<update id="abatorgenerated_updateByExampleSelective">
update KOMEN.TEST
<dynamic prepend="set">
<isNotNull prepend="," property="record.id">
ID = #record.id:DECIMAL#
</isNotNull>
<isNotNull prepend="," property="record.username">
USERNAME = #record.username:VARCHAR#
</isNotNull>
<isNotNull prepend="," property="record.userpassword">
USERPASSWORD = #record.userpassword:VARCHAR#
</isNotNull>
<isNotNull prepend="," property="record.userage">
USERAGE = #record.userage:DECIMAL#
</isNotNull>
</dynamic>
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</isParameterPresent>
</update>
<update id="abatorgenerated_updateByExample">
update KOMEN.TEST
set ID = #record.id:DECIMAL#,
USERNAME = #record.username:VARCHAR#,
USERPASSWORD = #record.userpassword:VARCHAR#,
USERAGE = #record.userage:DECIMAL#
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</isParameterPresent>
</update>
</sqlMap>TestDAO.javapackage com.test.dao;import com.test.domain.Test;
import com.test.domain.TestExample;
import java.util.List;public interface TestDAO {
void insert(Test record);
List selectByExample(TestExample example);
int deleteByExample(TestExample example);
int countByExample(TestExample example);
int updateByExampleSelective(Test record, TestExample example);
int updateByExample(Test record, TestExample example);
}
TestDAOImpl.javapackage com.test.dao;import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;
import com.test.domain.Test;
import com.test.domain.TestExample;
import java.util.List;public class TestDAOImpl extends SqlMapDaoTemplate implements TestDAO {
public TestDAOImpl(DaoManager daoManager) {
super(daoManager);
} public void insert(Test record) {
insert("KOMEN_TEST.abatorgenerated_insert", record);
} public List selectByExample(TestExample example) {
List list = queryForList("KOMEN_TEST.abatorgenerated_selectByExample", example);
return list;
} public int deleteByExample(TestExample example) {
int rows = delete("KOMEN_TEST.abatorgenerated_deleteByExample", example);
return rows;
} public int countByExample(TestExample example) {
Integer count = (Integer) queryForObject("KOMEN_TEST.abatorgenerated_countByExample", example);
return count.intValue();
} public int updateByExampleSelective(Test record, TestExample example) {
UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
int rows = update("KOMEN_TEST.abatorgenerated_updateByExampleSelective", parms);
return rows;
}
public int updateByExample(Test record, TestExample example) {
UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
int rows = update("KOMEN_TEST.abatorgenerated_updateByExample", parms);
return rows;
} private static class UpdateByExampleParms extends TestExample {
private Object record; public UpdateByExampleParms(Object record, TestExample example) {
super(example);
this.record = record;
} public Object getRecord() {
return record;
}
}
}
Test.javapackage com.test.domain;public class Test {
private Long id;
private String username;
private String userpassword;
private Long userage;
public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} ......
public Long getUserage() {
return userage;
} public void setUserage(Long userage) {
this.userage = userage;
}
}如果 我要在Register.jsp的RegisterAction.java的 public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated method stub
//实例化一个TEST对象
Test test=new Test();
test.setUsername(registerForm.getUsername());
test.setUserpassword(registerForm.getPassword());
test.setUserage(Long.valueOf(registerForm.getAge()));
String resource = "com/test/conf/sqlMapConfig.xml";
//请问如果要把Test实例的数据写入数据库,这里的代码应该怎么写?谢谢了!
return null;
}
KOMEN_TEST_SqlMap.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="KOMEN_TEST">
<resultMap class="com.test.domain.Test" id="abatorgenerated_TestResult">
<result column="ID" jdbcType="DECIMAL" property="id" />
<result column="USERNAME" jdbcType="VARCHAR" property="username" />
<result column="USERPASSWORD" jdbcType="VARCHAR" property="userpassword" />
<result column="USERAGE" jdbcType="DECIMAL" property="userage" />
</resultMap>
<sql id="abatorgenerated_Example_Where_Clause">
<iterate conjunction="or" prepend="where" property="oredCriteria" removeFirstPrepend="iterate">
<isEqual compareValue="true" property="oredCriteria[].valid">
(
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithoutValue">
$oredCriteria[].criteriaWithoutValue[]$
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithSingleValue">
$oredCriteria[].criteriaWithSingleValue[].condition$
#oredCriteria[].criteriaWithSingleValue[].value#
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithListValue">
$oredCriteria[].criteriaWithListValue[].condition$
<iterate close=")" conjunction="," open="(" property="oredCriteria[].criteriaWithListValue[].values">
#oredCriteria[].criteriaWithListValue[].values[]#
</iterate>
</iterate>
<iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithBetweenValue">
$oredCriteria[].criteriaWithBetweenValue[].condition$
#oredCriteria[].criteriaWithBetweenValue[].values[0]# and
#oredCriteria[].criteriaWithBetweenValue[].values[1]#
</iterate>
)
</isEqual>
</iterate>
</sql>
<select id="abatorgenerated_selectByExample" parameterClass="com.test.domain.TestExample" resultMap="abatorgenerated_TestResult">
select ID, USERNAME, USERPASSWORD, USERAGE from KOMEN.TEST
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
<isNotNull property="orderByClause">
order by $orderByClause$
</isNotNull>
</isParameterPresent>
</select>
<delete id="abatorgenerated_deleteByExample" parameterClass="com.test.domain.TestExample">
delete from KOMEN.TEST
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</delete>
<insert id="abatorgenerated_insert" parameterClass="com.test.domain.Test">
insert into KOMEN.TEST (ID, USERNAME, USERPASSWORD, USERAGE)
values (#id:DECIMAL#, #username:VARCHAR#, #userpassword:VARCHAR#, #userage:DECIMAL#)
</insert>
<select id="abatorgenerated_countByExample" parameterClass="com.test.domain.TestExample" resultClass="java.lang.Integer">
select count(*) from KOMEN.TEST
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</select>
<update id="abatorgenerated_updateByExampleSelective">
update KOMEN.TEST
<dynamic prepend="set">
<isNotNull prepend="," property="record.id">
ID = #record.id:DECIMAL#
</isNotNull>
<isNotNull prepend="," property="record.username">
USERNAME = #record.username:VARCHAR#
</isNotNull>
<isNotNull prepend="," property="record.userpassword">
USERPASSWORD = #record.userpassword:VARCHAR#
</isNotNull>
<isNotNull prepend="," property="record.userage">
USERAGE = #record.userage:DECIMAL#
</isNotNull>
</dynamic>
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</isParameterPresent>
</update>
<update id="abatorgenerated_updateByExample">
update KOMEN.TEST
set ID = #record.id:DECIMAL#,
USERNAME = #record.username:VARCHAR#,
USERPASSWORD = #record.userpassword:VARCHAR#,
USERAGE = #record.userage:DECIMAL#
<isParameterPresent>
<include refid="KOMEN_TEST.abatorgenerated_Example_Where_Clause" />
</isParameterPresent>
</update>
</sqlMap>TestDAO.javapackage com.test.dao;import com.test.domain.Test;
import com.test.domain.TestExample;
import java.util.List;public interface TestDAO {
void insert(Test record);
List selectByExample(TestExample example);
int deleteByExample(TestExample example);
int countByExample(TestExample example);
int updateByExampleSelective(Test record, TestExample example);
int updateByExample(Test record, TestExample example);
}
TestDAOImpl.javapackage com.test.dao;import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.client.template.SqlMapDaoTemplate;
import com.test.domain.Test;
import com.test.domain.TestExample;
import java.util.List;public class TestDAOImpl extends SqlMapDaoTemplate implements TestDAO {
public TestDAOImpl(DaoManager daoManager) {
super(daoManager);
} public void insert(Test record) {
insert("KOMEN_TEST.abatorgenerated_insert", record);
} public List selectByExample(TestExample example) {
List list = queryForList("KOMEN_TEST.abatorgenerated_selectByExample", example);
return list;
} public int deleteByExample(TestExample example) {
int rows = delete("KOMEN_TEST.abatorgenerated_deleteByExample", example);
return rows;
} public int countByExample(TestExample example) {
Integer count = (Integer) queryForObject("KOMEN_TEST.abatorgenerated_countByExample", example);
return count.intValue();
} public int updateByExampleSelective(Test record, TestExample example) {
UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
int rows = update("KOMEN_TEST.abatorgenerated_updateByExampleSelective", parms);
return rows;
}
public int updateByExample(Test record, TestExample example) {
UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
int rows = update("KOMEN_TEST.abatorgenerated_updateByExample", parms);
return rows;
} private static class UpdateByExampleParms extends TestExample {
private Object record; public UpdateByExampleParms(Object record, TestExample example) {
super(example);
this.record = record;
} public Object getRecord() {
return record;
}
}
}
Test.javapackage com.test.domain;public class Test {
private Long id;
private String username;
private String userpassword;
private Long userage;
public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} ......
public Long getUserage() {
return userage;
} public void setUserage(Long userage) {
this.userage = userage;
}
}如果 我要在Register.jsp的RegisterAction.java的 public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated method stub
//实例化一个TEST对象
Test test=new Test();
test.setUsername(registerForm.getUsername());
test.setUserpassword(registerForm.getPassword());
test.setUserage(Long.valueOf(registerForm.getAge()));
String resource = "com/test/conf/sqlMapConfig.xml";
//请问如果要把Test实例的数据写入数据库,这里的代码应该怎么写?谢谢了!
return null;
}
public class MyAppSqlConfig {
private static final SqlMapClient sqlMap;
static {
try {
String resource = "com/test/conf/sqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(
"Error initializing MyAppSqlConfig class. Cause: " + e);
}
} public static SqlMapClient getSqlMapInstance() {
return sqlMap;
}
}
以下是你的代码
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated method stub
//实例化一个TEST对象
Test test=new Test();
test.setUsername(registerForm.getUsername());
test.setUserpassword(registerForm.getPassword());
test.setUserage(Long.valueOf(registerForm.getAge()));
String resource = "com/test/conf/sqlMapConfig.xml";
//请问如果要把Test实例的数据写入数据库,这里的代码应该怎么写?谢谢了!
//得到连接
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
int result = sqlMap.update("abatorgenerated_insert", test);
if(result > 0)
{
System.out.println("插入成功");
}else
{
System.out.println("插入失败");
}
//我看你生成的代码里有TestDAOImpl类,里边有insert方法,我不知道你那别的代码,所以,这部分我也不能调用
//你最好是能直接调用这个方法 return null;
}
如果用SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
try{
sqlMap.insert("abatorgenerated_insert", tuser);
}catch(Exception e)
{
}
/**if(result > 0)
{
System.out.println("插入成功");
}else
{
System.out.println("插入失败");
}
**/
return null;
就没有任何输入和提示
SqlMapClient sqlMap = MyAppSqlConfig.getSqlMapInstance();
try{
sqlMap.insert("abatorgenerated_insert", tuser);
}catch(Exception e)
{
e.printStackTrace();
throw new RuntimeException(
"Error initializing MyAppSqlConfig class. Cause: " + e);
}
用这个提示There is no statement named abatorgenerated_insert in this SqlMap.