传智播客JAVA培训2010614 ibatis学习总结
由于公司的项目采用的是ibatis操作数据库,而之前,我只学习了jdbc,DBUtil,以及HIBERNATE,所以,现在得重新学习ibatis,只不过还好,我在同学的电脑中找到了赖家材老师的视频,真不错,还好!现在我是真正的体会到了,有视频的好处了,虽然有人说这样也有坏处,但的的确确带来的好处就是,有一些遗忘的知识点,在电脑中却不会遗忘,只要去复习就OK了。大幸,可以大大的缩短自己去分析源代码,查看api的时间了!如果是简单的操作如下,明天还得继续熟悉项目的环境,因为星期四,公司就交给我项目做了,就是上传excel,对excel文件进行分析,然后存储到数据中。数据库采用的训oracle,所以,明天除了将ibatis学习完成之外,还要学习个佟老的poi的视频,而之后,公司的项目会用到jpbm,所以也得早着准备了!
感谢各位老师!在传智这段时间的学习!
1.搭建环境
a) -导入jar包
i.
b) 导入配置文件
1.总配置文件
<?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>
<settings maxRequests="300" maxSessions="300" maxTransactions="300"
useStatementNamespaces="true" />
<transactionManager type="JDBC" commitRequired="true">
<dataSource type="SIMPLE">
<property value="oracle.jdbc.driver.OracleDriver"
name="JDBC.Driver" />
<property value="jdbc:oracle:thin:@localhost:1521:orcl"
name="JDBC.ConnectionURL" />
<property value="financelease" name="JDBC.Username" />
<property value="fff" name="JDBC.Password" />
<property value="300" name="Pool.MaximumActiveConnections" />
<property value="300" name="Pool.MaximumIdleConnections" />
<property value="1000" name="Pool.MaximumWait" />
</dataSource>
</transactionManager>
<sqlMap resource="config/sql/Student.xml" />
</sqlMapConfig>
2.数据库属性配置文件
因为这儿是直接写的值,所以,没有采用外部文件的方式。而是写的定值。
C). 写实体类
1.写实体类的配置文件,
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="student">
<typeAlias alias="Student" type="com.pingqiang.ibatis.entity.Student" />
<select id="selectAllStudent" resultClass="Student">
select *
from student
</select>
</sqlMap>
2.写工具类读取配置文件。生成SqlMapClient对象,该对象是线程安全的,用于读取数据库中的消息,并且一个数据库中只有一个该对象.
//线程安全的
private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = com.ibatis.common.resources.Resources
.getResourceAsReader("config/sql/sqlmap_cfg.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
3.实体dao,调用sqlMapClient对象查询数据库中所有id为1的数据。
public List<Student> queryAllStudent() {
List<Student> students = null;
try {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", "1");
students = sqlMapClient.queryForList("student.selectAllStudent", map);
System.out.println(students.size());
System.out.println(sqlMapClient.getDataSource());
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}