1、 导入mybatis所需要的jar包mtbatis-3.0.1.jar和mysql的jar包
2、 在src目录下建立一个配置文件SqlMapConfig.xml如下\;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 配置管理器 -->
<configuration>
<!-- 别名 -->
<typeAliases>
<typeAlias type="org.leadfar.Person" alias="Person"/>
</typeAliases>
<!-- 配置数据库连接信息 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- 映射文件定位 -->
<mappers>
<mapper resource="org/leadfar/PersonMapper.xml" />
</mappers>
</configuration>
3、创建一个实体类如下
package org.leadfar;
import java.util.Date;
public class Person {
private int id;
private String name;
private int age;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
3、 在实体类同一目录下创建一个实体类映射文件PersonMapper.xml
内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.leadfar.Person">
<insert id="insert" parameterType="Person">
insert into t_person(id,name,age,birthday) values(#{id},#{name},#{age},#{birthday})
</insert>
<delete id="delete" parameterType="int">
delete from t_person where id=#{id}
</delete>
<update id="update" parameterType="Person">
update t_person set name=#{name},age=#{age},birthday=#{birthday} where id=#{id}
</update>
<select id="selectOne" parameterType="int" resultType="Person">
select * from t_person where id=#{id}
</select>
</mapper>
最后写测试
package com.test;
import java.io.IOException;
import java.io.Reader;
import java.util.Date;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.leadfar.Person;
import junit.framework.TestCase;
public class TestCRUD extends TestCase {
SqlSessionFactory factory=null;
public TestCRUD(){
//读取主配置文件的读取器
try {
Reader reader =Resources.getResourceAsReader("SqlMapConfig.xml");
//基于reader通过SqlSessionFactoryBuilder构建工厂
factory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void TestAdd(){
//通过factory获得数据库连接会话
SqlSession session=factory.openSession();
//插入一个对象(Person)到数据库对应的表中(t_person)
Person p=new Person();
p.setName("张总");
p.setAge(43);
p.setBirthday(new Date());
//将对象持久化到数据库中
//需要通过PersonMapper中定义的sql语句完成一个映射过程
try{
for(int i=0;i<20;i++){
p.setId(i);
session.insert(Person.class+".insert",p);
}
session.commit();
}catch(Exception e){
session.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
public void TestDelete(){
//通过factory获得数据库连接会话
SqlSession session=factory.openSession();
try{
session.delete(Person.class+".delete",3);
session.commit();
}catch(Exception e){
session.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
public void TestUpdate(){
//通过factory获得数据库连接会话
SqlSession session=factory.openSession();
Person p=new Person();
p.setId(3);
p.setName("修改后的张总");
p.setAge(11);
p.setBirthday(new Date());
try{
session.update(Person.class+".update",p);
session.commit();
}catch(Exception e){
session.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
public void TestFindById(){
//通过factory获得数据库连接会话
SqlSession session=factory.openSession();
try{
Person person =(Person)session.selectOne(Person.class+".selectOne",3);
System.out.println("查出来的Person==="+person.getName());
session.commit();
}catch(Exception e){
session.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
}