项目结构:
Menu
packagecom.mstf.dao;
importjava.util.Scanner;
importorg.apache.ibatis.session.SqlSession;
importcom.mstf.util.MyBatisUtil;
publicclassMenu {
privatestaticScanner sc =newScanner(System.in);
publicstaticvoidmain(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();
}elseif("2".equals(id)) {
Table.table2();
}else{
System.err.println("非法操作:没有此选项!");
session.close();
}
}
}
Table
63packagecom.mstf.dao;
importjava.util.List;
importjava.util.Scanner;
importorg.apache.ibatis.session.SqlSession;
importcom.mstf.entity.T_customer;
importcom.mstf.entity.T_order;
importcom.mstf.util.MyBatisUtil;
publicclassTable {
privatestaticScanner sc =newScanner(System.in);
staticSqlSession session=MyBatisUtil.getSession();
/**
* 根据订单 ID 查询
* @author wangzheng
*/
publicstaticvoidtable1(){
System.err.println("请输入订单ID:");
String bug=sc.next();
try{
List 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
*/
publicstaticvoidtable2(){
intcustomer_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 =newT_customer(0,name,age,tel);
T_order t_order =newT_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
47packagecom.mstf.entity;
publicclassT_customer {
privateintid;
privateString name;
privateString age;
privateString tel;
publicintgetId() {
returnid;
}
publicvoidsetId(intid) {
this.id = id;
}
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
this.name = name;
}
publicString getAge() {
returnage;
}
publicvoidsetAge(String age) {
this.age = age;
}
publicString getTel() {
returntel;
}
publicvoidsetTel(String tel) {
this.tel = tel;
}
publicT_customer(intid, String name, String age, String tel) {
super();
this.id = id;
this.name = name;
this.age = age;
this.tel = tel;
}
publicT_customer() {
super();
}
@Override
publicString toString() {
return"订单客户:[客户ID:"+ id +", 姓名:"+ name +", 年龄:"+ age +", 电话:"+ tel +"]";
}
}
T_order
58packagecom.mstf.entity;
publicclassT_order {
privateintid;
privateString order_number;
privateString order_price;
privateT_customer t_customer;
privateintcustomer_id;
publicintgetCustomer_id() {
returncustomer_id;
}
publicvoidsetCustomer_id(intcustomer_id) {
this.customer_id = customer_id;
}
publicT_customer getT_customer() {
returnt_customer;
}
publicvoidsetT_customer(T_customer t_customer) {
this.t_customer = t_customer;
}
publicintgetId() {
returnid;
}
publicvoidsetId(intid) {
this.id = id;
}
publicString getOrder_number() {
returnorder_number;
}
publicvoidsetOrder_number(String order_number) {
this.order_number = order_number;
}
publicString getOrder_price() {
returnorder_price;
}
publicvoidsetOrder_price(String order_price) {
this.order_price = order_price;
}
publicT_order(intid, String order_number, String order_price,intcustomer_id) {
super();
this.id = id;
this.order_number = order_number;
this.order_price = order_price;
this.customer_id = customer_id;
}
publicT_order() {
super();
}
@Override
publicString toString() {
return"系统订单:[订单ID:"+ id +", 订单号:"+ order_number +", 总价:"+ order_price
+"];\n"+ t_customer +"\n";
}
}
T_customer.xml
PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT * FROM t_customer tc,t_order t WHERE tc.id=t.customer_id and t.customer_id =#{t.customer_id}
T_order.xml
PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into t_customer (name, age, tel) values (#{name}, #{age}, #{tel})
insert into t_order (order_number, order_price, customer_id) VALUES (#{order_number},#{order_price},(SELECT MAX(`id`) FROM `t_customer`))
MyBatisUtil
24packagecom.mstf.util;
importjava.io.Reader;
importorg.apache.ibatis.io.Resources;
importorg.apache.ibatis.session.SqlSession;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
publicclassMyBatisUtil {
// 去读取编写的 mybatis_config.xml 文件加载文件中的映射
publicstaticSqlSession getSession() {
SqlSessionFactory ssf=null;
String url="mybatis_config.xml";
Reader reader=null;
try{
reader=Resources.getResourceAsReader(url);
}catch(Exception e) {
e.printStackTrace();
}
ssf=newSqlSessionFactoryBuilder().build(reader);
returnssf.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
PUBLIC"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
欢迎加入技术QQ群:364595326