mybatis入门案例


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;
	}
}

猜你喜欢

转载自chentian114.iteye.com/blog/2281930