初学ibatis 问题多多,写了个测试类
package com.peak.riskscan.punishment.model;
import java.sql.*;
import java.io.Reader;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;/**
* @author 小林信仁
* @version 2007/4/23
*/
public class TestIbatis {
//首先初始化一个Ibatis获取一个SqlMapConfig.xml对象
public static SqlMapClient sqlMap = null;
TestIbatis(){
String resource = "conf/sqlmap/sqlmap-config-second.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
System.err.print("无价实例化SqlMapConfig对象");
}
}
/**
public void updateUser(String name,String password,int id){
User user = new User();
user.setId(id);
user.setName(name);
user.setPassword(password);
try {
sqlMap.startTransaction();
sqlMap.update("updateUser", user);
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println("修改错误");
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
*/
public static List getAllUser(){
List list = null;
try {
sqlMap.startTransaction();
list = sqlMap.queryForList("getPunishmentByModel",null);
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
/*
public boolean insertUser(String name,String password,String email){
boolean bool = false;
User user = new User();
user.setName(name);
user.setEmail(email);
user.setPassword(password);
try {
sqlMap.startTransaction();
sqlMap.insert("insertUser",user);
bool = true;
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return bool;
}
*/
public static void main(String[] args) {
TestIbatis testIbatis = new TestIbatis();
//testIbatis.updateUser("易思网", "sydica", 2);
List list = TestIbatis.getAllUser();
Iterator iterator = list.iterator();
while(iterator.hasNext()){
PunishmentModel pm = (PunishmentModel)iterator.next();
System.out.print("modelName=" + pm.getModelName() + " ");
System.out.print("modelDescribe=" +pm.getModelDescribe() + " ");
System.out.print("re=" + pm.getRe()+ " ");
System.out.println("typeid=" + pm.getTypeId()+ " ");
}
}
}a出异常:
无价实例化SqlMapConfig对象Exception in thread "main" java.lang.NullPointerException
at com.peak.riskscan.punishment.model.TestIbatis.getAllUser(TestIbatis.java:68)
at com.peak.riskscan.punishment.model.TestIbatis.main(TestIbatis.java:107)
是怎么回事,请高手指点
package com.peak.riskscan.punishment.model;
import java.sql.*;
import java.io.Reader;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.ibatis.common.resources.Resources;/**
* @author 小林信仁
* @version 2007/4/23
*/
public class TestIbatis {
//首先初始化一个Ibatis获取一个SqlMapConfig.xml对象
public static SqlMapClient sqlMap = null;
TestIbatis(){
String resource = "conf/sqlmap/sqlmap-config-second.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
System.err.print("无价实例化SqlMapConfig对象");
}
}
/**
public void updateUser(String name,String password,int id){
User user = new User();
user.setId(id);
user.setName(name);
user.setPassword(password);
try {
sqlMap.startTransaction();
sqlMap.update("updateUser", user);
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println("修改错误");
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
*/
public static List getAllUser(){
List list = null;
try {
sqlMap.startTransaction();
list = sqlMap.queryForList("getPunishmentByModel",null);
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
/*
public boolean insertUser(String name,String password,String email){
boolean bool = false;
User user = new User();
user.setName(name);
user.setEmail(email);
user.setPassword(password);
try {
sqlMap.startTransaction();
sqlMap.insert("insertUser",user);
bool = true;
sqlMap.commitTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
sqlMap.endTransaction();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return bool;
}
*/
public static void main(String[] args) {
TestIbatis testIbatis = new TestIbatis();
//testIbatis.updateUser("易思网", "sydica", 2);
List list = TestIbatis.getAllUser();
Iterator iterator = list.iterator();
while(iterator.hasNext()){
PunishmentModel pm = (PunishmentModel)iterator.next();
System.out.print("modelName=" + pm.getModelName() + " ");
System.out.print("modelDescribe=" +pm.getModelDescribe() + " ");
System.out.print("re=" + pm.getRe()+ " ");
System.out.println("typeid=" + pm.getTypeId()+ " ");
}
}
}a出异常:
无价实例化SqlMapConfig对象Exception in thread "main" java.lang.NullPointerException
at com.peak.riskscan.punishment.model.TestIbatis.getAllUser(TestIbatis.java:68)
at com.peak.riskscan.punishment.model.TestIbatis.main(TestIbatis.java:107)
是怎么回事,请高手指点
就是这个路径的问题,如果sqlmap-config-second.xml这个总配置文件一般情况下直接放在src根目录下比较好。如果是写的一全路径的话就必须写包的完整路径和配置文件名。