MyBatis簡單搭建
阿新 • • 發佈:2018-12-18
1、匯入相應的jar包
2、匯入資料庫配置檔案 jdbc.properties,直接寫在MyBatis配置檔案裡也行,但是我不建議那麼做。
username=root password=root url=jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=utf-8 driverClassName=com.mysql.jdbc.Driver initialSize=5 maxActive=30 maxIdle=10 minIdle=5 maxWait=3000 #removeAbandoned=true #removeAbandonedTimeout=180 #user=lihh #password=lihh2013 #url=jdbc:oracle:thin:@192.168.0.26:1521:tarena #driver=oracle.jdbc.OracleDriver #user=sd1305 #password=sd1305 #url=jdbc:oracle:thin:@192.168.0.26:1521:tarena #driver=oracle.jdbc.OracleDriver #user=openlab #password=open123 #url=jdbc:oracle:thin:@192.168.0.23:1521:tarena10g #driver=oracle.jdbc.OracleDriver
3、匯入MyBatis配置檔案 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> <!-- 載入資料庫配置檔案 --> <properties resource="jdbc.properties" /> <environments default="environment"> <environment id="environment"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driverClassName}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/bb/dao/DeptMapper.xml"/> </mappers> </configuration>
4、為了測試我們再建兩個類
- 實體類 Dept
public class Dept implements Serializable{ private int deptno; private String dname; private String loc; public Dept() {} public Dept(int deptno, String dname, String loc) { super(); this.deptno = deptno; this.dname = dname; this.loc = loc; } public int getDeptno() { return deptno; } public void setDeptno(int deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } @Override public String toString() { return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]"; } }
- dao類 DeptDao
import java.util.List;
import com.oracle.bean.Dept;
public interface DeptDao {
public void addDept(Dept dept);
public void deleteByDeptno(int deptno);
public void updateDept(Dept dept);
public Dept findByDeptno(int deptno);
public List<Dept> findAll();
}
5、把DeptDao配置到Mybatis對映檔案中 DeptMapper.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="com.oracle.dao.DeptDao" >
<insert id="addDept" parameterType="com.bb.bean.Dept">
insert into t_dept values(#{deptno},#{dname},#{loc})
</insert>
<delete id="deleteByDeptno" parameterType="int">
delete from t_dept where deptno = #{deptno}
</delete>
<update id="updateDept" parameterType="com.bb.bean.Dept">
update t_dept set dname = #{dname}, loc = #{loc} where deptno = #{deptno}
</update>
<select id="findByDeptno" parameterType="int" resultType="com.bb.bean.Dept">
select * from t_dept where deptno = #{deptno}
</select>
<select id="findAll" resultType="com.bb.bean.Dept">
select * from t_dept
</select>
</mapper>
namespace ——Dao介面位置
insert ——插入
delete ——刪除
update ——更新
select ——查詢
id ——介面中方法名
parameterType ——傳入引數型別
resultMap ——結果集
6、上述步驟完成後就可以測試了。
import java.io.IOException;
import java.io.Reader;
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.oracle.bean.Dept;
public class TestSqlSession {
@Test
public void testSqlSession() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
System.out.println(session);
// 關閉SqlSession
session.close();
}
@Test
public void testAddDept() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
Dept dept = new Dept(7, "後勤部", "義大利");
session.insert("addDept", dept);
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void testDeleteDept() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
session.delete("deleteByDeptno", 7);
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void testUpdateDept() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
Dept dept = new Dept(6, "安保部", "索馬利亞");
session.update("updateDept", dept);
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void testSelectOne() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
Dept dept = session.selectOne("findByDeptno", 6);
System.out.println(dept);
// 關閉SqlSession
session.close();
}
@Test
public void testSelectAll() throws IOException {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
// 建立SqlSession
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader);
SqlSession session = factory.openSession();
List<Object> list = session.selectList("findAll");
System.out.println(list);
// 關閉SqlSession
session.close();
}
}