新手练习一个ibatis框架 返回数据为 0,null,0 求高手指教代码如下:1、main函数:public class DemoMain {
public static void main(String[] args) {
PersonDAO personDao=new PersonDAOImpl();
Person person=new Person();
personDao.queryAllPerson(2);
System.out.println(person.getId());
System.out.println(person.getName());
System.out.println(person.getAge());
}
}2、DAO层:public class PersonDAOImpl implements PersonDAO { private static SqlMapClient sqlMapClient;
static{
try {
String resource="com/hx/domain/SqlMapConfig.xml";
Reader reader=Resources.getResourceAsReader(resource);
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public List<Person> queryAllPerson(int id) {
List<Person> list = null;
try {
list=sqlMapClient.queryForList("getPerson",id);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}3、javabean的xml文件 Person.xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="person">
<select id="getPerson" resultClass="com.hx.domain.Person">
SELECT PER_ID as id,
PER_NAME as name,
PER_AGE as age
FROM PERSON WHERE PER_ID = #id#
</select>
</sqlMap>4、ibatis的配置文件 SqlMapConfig.xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig> <properties resource="com/hx/domain/SqlMapConfig.properties" />
<settings cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<typeAlias alias="person" type="com.hx.domain.Person" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/hx/domain/Person.xml" />
</sqlMapConfig>5、属性文件SqlMapConfig.properties:driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo
username=sa
password=sa
请大虾指教!! 不报错,返回值是0,null,0 数据库中有值!我觉得可能是DAO层中的list=sqlMapClient.queryForList("getPerson",id);有问题。
请指教方法中两个参数的含义
public static void main(String[] args) {
PersonDAO personDao=new PersonDAOImpl();
Person person=new Person();
personDao.queryAllPerson(2);
System.out.println(person.getId());
System.out.println(person.getName());
System.out.println(person.getAge());
}
}2、DAO层:public class PersonDAOImpl implements PersonDAO { private static SqlMapClient sqlMapClient;
static{
try {
String resource="com/hx/domain/SqlMapConfig.xml";
Reader reader=Resources.getResourceAsReader(resource);
sqlMapClient=SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public List<Person> queryAllPerson(int id) {
List<Person> list = null;
try {
list=sqlMapClient.queryForList("getPerson",id);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}3、javabean的xml文件 Person.xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="person">
<select id="getPerson" resultClass="com.hx.domain.Person">
SELECT PER_ID as id,
PER_NAME as name,
PER_AGE as age
FROM PERSON WHERE PER_ID = #id#
</select>
</sqlMap>4、ibatis的配置文件 SqlMapConfig.xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig> <properties resource="com/hx/domain/SqlMapConfig.properties" />
<settings cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<typeAlias alias="person" type="com.hx.domain.Person" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/hx/domain/Person.xml" />
</sqlMapConfig>5、属性文件SqlMapConfig.properties:driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo
username=sa
password=sa
请大虾指教!! 不报错,返回值是0,null,0 数据库中有值!我觉得可能是DAO层中的list=sqlMapClient.queryForList("getPerson",id);有问题。
请指教方法中两个参数的含义
解决方案 »
- 大神们 帮看看这个是啥意思
- 自定义标签处理类问题
- 我想买本书,哪个版本好些
- jLabel鼠标双击事件后如何关闭当前窗口
- ssh集成的时候调用hibernateTemplate.delete()方法执行没问题但是不能删除数据库里的数据,存入数据没问题
- tomcat下两个工程超连接互相调用
- 我用的WEBLOGIC7,其自带SQLSERVER的jdbc driver不支持jdbc2.0的方法,请问谁有 JDBC2.0 driver
- 中文问题
- weblogic 登陆问题!!!!!!
- ejb-ref的问题??
- java.lang.ClassFormatError: Truncated class file
- 字符串为一串数字 这样有什么错
// personDao.queryAllPerson(2); 注释掉
结果应该还是一样的
你要输出查询的结果 起码要把返回值拿出来吧要不然就是上面说的结果
SELECT PER_ID as id,
PER_NAME as name,
PER_AGE as age
FROM PERSON WHERE PER_ID = #id#
</select>没有参数类型饿 parameterClass