MyBatis框架学习
原理:
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
上代码 首先导包:
主要导入依赖包和mybatis-3.5.1.jar;
然后就是写全局配置文件 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>
<!-- 配置mybatis的环境信息 -->
<environments default="development">
<environment id="development">
<!-- 配置JDBC事务控制,由mybatis进行管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源,采用dbcp连接池 mybatis自带的 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/fimldb?serverTimezone=GMT%2B8&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<-- 映射文件路径 -->
<mappers>
<mapper resource="userinfo.xml"/>
</mappers>
</configuration>
----注意这里写url的时候xml语法是不允许写& 符号的 需要转义 ---自己去百度;
映射文件 ----userinfo.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="test">
<select id="FindUserId" parameterType="int" resultType="com.film.bean.emp">
select * from emp where eid = #{eid};
</select>
<select id="all" resultType="com.film.bean.emp">
select * from emp
</select>
<insert id="add" parameterType="com.film.bean.emp">
insert into emp(ename,esex,egw) values(#{ename},#{esex},#{egw});
</insert>
<delete id="drop" parameterType="int">
delete from emp where eid =#{eid};
</delete>
</mapper>
bean类----
package com.film.bean;
public class emp {
private int eid;
private String ename;
private int esex;
private String egw;
//这里写构造函数是为了方便设置参数
public emp(int eid, String ename, int esex, String egw) {
this.eid = eid;
this.ename = ename;
this.esex = esex;
this.egw = egw;
}
public int getEid() {
return eid;
}
public void setEid(int eid) {
this.eid = eid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public int getEsex() {
return esex;
}
public void setEsex(int esex) {
this.esex = esex;
}
public String getEgw() {
return egw;
}
public void setEgw(String egw) {
this.egw = egw;
}
@Override
public String toString() {
return "emp [eid=" + eid + ", ename=" + ename + ", esex=" + esex + ", egw=" + egw + "]";
}
}
测试类:
package com.film.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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.junit.Test;
import com.film.bean.emp;
import com.sun.org.apache.bcel.internal.generic.NEW;
public class test {
public static void main(String[] args) throws Exception {
InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
SqlSession session =ssf.openSession();
emp emp=session.selectOne("FindUserId", 1);
System.out.println(emp);
//session.insert("add",new emp(1, "付", 20, "大哥"));
session.delete("drop",4);
session.commit();
List<emp> arr=session.selectList("all");
System.out.println(arr);
session.close();
}
}