转载请注明出处:
http://renjie120.iteye.com/
用过ibatis之后,感觉hibernate太复杂.
使用过derby数据库之后,感觉mysql也很大.
helloWorld工程很重要,学习新东西完成helloWorld就心里有底了.
闲来无聊,看了一下这些东西,发现derby好好玩.花了几天时间学习了一下基本的ibatis,derby的知识,然后集合了spring框架.
遇到了几个小小的问题,都一一解决了,这里好好总结一下以后再次遇到就不用浪费时间百度了.
1.使用jdbc连接derby数据库的基本语句如下,注意有用户名,密码
的情况,要使用properties文件包含用户名和密码,然后通过properties读值:
private static Properties properties = null;
static {
// getResourceAsStream的参数"/application.properties"表示以当前类的包的根路径为基准路径
InputStream inputStream = DerbyUtil.class
.getResourceAsStream("/derby.properties");
properties = new Properties();
try {
properties.load(inputStream);
inputStream.close();
} catch (IOException e) {
System.out.println("获取系统属性文件异常:");
}
}
/**
* 取得数据库连接
* @return
*/
public static Connection getCon() {
Connection con = null;
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
String connectionURL = "jdbc:derby:testIbatis;create=true;";
// 装载数据库驱动.
try {
Class.forName(driver);
System.out.println(driver + " loaded. ");
} catch (java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.out.println("缺少derby相关jar包!");
}
try {
con = DriverManager.getConnection(connectionURL, properties);
} catch (SQLException e) {
System.out.println("出现异常.");
errorPrint(e);
}
return con;
}
经常遇到的一个错误是:
--- Cause: java.sql.SQLException: Schema '.......' does not exist
原因就是因为数据库连接的用户名,密码有误!
上面的/derby.properties内容如下:注意用户名,密码的key!开始我写成了use,password(因为直接连接derby的话,配置用户名密码就是用user=;password=),结果找了半天!!
JDBC.Username=admin
JDBC.Password=admin
2.使用ibatis 的 sqlMapClient连接数据库的基本方式如下:不论什么数据库都是一样,derby,mysql,oracle都这样写.
public List getDises(Dis argVo) {
String resource = "ibatis/SqlMapConfig.xml";
SqlMapClient sqlMap = null;
List ans = null;
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (Exception e) {
e.printStackTrace();
}
// sqlMap系统初始化完毕,开始执行getAllUser操作
try {
sqlMap.startTransaction();
ans = sqlMap.queryForList("getDises", argVo);
sqlMap.commitTransaction();
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
sqlMap.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
return ans;
}
3.上面的写法很多都是重复的部分,所以可以使用模板类进行简化书写,要继承SqlMapDaoTemplate这个类,然后还要在ibatis基础配置文件上,再多添加一个配置文件DaoConfig.xml,一般还会要多添加一个类叫做DaoConfig.java.
DaoConfig.xml配置文件一般如下所示:
<daoConfig>
<context>
<transactionManager type="SQLMAP">
<property name="SqlMapConfigResource"
value="ibatis/SqlMapConfig.xml" />
</transactionManager>
<dao interface="ibatis.newTest.IDistrict"
implementation="ibatis.dao.NewTestDistrict" />
</context>
</daoConfig>
实现的方式网上很多,但是我遇到了一个很郁闷的问题,找了很久,错误如下:
Exception in thread "main" java.lang.ClassCastException: $Proxy1
at ibatis.dao.NewTestDistrict.main(NewTestDistrict.java:24)
找了半天,原来在写测试类的时候,
DaoManager daoManager = DaoConfig.getDaoManager();
NewTestDistrict
test= (
NewTestDistrict
) daoManager.getDao(IDistrict.class);
上面应该是接口的类型,不应该写具体类!!
改成下面就好了:
IDistrict
test= (IDistrict
) daoManager.getDao(IDistrict.class);
4.spring和ibatis的集成,网上代码一大把...在demo中也有...
5.demo工程中的内容:
derby文件夹:DerbyUtil:包含derby数据库初始化的方法
ibatis文件夹:
dao文件夹:NewTestDistrict.java 使用ibatis中的模板工具类进行持久化操作
newTest文件夹:TestDistrict.java 使用基本的ibatis语句进行持久化操作
springIbatis文件夹:DistrictSpring.java spring和Ibatis集成测试类
sql文件夹:数据库脚本
6.derby数据库
Derby数据库文件夹:testIbatis文件夹,在第一次运行工程之后,derby数据文件建立在src同级目录.
- 大小: 11 KB
分享到:
相关推荐
Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
在用iBatis.net与数据库打交道的过程中,发现iBatis.net拼接字符串不能直接拷贝然后在dbms里执行
spring与ibatis整合集成实例 spring与ibatis整合集成实例
最近想在最新的Spring5.0中集成ibatis(不是mybatis),发现已经不在支持SqlmapClientTemplate和SqlmapClientFactoryBean,于是搞了这个工具jar来进行支持如下配置 <bean id="sqlMapClient" class="org.spring...
iBatis的最简单的Helloworld工程,解压后可以直接在eclipse中使用。 需要你自己在SQL Server中创建表:UserVo,字段:id、name、sex、age。
spring ibatis整合所需jar包
全面介绍了关于ibatis操作数据库的各种类型,在程序中编辑SqlMapClient对象的成员函数的参数,从而对数据库进行更新
本工程以“银行账号转账”为例子演示了如何处理Spring、Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `...
操作数据库 iBATIS查询,java 和spring的配置方法
spring+ibatis集成开发文档,集成框架。
IBATIS连接多数据库参考文档,只供参考,学习。
描述与iBatis相关技术与数据库进行增删改查操作
ibatis学习 ibatis总结 ibatis ibatis ibatis
Spring与iBATIS的集成示例代码,希望对初学者有用
spring集成ibatis的源码 可以运行
访问数据库基本封装(spring/hibernate/ibatis)
是不是好东西你们去鉴定,SpringMVC + Spring + ibatis 可以配置多数据源,这个Demo 扩展性极强,就看你们自己如何发挥。
Spring + Ibatis 与mysql集群集成