mybatis原始mapper开发未集成springMVC

db.properties 

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/igeekmybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

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>
	<!-- 是用resource属性加载外部配置文件 -->
	<properties resource="db.properties">
		<!-- 如果外部配置文件有该属性,则内部定义属性被外部属性覆盖-->
		<property name="jdbc.password" value="root123"/>
	</properties>
	
	<!-- 类型别名 -->
	<!-- 配置映射文件中使用的类型别名 -->
	<typeAliases>
		<!-- 给类型 com.igeek.crm.pojo.User取别名user-->
		<typeAlias type="com.igeek.crm.pojo.User" alias="user"/>
		<!-- 配置一个包,让该包中所有的类都是用简称 -->
		<package name="com.igeek.crm.pojo"/>
	</typeAliases>
	
	
		
	<!-- 和spring整合后 environments配置将废除 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}" />
				<property name="url"
					value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	
	
	<!-- 注册映射文件 -->
	<!-- 将映射文件配置到mybatis的配置文件中 -->
	<mappers>
		<!-- 
		<mapper resource="sqlmap/UserMapper.xml"/>
		 -->
		 <!--
		 <mapper class="com.igeek.crm.mapper.UserMapper"/>
		 -->
		 
		 <package name="com.igeek.crm.mapper"/>
	</mappers>
	
</configuration>

UserMapper.java

package com.igeek.crm.mapper;

import java.util.List;
import java.util.Map;

import com.igeek.crm.pojo.User;

/**
 * @author www.igeehome.com
 * 
 * TODO  类似与以前的dao接口
 *
 * 2018年10月15日下午7:02:12
 */
public interface UserMapper {
	public int save(User user);
	public User queryById(int id);
	public List<User> queryByName(String name);
	public List<User> queryAll();
	public int update(User user);
	public int delete(int id);
	/**
	 * 通过名称和地址查询 
	 * @param name  模糊查询
	 * @param address  精确查询
	 * @return
	 */
	public List<User> queryUserByNameAndAddress(String name,String address);
	/**
	 * 通过名称和地址查询 
	 * @param map map中的数据是 {name=xxx,address=xxxx}
	 * @return
	 */
	public List<User> queryUserByNameAndAddress1(Map params);
	
	/**
	 * 通过用户的ID查询用户信息和订单信息
	 * @param userId
	 * @return {username:"xxxx",id:xx,createTime:date}
	 */
	public Map<String,Object> queryUserOrderInfo(int userId);
	
	/**
	 * 查询用户信息和订单信息
	 * @param userId
	 * @return [{username:"xxxx",id:xx,createTime:date},
	 * 			{username:"xxxx",id:xx,createTime:date}
	 * 				.....
	 * 			]
	 */
	public List<Map<String,Object>> queryUserOrderInfo1();
	
}

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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="com.igeek.crm.mapper.UserMapper">
	<!-- 添加用户 -->
	<insert id="save" parameterType="user">
		insert into user(userName,birthday,sex,address)
		values(#{username},#{birthday},#{sex},#{address})
	</insert>
	
	<!-- 根据ID查询用户 -->
	<select id="queryById" parameterType="_int" resultType="user">
		select * from user where id = #{id}
	</select>
	
	<!-- 根据名称模糊查询 -->
	<select id="queryByName" parameterType="string" resultType="User">
		select * from user where username like '%${value}%'
	</select>
	<!-- 查询全部 -->
	<select id="queryAll" resultType="user">
		select id,username as uname,birthday,address,sex from user
	</select>
	<!--  修改用户信息 -->
	<update id="update" parameterType="user">
		update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
	</update>
	
	<!-- 根据ID删除用户 -->
	<delete id="delete" parameterType="int">
		delete from user where id = #{id}
	</delete>
	<!-- 通过名称和地址查询  -->
	<!-- 输入参数有两个, 类型无法确定,暂时不写 -->
	<select id="queryUserByNameAndAddress" resultType="user">
		select * from user where  address = #{1}  and userName like #{0}
	</select>
	<!-- 通过名称和地址查询  -->
	<!-- 使用map作为输入参数 -->
	<select id="queryUserByNameAndAddress1" parameterType="map" resultType="user">
		select * from user where  address = #{address}  and userName like #{name}
	</select>
	
	
	
	
	
	<!-- 根据用户的ID查询用户的名称和订单信息 -->
	<select id="queryUserOrderInfo" parameterType="int" resultType="map">
		select u.username,o.id,o.createTime from user u,orders o where u.id = o.user_id and u.id=#{id}
	</select>
	
	
	<!-- 查询用户的名称和订单信息 -->
	<select id="queryUserOrderInfo1" resultType="map">
		select u.username,o.id,o.createTime from user u,orders o where u.id = o.user_id 
	</select>
	
	
</mapper>

User.java

package com.igeek.crm.pojo;

import java.util.Date;

/**
 * @author www.igeehome.com
 * 
 * TODO
 *
 * 2018年10月13日下午2:15:12
 */
public class User {
	private int id;
	private String username;
	private Date birthday;
	private int sex;
	private String address;
	private String uuid;
	
	/**
	 * @return the uuid
	 */
	public String getUuid() {
		return uuid;
	}
	/**
	 * @param uuid the uuid to set
	 */
	public void setUuid(String uuid) {
		this.uuid = uuid;
	}
	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}
	/**
	 * @return the username
	 */
	public String getUsername() {
		return username;
	}
	/**
	 * @param username the username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}
	/**
	 * @return the birthday
	 */
	public Date getBirthday() {
		return birthday;
	}
	/**
	 * @param birthday the birthday to set
	 */
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	/**
	 * @return the sex
	 */
	public int getSex() {
		return sex;
	}
	/**
	 * @param sex the sex to set
	 */
	public void setSex(int sex) {
		this.sex = sex;
	}
	/**
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}
	/**
	 * @param address the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}
	/**
	 * @param id
	 * @param username
	 * @param birthday
	 * @param sex
	 * @param address
	 */
	public User(int id, String username, Date birthday, int sex, String address) {
		super();
		this.id = id;
		this.username = username;
		this.birthday = birthday;
		this.sex = sex;
		this.address = address;
	}
	/**
	 * 
	 */
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", birthday=" + birthday + ", sex=" + sex + ", address="
				+ address + ", uuid=" + uuid + "]";
	}
	
}

