zoukankan      html  css  js  c++  java
  • MyBatis+mysql查询和添加数据

    项目结构:

    Menu

    package com.mstf.dao;
    
    import java.util.Scanner;
    
    import org.apache.ibatis.session.SqlSession;
    import com.mstf.util.MyBatisUtil;
    
    public class Menu {
    
    	private static Scanner sc = new Scanner(System.in);
    
    	public static void main(String[] args) {
    		SqlSession session=MyBatisUtil.getSession();
    		System.out.println("请输入菜单选项:");
    		System.err.println("1.根据订单ID查询信息");
    		System.err.println("2.添加客户订单信息");
    		String id = sc.next();
    		if ("1".equals(id)) {
    			Table.table1();
    		} else if ("2".equals(id)) {
    			Table.table2();
    		} else {
    			System.err.println("非法操作:没有此选项!");
    			session.close();
    		}
    	}
    }
    

      Table

    package com.mstf.dao;
    
    import java.util.List;
    import java.util.Scanner;
    
    import org.apache.ibatis.session.SqlSession;
    
    import com.mstf.entity.T_customer;
    import com.mstf.entity.T_order;
    import com.mstf.util.MyBatisUtil;
    
    public class Table {
    
    	private static Scanner sc = new Scanner(System.in);
    	static SqlSession session=MyBatisUtil.getSession();
    
    	/**
    	 * 根据订单 ID 查询
    	 * @author wangzheng
    	 */
    	public static void table1(){
    		System.err.println("请输入订单ID:");
    		String bug=sc.next();
    		try {
    			List<T_order> list = session.selectList("getT_customerT_order",bug);
    			for (T_order t_order : list) {
    				System.out.println(t_order);
    			}
    		} finally {
    			session.commit();
    			session.close();
    			System.out.println("查询一条数据成功!如果没有数据显示,则为无此订单ID!");
    		}
    	}
    
    	/**
    	 * 添加一条新数据
    	 * @author wangzheng
    	 */
    	public static void table2(){
    		int customer_id=0;
    		System.out.println("请输入客户姓名:");
    		String name=sc.next();
    		System.out.println("请输入客户年龄:");
    		String age=sc.next();
    		System.out.println("请输入客户电话:");
    		String tel=sc.next();
    		System.out.println("请输入订单编号:");
    		String order_number=sc.next();
    		System.out.println("请输入订单价格:");
    		String order_price=sc.next();
    		try {
    			T_customer t_customer = new T_customer(0,name,age,tel);
    			T_order t_order = new T_order(0,order_number,order_price,customer_id);
    			session.insert("insert_T_customer",t_customer);
    			session.insert("insert_T_order",t_order);
    		} finally {
    			session.commit();
    			session.close();
    			System.out.println("添加数据成功!");
    		}
    	}
    }
    

      T_customer

    package com.mstf.entity;
    
    public class T_customer {
    	private int id;
    	private String name;
    	private String age;
    	private String tel;
    
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getAge() {
    		return age;
    	}
    	public void setAge(String age) {
    		this.age = age;
    	}
    	public String getTel() {
    		return tel;
    	}
    	public void setTel(String tel) {
    		this.tel = tel;
    	}
    	public T_customer(int id, String name, String age, String tel) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.age = age;
    		this.tel = tel;
    	}
    	public T_customer() {
    		super();
    	}
    	@Override
    	public String toString() {
    		return "订单客户:[客户ID:" + id + ", 姓名:" + name + ", 年龄:" + age + ", 电话:" + tel + "]";
    	}
    }
    

      T_order

    package com.mstf.entity;
    
    public class T_order {
    	private int id;
    	private String order_number;
    	private String order_price;
    	private T_customer t_customer;
    	private int customer_id;
    
    	public int getCustomer_id() {
    		return customer_id;
    	}
    	public void setCustomer_id(int customer_id) {
    		this.customer_id = customer_id;
    	}
    	public T_customer getT_customer() {
    		return t_customer;
    	}
    	public void setT_customer(T_customer t_customer) {
    		this.t_customer = t_customer;
    	}
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getOrder_number() {
    		return order_number;
    	}
    	public void setOrder_number(String order_number) {
    		this.order_number = order_number;
    	}
    	public String getOrder_price() {
    		return order_price;
    	}
    	public void setOrder_price(String order_price) {
    		this.order_price = order_price;
    	}
    	
    	
    	public T_order(int id, String order_number, String order_price, int customer_id) {
    		super();
    		this.id = id;
    		this.order_number = order_number;
    		this.order_price = order_price;
    		this.customer_id = customer_id;
    	}
    	public T_order() {
    		super();
    	}
    	@Override
    	public String toString() {
    		return "系统订单:[订单ID:" + id + ", 订单号:" + order_number + ", 总价:" + order_price
    				+ "];
    " + t_customer + "
    ";
    	}
    	
    }
    

      T_customer.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.mstf.mapper">
    	<select id="getT_customerT_order" resultMap="T_customerT_order" parameterType="String">
    		SELECT * FROM t_customer tc,t_order t WHERE tc.id=t.customer_id and t.customer_id =#{t.customer_id}
    	</select>
    	<resultMap type="T_order" id="T_customerT_order">
    		<id column="id" property="id"/>
    		<result column="order_number" property="order_number"/>
    		<result column="order_price" property="order_price"/>
    		<association property="t_customer" javaType="T_customer">
    			<id column="id" property="id"/>
    			<result column="name" property="name"/>
    			<result column="age" property="age"/>
    			<result column="tel" property="tel"/>
    		</association>
    	</resultMap>
    </mapper>
    

      T_order.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.mstf.mapper">
    	<insert id="insert_T_customer">
    		insert into t_customer (name, age, tel) values (#{name}, #{age}, #{tel})
    	</insert>
    	
    	<insert id="insert_T_order">
    		insert into t_order (order_number, order_price, customer_id) VALUES (#{order_number},#{order_price},(SELECT MAX(`id`) FROM `t_customer`))
    	</insert>
    </mapper>
    

      MyBatisUtil

    package com.mstf.util;
    
    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;
    
    public class MyBatisUtil {
    	// 去读取编写的 mybatis_config.xml 文件加载文件中的映射
    	public static SqlSession getSession() {
    		SqlSessionFactory ssf=null;
    		String url="mybatis_config.xml";
    		Reader reader=null;
    		try {
    			reader=Resources.getResourceAsReader(url);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		ssf=new SqlSessionFactoryBuilder().build(reader);
    		return ssf.openSession();
    	}
    }
    

      db.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1/demo
    username=root
    password=root
    

      log4j.properties

    # 全局的日志配置
    log4j.rootLogger = ERROR,stdout
    # MyBatis 的日志配置
    log4j.logger.org.fkit.mapper.UserMapper=DEBUG
    # 控制台输出
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    

      mybatis_config.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">
      <!-- XML 配置文件包含对 MyBatis 系统的核心配置 -->
    <configuration>
    	<!-- 加载数据库配置文件 -->
    	<properties resource="db.properties"/>
    	<!-- 指定 MyBatis 所用日志的具体实现 -->
    	<settings>
    		<setting name="logImpl" value="LOG4J"/>
    	</settings>
    	<!-- 给实体类类取别名 -->
    	<typeAliases>
    		<typeAlias type="com.mstf.entity.T_customer" alias="T_customer"/>
    		<typeAlias type="com.mstf.entity.T_order" alias="T_order"/>
    	</typeAliases>
    	<!-- 环境配置,即连接数据库 -->
    	<environments default="mysql">
    		<environment id="mysql">
    			<!-- 指定事务管理类型, type="JDBC" 指直接简单使用了 JDBC 的提交和回滚设置 -->
    			<transactionManager type="JDBC"/>
    				<!-- dataScurce 指数据源配置, POOLED 是 JDBC 连接对象的数据源连接池的实现 -->
    				<dataSource type="POOLED">
    					<property name="driver" value="${driver}"/>
    					<property name="url" value="${url}"/>
    					<property name="username" value="${username}"/>
    					<property name="password" value="${password}"/>
    				</dataSource>
    		</environment>
    	</environments>
    	<!-- mappers 告诉了 MyBatis 去哪里找持久化类的映射文件 -->
    	<mappers>
    		<mapper resource="com/mstf/mapper/T_customer.xml"/>
    		<mapper resource="com/mstf/mapper/T_order.xml"/>
    	</mappers>
    </configuration>
    

      

  • 相关阅读:
    现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
    jvm对大对象分配内存的特殊处理(转)
    用java字节码解释i++和++i(转)
    Git 常用命令手记 及 Github协同流程(转)
    经常使用git命令集
    Android手机分辨率基础知识(DPI,DIP计算)
    软件測试自学指南---从入门到精通
    惊!从一场离奇的命案说起
    java设计模式演示样例
    浅谈UML的概念和模型之UML九种图
  • 原文地址:https://www.cnblogs.com/ceet/p/6641350.html
Copyright © 2011-2022 走看看