sqlMapConfiger.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> <!-- 别名 --> <typeAliases> <typeAlias type="com.chen.pojo3.Husband" alias="_Husband"></typeAlias> <typeAlias type="com.chen.pojo3.Wife" alias="_Wife"></typeAlias> <typeAlias type="com.chen.pojo4.Department" alias="_Department"></typeAlias> <typeAlias type="com.chen.pojo4.Employee" alias="_Employee"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <!-- <mapper resource="com/chen/pojo/userMapper.xml" /> --> <mapper resource="com/chen/pojo3/O2OMapper.xml"/> <mapper resource="com/chen/pojo4/O2MMapper.xml"/> <mapper class="com.chen.pojo2.UserMapper"/> </mappers> </configuration>
案例一:简单增删改查
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="com.chen.pojo.UserMapper"> <select id="getUserById" parameterType="Long" resultType="com.chen.pojo.User"> select * from t_user where id=#{id} </select> <select id="getAllUser" resultType="com.chen.pojo.User"> select * from t_user </select> <insert id="insertUser" parameterType="com.chen.pojo.User" useGeneratedKeys="true" keyProperty="id"> insert into t_user(username,birthday) values(#{username},#{birthday}) </insert> <delete id="deleteUserById" parameterType="Long"> delete from t_user where id=#{id} </delete> <update id="updateUser" parameterType="com.chen.pojo.User"> update t_user set username=#{username},birthday=#{birthday} where id=#{id} </update> </mapper>
UserDao.java
package com.chen.dao; import java.io.IOException; import java.io.Reader; import java.util.Date; 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 com.chen.pojo.User; public class UserDao { public static SqlSessionFactory sessionFactory = null ; static{ try { Reader reader =Resources.getResourceAsReader("SqlMapConfiger.xml"); sessionFactory =new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public User getUserById(Long id){ SqlSession session = sessionFactory.openSession(); String sql ="com.chen.pojo.UserMapper.getUserById"; User u =(User) session.selectOne(sql, id); session.close(); return u; } public List<User> getAllUser(){ SqlSession session = sessionFactory.openSession(); String sql="com.chen.pojo.UserMapper.getAllUser"; List<User> list =session.selectList(sql); session.close(); return list; } public Long insert(User u){ SqlSession session = sessionFactory.openSession(); String sql = "com.chen.pojo.UserMapper.insertUser"; int w = session.insert(sql, u); session.commit(); session.close(); return u.getId(); } public void update(User u){ SqlSession session = sessionFactory.openSession(); String sql= "com.chen.pojo.UserMapper.updateUser"; session.update(sql, u); session.commit(); session.close(); } public void delete(Long id){ SqlSession session = sessionFactory.openSession(); String sql = "com.chen.pojo.UserMapper.deleteUserById"; session.delete(sql, id); session.commit(); session.close(); } }
案例二:注解方式增删改查
UserMapper.java
package com.chen.pojo2; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; public interface UserMapper { @Select("select * from t_user where id=#{id}") public User getUserById(Long id); @Select("select * from t_user") public List<User> getAllUser(); @Insert("insert into t_user(username,birthday) values(#{username},#{birthday})") public void insertUser(User u); @Delete("delete from t_user where id=#{id}") public void deleteUsser(Long id); @Update("update t_user set username=#{username},birthday=#{birthday} where id=#{id}") public void updateUser(User u); }
UserDao.java
package com.chen.dao; import java.io.IOException; import java.io.Reader; import java.util.Date; 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 com.chen.pojo2.User; import com.chen.pojo2.UserMapper; public class UserDao2 { public static SqlSessionFactory sessionFactory = null ; static{ try { Reader reader =Resources.getResourceAsReader("SqlMapConfiger.xml"); sessionFactory =new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public User getUserById(Long id){ SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); User u =userMapper.getUserById(id); session.close(); return u; } public List<User> getAllUser(){ SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); List<User> list =userMapper.getAllUser(); session.close(); return list; } public Long insert(User u){ SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); userMapper.insertUser(u); session.commit(); session.close(); return u.getId(); } public void update(User u){ SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); userMapper.updateUser(u); session.commit(); session.close(); } public void delete(Long id){ SqlSession session = sessionFactory.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); userMapper.deleteUsser(id); session.commit(); session.close(); } }
案例三:一对一关联查询
O2OMapper.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.chen.pojo3.O2OMapper"> <select id="getWifeById" parameterType="Long" resultMap="WifeResultMap"> select w.*,t.id t_id,t.name t_name from t_wife w,t_husband t where w.h_id=t.id and w.id=#{id} </select> <resultMap type="_Wife" id="WifeResultMap"> <id property="wid" column="id"/> <result property="wname" column="name"/> <association property="husband" column="h_id" javaType="_Husband"> <id property="hid" column="t_id"/> <result property="hname" column="t_name"/> </association> </resultMap> <select id="getWife" parameterType="Long" resultMap="WifeResultMap2"> select * from t_wife where id=#{id} </select> <resultMap type="_Wife" id="WifeResultMap2"> <id property="wid" column="id"/> <result property="wname" column="name"/> <association property="husband" column="h_id" javaType="_Husband" select="getHusbandById"></association> </resultMap> <select id="getHusbandById" parameterType="Long" resultType="_Husband"> select id hid,name hname from t_husband where id=#{id} </select> </mapper>
O2ODao.java
package com.chen.dao; import java.io.IOException; import java.io.Reader; 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 com.chen.pojo3.Wife; public class O2ODao { public static SqlSessionFactory sessionFactory = null ; static{ try { Reader reader =Resources.getResourceAsReader("SqlMapConfiger.xml"); sessionFactory =new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public Wife getWifeById(Long id){ SqlSession session = sessionFactory.openSession(); String sql = "com.chen.pojo3.O2OMapper.getWifeById"; Wife wife =session.selectOne(sql, id); session.close(); return wife; } public Wife getWifeById2(Long id){ SqlSession session = sessionFactory.openSession(); String sql = "com.chen.pojo3.O2OMapper.getWife"; Wife wife =session.selectOne(sql, id); session.close(); return wife; } }
案例:一对多关联查询
O2MMapper.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.chen.pojo4.O2MMapper"> <select id="getDepartmentById" parameterType="Long" resultMap="DeResultMap"> select d.*,e.id e_id,e.name e_name,e.department_id from t_temp_department d,t_employee e where d.id=e.department_id and d.id=#{id} </select> <resultMap type="_Department" id="DeResultMap"> <id property="id" column="id"/> <result property="departmentName" column="department_name" /> <collection property="employees" ofType="_Employee"> <id property="id" column="e_id"/> <result property="name" column="e_name"/> </collection> </resultMap> <select id="getDepartment" parameterType="Long" resultMap="DeResultMap2"> select * from t_temp_department where id=#{id} </select> <resultMap type="_Department" id="DeResultMap2"> <id property="id" column="id"/> <result property="name" column="name"/> <collection property="employees" column="id" ofType="_Employee" select="getEmployeeByDId"></collection> </resultMap> <select id="getEmployeeByDId" parameterType="Long" resultType="_Employee"> select * from t_employee where department_id=#{id} </select> </mapper>
O2MDao.java
package com.chen.dao; import java.io.IOException; import java.io.Reader; 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 com.chen.pojo4.Department; public class O2MDao { public static SqlSessionFactory sessionFactory = null ; static{ try { Reader reader =Resources.getResourceAsReader("SqlMapConfiger.xml"); sessionFactory =new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public Department getDepartmentById(Long id){ SqlSession session = sessionFactory.openSession(); String sql="com.chen.pojo4.O2MMapper.getDepartmentById"; Department deparment = session.selectOne(sql, id); return deparment; } public Department getDepartment(Long id){ SqlSession session = sessionFactory.openSession(); String sql="com.chen.pojo4.O2MMapper.getDepartment"; Department deparment = session.selectOne(sql, id); return deparment; } }