您的位置:首页 > 其它

开发一个mybatis的简单增删查改应用

2011-07-14 09:03 316 查看
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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