首页 > 代码库 > ibatis入门
ibatis入门
习惯hibernate太化自动了,学习下ibatis的半自动化, 各有各的优势,各有各的长处。
数据库表(oracle):
create table student(
sid int ,
sname varchar2(50),
major varchar2(50),
birth Date
)
create sequence studentPKSequence start with 1 increment by 1
select studentPKSequence.nextval from dual
insert into student values(1, ‘deng1‘, ‘major01‘, TO_DATE(‘2014-12-22‘,‘yyyy-mm-dd‘));
配置文件(SqlMapConfig.xml):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value=http://www.mamicode.com/"oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL" value=http://www.mamicode.com/"jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name="JDBC.Username" value=http://www.mamicode.com/"deng"/>
<property name="JDBC.Password" value=http://www.mamicode.com/"xxxx"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/dyh/ibatis/test01/Student.xml"/>
</sqlMapConfig>
配置文件(Student.xml):
<?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 namespace="Student">
<typeAlias alias="Student" type="com.dyh.ibatis.test01.Student"/>
<select id="selectAllSudent" resultClass="Student">
select * from student
</select>
<select id="selectSudentById" parameterClass="int" resultClass="Student">
select * from student where sid=#sid#
</select>
<insert id="insertStudent" parameterClass="Student">
insert into Student(
sid,
sname,
major,
birth
)
values(
#sid#,#sname#,#major#,#birth#
)
</insert>
<delete id="deleteStudentById" parameterClass="int">
delete from Student where sid =#sid#
</delete>
<update id="updateStudentById" parameterClass="Student">
update Student set major=#major# where sid = #sid#
</update>
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select * from Student where sname like ‘%$sname$%‘
</select>
<insert id="insertStudentBySequence" parameterClass="Student">
<selectKey resultClass="int" keyProperty="sid">
select studentPKSequence.nextVal from dual
</selectKey>
insert into Student(
sid,
sname,
major,
birth
)
values(
#sid#,#sname#,#major#,#birth#
)
</insert>
</sqlMap>
Student的实体类
package com.dyh.ibatis.test01;
import java.util.Date;
public class Student {
private int sid;
private String sname;
private String major;
private Date birth;
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;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", major=" + major
+ ", birth=" + birth + "]";
}
}
DAO接口(IStudentDAO):
package com.dyh.ibatis.test01;
import java.util.List;
public interface IStudentDAO {
public void addStudent(Student student);
public void addStudentBySequence(Student student);
public void delectStudentById(int id);
public void updateStudentById(Student student);
public List<Student> querAllStudent();
public List<Student> querStudentByName(String name);
public Student queryStudentById(int id);
}
DAO实现(IStudentDAOimpl):
package com.dyh.ibatis.test01;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class IStudentDAOimpl implements IStudentDAO {
private static SqlMapClient sqlMapper = null;
static {
try {
Reader reader = Resources.getResourceAsReader("com/dyh/ibatis/test01/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
}
}
@Override
public void addStudent(Student student) {
// TODO Auto-generated method stub
try {
sqlMapper.insert("insertStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void addStudentBySequence(Student student) {
// TODO Auto-generated method stub
try {
sqlMapper.insert("insertStudentBySequence", student);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void delectStudentById(int id) {
// TODO Auto-generated method stub
try {
sqlMapper.delete("deleteStudentById", id);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void updateStudentById(Student student) {
// TODO Auto-generated method stub
try {
sqlMapper.update("updateStudentById", student);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public List<Student> querAllStudent() {
// TODO Auto-generated method stub
List<Student> studentList = null;
try {
studentList = sqlMapper.queryForList("selectAllSudent");
} catch (SQLException e) {
e.printStackTrace();
}
return studentList;
}
@Override
public List<Student> querStudentByName(String name) {
// TODO Auto-generated method stub
List<Student> studentlist = null;
try {
studentlist = sqlMapper.queryForList("selectStudentByName", name);
} catch (SQLException e) {
e.printStackTrace();
}
return studentlist;
}
@Override
public Student queryStudentById(int id) {
// TODO Auto-generated method stub
Student student = null;
try {
student = (Student) sqlMapper.queryForObject("selectSudentById", id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
}
测试类:
package com.dyh.ibatis.test01;
import java.sql.Date;
public class test {
public static void main(String[] args) {
//查找所有
IStudentDAO dao = new IStudentDAOimpl();
// for(Student student : dao.querAllStudent()){
// System.out.println(student);
// }
// //通过id查找
// System.out.println(dao.queryStudentById(3));
// //插入实体
// Student student = new Student();
// student.setSid(4);
// student.setSname("deng4");
// student.setMajor("major4");
// student.setBirth(Date.valueOf("2014-12-23"));
// dao.addStudent(student);
//通过id删除
// dao.delectStudentById(4);
//通过id来更新
// Student student = new Student();
// student.setSid(3);
// student.setMajor("major33");
// dao.updateStudentById(student);
//模糊查询
// for(Student student : dao.querStudentByName("g3")){
// System.out.println(student);
// }
//通过序列插入数据
Student student = new Student();
student.setSname("deng444");
student.setMajor("major444");
student.setBirth(Date.valueOf("2014-12-23"));
dao.addStudent(student);
}
}
ibatis入门