MyBatisTest.java

package com.igeek.crm.test;

import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import com.igeek.crm.mapper.UserMapper;
import com.igeek.crm.pojo.User;

/**
 * @author www.igeehome.com
 * 
 * TODO
 *
 * 2018年10月13日下午2:11:12
 */
public class MyBatisTest {
	SqlSessionFactory factory =null;
	
	private UserMapper userMapper = null;
	
	@Before
	public void testInit(){
//		 1. 创建SqlSessionFactoryBuilder对象
		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//		 2. 加载SqlMapConfig.xml配置文件  /20181013_mybatis/config/SqlMapConfig.xml
		InputStream in = MyBatisTest.class.getResourceAsStream("/SqlMapConfig.xml");
//		 3. 创建SqlSessionFactory对象
		factory = builder.build(in);
		
	}
	
	
	@Test
	public void testQueryMap1(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		List<Map<String, Object>> list = userMapper.queryUserOrderInfo1();
		System.out.println(list);
	}
	
	@Test
	public void testQueryMap(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		Map<String, Object> map = userMapper.queryUserOrderInfo(10);
		System.out.println(map);
	}
	
	
	
	@Test
	public void testQuerByNameAndAddress1(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		Map params = new HashMap();
		params.put("name", "%小%");
		params.put("address", "河南郑州");
		List<User> us = userMapper.queryUserByNameAndAddress1(params);
		System.out.println(us);
	}
	
	@Test
	public void testQuerByNameAndAddress(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		List<User> us = userMapper.queryUserByNameAndAddress("%小%", "河南郑州");
		System.out.println(us);
	}
	
	
	@Test
	public void testDelete(){
		//先查询
		int result = userMapper.delete(32);
		System.out.println(result);
	}
	
	@Test
	public void testUpdate(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		//先查询
		User u = userMapper.queryById(34);
		System.out.println(u);
		u.setUsername("赵六");
		int result = userMapper.update(u);
		System.out.println(result);
		session.commit();
		session.close();
	}
	
	
	@Test
	public void testQuerByName(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		List<User> us = userMapper.queryByName("小");
		System.out.println(us);
	}
	
	@Test
	public void testQuerById(){
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		User u = userMapper.queryById(34);
		System.out.println(u);
	}
	
	@Test
	public void testSave(){
		User user = new User();
		user.setUsername("周六");
		user.setBirthday(new Date());
		user.setSex(1);
		user.setAddress("江苏无锡");
		//创建一个userMapper
		//打开session
		SqlSession session = factory.openSession();
		//通过session获取一个mapper对象    //通过动态代理实现接口对象
		userMapper = session.getMapper(UserMapper.class);
		userMapper.save(user);
		session.commit();
		session.close();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_15204179/article/details/83067793