MyBatis的前身是iBatis,本是Apache的一个开源项目。
MyBatis是一个数据持久层(ORM)框架,把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。
MyBatis小巧,易学。
基于SQL语法,简单易学。
能了解底层组装过程。
SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
程序调试方便。
添加相应的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驱动包】
mysql-connector-java-5.1.7-bin.jar
在SRC下创建mybatis-config.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">
<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
<!-- 引入 database.properties 文件-->
<properties resource="database.properties"/>
<!-- 配置mybatis的log实现为LOG4J -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<environments default="development">
<environment id="development">
<!--配置事务管理,采用JDBC的事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<mapper resource="cn/dao/UserMapper.xml"/>
</mappers>
</configuration>
新建一个表的实体类
package cn.entity;
import java.io.Serializable;
public class UserEntity implements Serializable {
private int uid;
private String unama;
private String upwd;
/**
* @return the uid
*/
public int getUid() {
return uid;
}
/**
* @param uid the uid to set
*/
public void setUid(int uid) {
this.uid = uid;
}
/**
* @return the unama
*/
public String getUnama() {
return unama;
}
/**
* @param unama the unama to set
*/
public void setUnama(String unama) {
this.unama = unama;
}
/**
* @return the upwd
*/
public String getUpwd() {
return upwd;
}
/**
* @param upwd the upwd to set
*/
public void setUpwd(String upwd) {
this.upwd = upwd;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "UserEntity [uid=" + uid + ", unama=" + unama + ", upwd=" + upwd
+ "]";
}
}
在创建一个DAO包在下面创建UserMapper.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="cn.dao.AdminDao">
<select id="select" resultType="cn.entity.UserEntity" parameterType="String">
select * from user
</select>
<delete id="delete" parameterType="int">
delete from user where uid=#{uid}
</delete>
<update id="update" parameterType="cn.entity.UserEntity" >
UPDATE USER set unama=#{unama},upwd=#{upwd} where uid=#{uid}
</update>
<insert id="insert" parameterType="cn.entity.UserEntity">
INSERT INTO `user`(unama,upwd) VALUES(#{unama},#{upwd})
</insert>
<select id="likeselect" resultType="cn.entity.UserEntity" parameterType="String">
select * from user where unama like concat ('%',#{unama},'%')
</select>
</mapper>
在mybatis-config.xml中注册UserMapper.xml
<mappers>
<mapper resource="cn/dao/UserMapper.xml"/>
</mappers>
创建一个Test类测试
package cn.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import cn.dao.AdminDao;
import cn.entity.UserEntity;
import cn.untils.UserUntils;
public class Test {
public static void main(String[] args) {
SqlSession session = null;
try {
UserEntity entity=new UserEntity();
session = UserUntils.getSession();
/* entity.setUid(1);
entity.setUnama("benben");
entity.setUpwd("7818");
int update1=session.getMapper(AdminDao.class).update(entity);
System.out.println(update1);*/
/*int delete=session.getMapper(AdminDao.class).delete(1);
System.out.println(delete);*/
/*entity.setUnama("dou");
entity.setUpwd("love");
int insert=session.getMapper(AdminDao.class).insert(entity);
System.out.println(insert);*/
/*List<UserEntity> list=session.getMapper(AdminDao.class).likeselect("l");
for(UserEntity bb:list){
System.out.println(bb.toString());
}*/
session.commit();
List<UserEntity> list = session.getMapper(AdminDao.class).select();
for (UserEntity bb : list) {
System.out.println(bb.toString());
}
} catch (Exception e) {
e.printStackTrace();
session.rollback();
} finally {
}
UserUntils.closeSession(session);
}
}
创建一个接口类
package cn.dao;
import java.util.List;
import cn.entity.UserEntity;
public interface AdminDao {
List<UserEntity> select();
int delete(int uid);
int update(UserEntity entity);
int insert(UserEntity entity);
List<UserEntity> likeselect(String unama);
}
创建连接
package cn.untils;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class UserUntils {
private static SqlSessionFactory sessionFactory;
static{
InputStream is=null;
try {
is=Resources.getResourceAsStream("mybatis-config.xml");
sessionFactory=new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession(){
SqlSession session=sessionFactory.openSession(false);
return session;
}
public static void closeSession(SqlSession session){
if(session!=null){
session.close();
}
}
}