1.创建javaweb项目MyBaits_Part4_@Base
2.在项目的WebRoot下的WEB-INF下的lib包下添加如下jar文件
mybatis-3.2.3.jar
ojdbc14.jar
3.在src下的配置链接数据库的属性文件jdbc.properties
1 driver=oracle.jdbc.driver.OracleDriver 2 url=jdbc:oracle:thin:@127.0.0.1:1521:orcl 3 username=holly 4 password=sys
4.在src下创建mybatisConfig.xml主配置文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > 3 <configuration> 4 5 <!-- 1.引用jdbc链接数据库的属性文件 --> 6 <properties resource="jdbc.properties"/> 7 8 <!-- 2.类路径的别名 --> 9 <typeAliases> 10 <typeAlias type="com.entity.Teacher" alias="Teacher"/> 11 </typeAliases> 12 13 <!-- 3.事务和数据源的配置 --> 14 <environments default="development"> 15 <environment id="development"> 16 <transactionManager type="jdbc"/> 17 <dataSource type="POOLED"> 18 <property name="driver" value="${driver}"/> 19 <property name="url" value="${url}"/> 20 <property name="username" value="${username}"/> 21 <property name="password" value="${password}"/> 22 </dataSource> 23 </environment> 24 </environments> 25 <!-- 4.注册映射文件 --> 26 <mappers> 27 <!-- 有映射文件时resource属性=映射文件的路径 --> 28 <!-- 使用注解没有映射文件时class属性=映射文件的路径 --> 29 <!-- 如果低版本dtd,使用注解,这里还是配置resouce=映射xml文件, 30 但是映射文件的mapper节点上只写一个namespace=映射接口的全路径 31 <mapper resource="com/mapper/TeacherMapper.xml"/> 32 --> 33 <!-- 如果高版本dtd,使用注解,这里如下配置,不需要写映射的xml文件"/> 34 --> 35 <mapper class="com.mapper.TeacherMapper"/> 36 37 </mappers> 38 39 </configuration>
5.在src下的com.entity包下创建Teacher.java
1 package com.entity; 2 3 public class Teacher { 4 private int tid; 5 private String tname; 6 7 public Teacher() { 8 } 9 public Teacher(int tid, String tname) { 10 this.tid = tid; 11 this.tname = tname; 12 } 13 public int getTid() { 14 return tid; 15 } 16 public void setTid(int tid) { 17 this.tid = tid; 18 } 19 public String getTname() { 20 return tname; 21 } 22 public void setTname(String tname) { 23 this.tname = tname; 24 } 25 @Override 26 public String toString() { 27 return "Teacher [tid=" + tid + ", tname=" + tname + "]"; 28 } 29 30 31 }
6.在src下的com.util包下创建MybatisUtil.java
1 package com.util; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 10 11 public class MyBaitsUtil { 12 private static SqlSessionFactory sqlSessionFactory; 13 14 static{ 15 try { 16 Reader reader=Resources.getResourceAsReader("configuration.xml"); 17 sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 22 } 23 /** 24 * 25 * @param isCommit true表示执行完操作提交事务,false表示执行完不自动提交事务 26 * @return 27 */ 28 public static SqlSession getSqlSession(boolean isCommit){ 29 return sqlSessionFactory.openSession(isCommit); 30 } 31 32 }
7.在src下的com.mapper包下创建TeacherMapper.java
1 package com.mapper; 2 3 import java.util.List; 4 5 import org.apache.ibatis.annotations.Delete; 6 import org.apache.ibatis.annotations.Insert; 7 import org.apache.ibatis.annotations.Select; 8 import org.apache.ibatis.annotations.Update; 9 10 import com.entity.Teacher; 11 12 public interface TeacherMapper { 13 @Insert("insert into teacher values(seq_teacher.nextval,#{tname}") 14 int saveTeacher(Teacher teacher); 15 16 @Select("select * from teacher") 17 List<Teacher> findAll(); 18 19 @Select("select * from teacher where tid=#{tid}") 20 Teacher findById(int id); 21 22 @Update("update teacher set tname=#{tname} where tid=#{tid}") 23 int updateTeacher(Teacher teacher); 24 25 @Delete("delete from teacher where tid=#{tid}") 26 int deleteTeacher(int id); 27 }
8.在src下的com.test包下创建Test.java
1 package com.test; 2 3 import java.util.List; 4 5 import org.apache.ibatis.session.SqlSession; 6 7 import com.entity.Teacher; 8 import com.mapper.TeacherMapper; 9 import com.util.MyBaitsUtil; 10 11 public class Test { 12 13 /** 14 * @param args 15 */ 16 public static void main(String[] args) { 17 SqlSession sqlSession=MyBaitsUtil.getSqlSession(false); 18 19 TeacherMapper mapper=sqlSession.getMapper(TeacherMapper.class); 20 List<Teacher> list=mapper.findAll(); 21 for (Teacher teacher : list) { 22 System.out.println(teacher); 23 } 24 sqlSession.close(); 25 26 } 27 28 }