小配置
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="cn.entity.Dept"> 6 <!-- id:唯一标识:通过此id,程序可唯一锁定一条SQL 7 parameterType:参数类型 8 resultType:结果类型 9 --> 10 <sql id="columns"> 11 deptid,deptname 12 </sql> 13 <!-- 查询部分列*号用别名 --> 14 <select id="selectSql" resultType="cn.entity.Dept"> 15 select <include refid="columns"></include> from Dept 16 </select> 17 18 <resultMap id="Dept" type="cn.entity.Dept"> 19 <result property="deptid" column="deptid"></result> 20 </resultMap> 21 <!-- 查询所有部门信息 --> 22 <select id="selectDept" resultMap="Dept"> 23 select * from Dept 24 </select> 25 <!-- 带条件查询 --> 26 <select id="selectDeptById" parameterType="cn.entity.Dept" resultType="cn.entity.Dept"> 27 select * from Dept where deptid=#{deptid} 28 </select> 29 <!-- 添加部门信息 --> 30 <insert id="insertDept" parameterType="cn.entity.Dept"> 31 insert into Dept(deptname) values(#{deptname}) 32 </insert> 33 34 35 <!-- 删除部门信息 --> 36 <delete id="deleteDept" parameterType="cn.entity.Dept"> 37 delete from Dept where deptid=#{deptid} 38 </delete> 39 <!-- 修改部门信息 --> 40 <update id="updateDept" parameterType="cn.entity.Dept"> 41 update Dept set deptname=#{deptname} where deptid=#{deptid} 42 </update> 43 <!-- 模糊查询 --> 44 <select id="likeDept" resultType="cn.entity.Dept" parameterType="cn.entity.Dept"> 45 select * from Dept where deptname like '%${deptname}%' 46 </select> 47 <!-- 智能标签where 动态查询 --> 48 <select id="selectDeptDynamic" parameterType="cn.entity.Dept" resultType="cn.entity.Dept"> 49 select * from Dept 50 <where> 51 <if test="deptid!=null"> 52 and deptid=#{deptid} 53 </if> 54 <if test="deptname!=null"> 55 and deptname=#{deptname} 56 </if> 57 </where> 58 </select> 59 <!-- 智能标签set更新 --> 60 <update id="updatesetDept" parameterType="cn.entity.Dept" > 61 update Dept 62 <set> 63 <if test="deptid!=null">deptid=#{deptid},</if> 64 <if test="deptname!=null">deptname=#{deptname},</if> 65 </set> 66 where deptid=#{deptid} 67 </update> 68 69 </mapper>
大配置
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <environments default="development"> 7 <environment id="development"> 8 <!-- 事务策略是JDBC --> 9 <transactionManager type="JDBC" /> 10 <!-- 数据源的方式 --> 11 <dataSource type="POOLED"> 12 <property name="driver" value="com.mysql.jdbc.Driver" /> 13 <property name="url" value="jdbc:mysql://120.25.78.77:3306/zc" /> 14 <property name="username" value="zc" /> 15 <property name="password" value="zc" /> 16 </dataSource> 17 </environment> 18 </environments> 19 <!--映射文件:描述某个实体和数据库表的对应关系 --> 20 <mappers> 21 <mapper resource="cn/entity/Dept.xml" /> 22 </mappers> 23 </configuration>
测试类
1 package cn.test; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import java.io.Reader; 7 import java.util.List; 8 9 import org.apache.ibatis.session.SqlSession; 10 import org.apache.ibatis.session.SqlSessionFactory; 11 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 12 import org.junit.Before; 13 import org.junit.Test; 14 15 import cn.entity.Dept; 16 17 public class MybatisTest { 18 19 SqlSession session; 20 @Before 21 public void initData() throws FileNotFoundException{ 22 //1.1 SqlSessionFactoryBuilder 23 SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); 24 25 //1.2 SqlSesssionFactory 26 Reader reader=new FileReader("src/mybatis-config.xml"); 27 SqlSessionFactory factory = builder.build(reader); 28 29 //1.3 SqlSession 30 session= factory.openSession(); 31 } 32 /** 33 * 查询所有部门所有信息 34 * @throws IOException 35 */ 36 @Test 37 public void selectDeptTest() throws IOException 38 { 39 List<Dept> list = session.selectList("selectDept"); 40 for (Dept dept : list) { 41 System.out.println(dept.getDeptname()); 42 } 43 session.close(); 44 } 45 /** 46 * 增加 47 */ 48 @Test 49 public void insertDeptTest() 50 { 51 Dept dt=new Dept(); 52 dt.setDeptname("大牛部"); 53 int count =session.insert("insertDept",dt); 54 System.out.println(count); 55 session.close(); 56 57 } 58 /** 59 * 带条件查询 60 */ 61 @Test 62 public void selectDeptByIdTest() 63 { 64 Dept dt= new Dept(); 65 dt.setDeptid(1); 66 Dept dept=session.selectOne("selectDeptById",dt); 67 System.out.println(dept.getDeptname()); 68 session.close(); 69 70 } 71 /** 72 * 删除 73 */ 74 @Test 75 public void deleteDeptTest() 76 { 77 Dept dt=new Dept(); 78 dt.setDeptid(3); 79 int count = session.delete("deleteDept",dt); 80 session.commit(); 81 System.out.println(count); 82 session.close(); 83 } 84 /** 85 * 修改 86 */ 87 @Test 88 public void updateDeptTest() 89 { 90 Dept dt=new Dept(); 91 dt.setDeptid(1); 92 dt.setDeptname("公关部"); 93 int count = session.update("updateDept",dt); 94 session.commit(); 95 System.out.println(count); 96 session.close(); 97 } 98 /** 99 * 模糊查询 100 * 101 */ 102 @Test 103 public void likeDeptTest() 104 { 105 Dept dt=new Dept(); 106 dt.setDeptname("公"); 107 List<Dept> list = session.selectList("likeDept",dt); 108 for (Dept dept : list) { 109 System.out.println(dept.getDeptname()); 110 } 111 session.close(); 112 113 } 114 /** 115 * 别名查询 116 */ 117 @Test 118 public void selectSqlTest() 119 120 { 121 List<Dept> list = session.selectList("selectSql"); 122 for (Dept dept : list) { 123 System.out.println(dept.getDeptname()); 124 } 125 session.close(); 126 127 } 128 /** 129 * 智能标签where进行动态查询 130 */ 131 132 @Test 133 public void dynamicWhereTest() throws Exception{ 134 Dept dept=new Dept(); 135 //代表前台用户同时使用 部门编号 和 部门名称 发起了 检索 136 dept.setDeptname("公关部"); 137 dept.setDeptid(1); 138 139 140 List<Dept> list=session.selectList("selectDeptDynamic",dept); 141 for (Dept dt : list) { 142 System.out.println(dt.getDeptname()); 143 } 144 session.close(); 145 } 146 /** 147 * 智能标签set更新 148 * 149 */ 150 @Test 151 public void updatesetDeptTest() 152 { 153 Dept dt=new Dept(); 154 dt.setDeptid(1); 155 dt.setDeptname("公布部"); 156 int count = session.update("updatesetDept",dt); 157 session.commit(); 158 System.out.println(count); 159 session.close(); 160 } 161 162 163 164 }