【白金山】iBatis再使用小例子(1)
来源:互联网 发布:手机淘宝二维码 编辑:程序博客网 时间:2024/05/01 20:33
用IBatis开发已经是过去时了,现在又要用它开发,所以从一个小例子复习一下。希望对想学iBatis的朋友有用哦!
iBatis是apache的一个开源项目,一个O/R Mapping解决方案,iBatis最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis是能够满足你的要求又足够灵活的最简单的解决方案。不少公司的架构师看重的可能也是他的小巧灵活吧,也都在自己的架构中用到了它。
新建一个web项目:iBatisTEST
搭建环境:导入数据库的驱动包、iBatis自身的jar包
导入配置文件:
iBatis的配置文件【SqlMapConfig.xml】(Jdbc连接的属性文件(就是键值对driver、url、username、password))
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<!--
<property name="JDBC.Driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
在连接MSSQLSERVER时,容易出现这种问题:一个Connection对象创建了一个Statement对象,并且这个Statement对象先后执行了多条SQL语句,那么就需要该Connection对象的SelectMethod=Cursor,默认的SelectMethod=direct
<property name="JDBC.ConnectionURL" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=javatest;SelectMethod=Cursor" />
<property name="JDBC.Username" value="sa" />
<property name="JDBC.Password" value="test" />
-->
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/test" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="test" />
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="config/Student.xml" />
</sqlMapConfig>
新建一个POJO类Student(属性值和数据库表中的字段相互对应)
package cn.bai;
import java.sql.Date;
public class Student {
private int sid = 0;
private String sname = null;
private String major = null;
private Date birth = null;
private float score = 0;
@Override
public String toString() {
String content = "sid=" + sid + "/tsname="+sname+"/tmajor="+major+"/tbirth="+birth+"/tscore="+score;
return content;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
配置Student的配置文件
<?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>
<typeAlias alias="Student" type="cn.bai.Student"/>
<select id="selectAllStudent" resultClass="Student">
SELECT *
FROM STUDENT
</select>
</sqlMap>
建立一个操作接口
package cn.bai;
import java.util.List;
public interface IStudentDAO {
public void addStudent(Student student);
public void addStudentBySequence(Student student);
public void deleteStudentById(int sid);
public void updateStudent(Student student);
public List<Student> queryAllStudent();
public List<Student> queryStudentByName(String sname);
public Student queryStudentById(int sid);
}
建立一个操作接口的实现
package cn.bai;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
public class IStudentDAOImpl implements IStudentDAO {
private static SqlMapClient sqlMapClient = null;
static{
try {
Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("cn/bai/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addStudent(Student student) {
// TODO Auto-generated method stub
}
public void addStudentBySequence(Student student) {
// TODO Auto-generated method stub
}
public void deleteStudentById(int sid) {
// TODO Auto-generated method stub
}
public List<Student> queryAllStudent() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return studentList;
}
public Student queryStudentById(int sid) {
// TODO Auto-generated method stub
return null;
}
public List<Student> queryStudentByName(String sname) {
// TODO Auto-generated method stub
return null;
}
public void updateStudent(Student student) {
// TODO Auto-generated method stub
}
public static void main(String[] args){
IStudentDAO dao = new IStudentDAOImpl();
for (Student student:dao.queryAllStudent()) {
System.out.println(student);
}
}
}
此时运行如果数据库中是数据就会打印出来
- 【白金山】iBatis再使用小例子(1)
- IBATIS入门小例子
- IBatis详细使用例子
- iBatis详细使用例子
- ibatis使用小文档
- iBatis使用小例
- iBatis使用小知识
- ibatis例子(三) iterate 1
- ibatis例子(一)
- ibatis 例子(二)
- ibatis例子
- iBATIS 例子
- IBATIS 例子
- libiconv使用小例子
- 枚举使用小例子
- xpath使用小例子
- RatingBar使用小例子
- EnumMap使用小例子
- Guideline of developing Drizzle
- QT中调用外部程序的方法
- 新手请多指教
- QProcess Class Reference
- JTable
- 【白金山】iBatis再使用小例子(1)
- Mplayer移植
- IFeatureCursor和ICursor的转换问题
- nios 开始学习了
- zal
- 利用EXCEL VBA指定将十进制浮点数转换为二进制数
- HP大中华区总裁孙振耀退休感言(转载,全,很长,感触颇深)
- Nios II 简介
- malloc/free new/delete