Java开发之Mybatis框架
mybasits配置文件书写
1.configer文件配置
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
2.mapper文件配置
(1)resultType是返回值类型
(2)pramatetertype是传入的参数
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
insert into table4012(id,username,number,mybasits,android,javaee) values (#{id},#{username},#{number},#{mybasits},#{android},#{javaee})
delete from table4012 where id=#{**}
update table4012 set username=#{username},number =#{number},mybasits=#{mybasits},android=#{android},javaee=#{javaee} where id=#{id}
3.util类配置
package com.SelfStudy.util;
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 java.io.InputStream;
public class Util {
private static SqlSessionFactory build;//定义一个对象
static {
String s="mybatis.config.xml";//加载config文件
InputStream inputStream=null;//输入输出流
try {
inputStream= Resources.getResourceAsStream(s);
build=new SqlSessionFactoryBuilder().build(inputStream);
}
catch (Exception e){
e.printStackTrace();
}
finally {
try {
if ( inputStream !=null){
inputStream.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
public static SqlSession getSession(){
return build.openSession();
}
}
4.log4j.properties文件配置
log4j.appender.console =org.apache.log4j.ConsoleAppender
log4j.appender.console.Target =System.out
log4j.appender.console.layout =org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =[%-5p][%d{yyyy-MM-dd HH:mm:ss}] %c %L %m%n
专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业梁河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
\u914D\u7F6E\u6839
log4j.rootLogger =debug,console
##log4j.logger.com.mapper.StudentMapper=debug,console
四.动态sql
1.if set标签的使用
Select from table
if(test="name!=null and name!=''"){
#{id}
}
如果是数据库添加语句在每一句后面添加,
if(test="name!=null and name!=''"){
#{id},
}
2.where标签的使用
Select from table
if(test="name!=null and name!=''"){
name=#{name}
}
如果是数据库添加语句在每一句后面添加,
if(test="id!=null and id!=''"){
id=#{id}
}
3.choose when标签的使用
and name=#{name}
- set标签的使用
uddate Table
set id=#{id} - trim标签的使用
update Teacher
name=#{name},age=#{age},
where id=#{id}
prefix=“在前面进行添加”
prefixOverrides=“在前面进行去掉”
suffix=“在后面进行添加”
suffixOverrides=“在后面进行去掉”
重点:执行的顺序 先去除再添加 - bind标签
slct * from tabl wr nam lik #{nam} - foreach(集合查询,添加)
insert into table () valuse
#{},
collection:传入的参数类型
open:打开方式
close:关闭方式
item:item - selectkey 的使用(查询上一条记录的一个属性)
insert table valuse()
select last_insert_name()
keypropert是查询的属性的名称
resulttype是XM代理申请www.fx61.com/brokerlist/xm.html返回值类型,是查询结果的返回值类型
order是执行顺序
keycolum:数据库中对应的属性
多种查询方法的使用
1.模糊查询
select from table where name=#{name}
[1]在查询的时候改正
SelectAll("%ko%");
[2]在sql语句中改正
使用concat函数
select from table where
id=concat('%',#{id},'%') - 多表联合查询
(1) mapper文件的配置类//封装连接类的属性,主要是主类属性 //用association封装子类所有的属性
(2) test测试类@org.junit.Test
br/>@org.junit.Test
SqlSession session=Util.getSession();
PeopleMapperDao peopleMapperDao=session.getMapper(PeopleMapperDao.class);
peopleMapperDao.SelectTogether();
Listlist=null;
list=peopleMapperDao.SelectTogether();
System.out.println(list);
}
3.一对一联合查询
配置类文件
package com.pojo;
public class Student {
private String name;
private Integer id;
private Integer tid;//和老师中的id对因
private String address;
private String city;
//一个学生对应一个老师
private Teacher teacher;//在学生中查询老师
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getTid() {
return tid;
}
public void setTid(Integer tid) {
this.tid = tid;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Student(String name, Integer id, Integer tid, String address, String city, Teacher teacher) {
this.name = name;
this.id = id;
this.tid = tid;
this.address = address;
this.city = city;
this.teacher = teacher;
}
public Student() { }@Override
br/>@Override
return "Student{" +
"name='" + name + '\'' +
", id=" + id +
", tid=" + tid +
", address='" + address + '\'' +
", city='" + city + '\'' +
", teacher=" + teacher +
'}';
}
}
接口配置
package com.service;
import com.pojo.Student;
import java.util.List;
public interface StudentDao {
public ListSelectall();
public ListSelectByid(Integer id);
//查询所有学生
public ListSelectAllStudent();
public Listselct01();
}
mapper文件配置
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4.多对一联合查询 - 多对多的联合查询
实体类的配置
package com.pojo;
import java.util.Date;
import java.util.List;
public class Writer {
private String name;
private Integer id;
private Integer age;
private String sex;
private String book;
private Date birthday;
//查询作者里面包含作品
private Listworks;
public ListgetWorks() {
return works;
}
public void setWorks(Listworks) {
this.works = works;
}
public Writer(Listworks) {
this.works = works;}
@Override
br/>}
@Override
return "Writer{" +
"name='" + name + '\'' +
", id=" + id +
", age=" + age +
", sex='" + sex + '\'' +
", book='" + book + '\'' +
", birthday=" + birthday +
", works=" + works +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Writer(String name, Integer id, Integer age, String sex, String book, Date birthday) {
this.name = name;
this.id = id;
this.age = age;
this.sex = sex;
this.book = book;
this.birthday = birthday;
}
public Writer() { }
}
mapper文件配置
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
注解方式配置
@Results(value={
br/>
注解方式配置
@Results(value={
br/>@Result(column="",property=""),
br/>@Result(column="",property=""),
br/>@Result(column="",property=""),
@Select(".......")
br/>})
@Select(".......")- 导入包
org.apache.poi poi 3.17 commons-io commons-io 2.4
//导入依赖
2.构建方法
public class ImportExcel {
//导入excel文件的方法
public void ReadExcel(File file){
Listlist=new ArrayList<>();
//1.传入需要导入的Excel文件的路径
try{
//2.读取文件的内容
HSSFWorkbook workbook=new HSSFWorkbook(FileUtils.openInputStream(file));
//3.读取文件的sheet页,sheet就是Excel中的每一张表,也就是workboo的sheet页
HSSFSheet sheet=workbook.getSheetAt(0);
//4.开始读取表的内容
int startline=0;//起始行的行数,也就是从0 到最后一行
int endline=sheet.getLastRowNum()+1;//最后一行d的下表
//遍历每一行
Map> map=new HashMap<>();
//第一行,第一列,值
//遍历行
for (int a=1;aHSSFRow hssfRow=sheet.getRow(a);
//遍历列
//写一个集合存储列和值
Mapresult=new HashMap<>();
int endcell=hssfRow.getLastCellNum();
for (int j=0;jresult.put(j, hssfRow.getCell(j));//用行数去获取列
}
map.put(a, result);
}
Listlist1=new ArrayList<>();
for (Integer xxx:map.keySet()){
System.out.print(map.get(xxx).get(0));
System.out.print(map.get(xxx).get(1));
System.out.print(map.get(xxx).get(2));
System.out.print(map.get(xxx).get(3));
People people=new People();
people.setName(String.valueOf(map.get(xxx).get(0)));
String java=String.valueOf(map.get(xxx).get(1));
Integer java1=Integer.parseInt(java.substring(0, java.indexOf(".")));
people.setJava(java1);
String mybas=String.valueOf(map.get(xxx).get(2));
Integer mybas1=Integer.parseInt(mybas.substring(0, mybas.indexOf(".")));
people.setMybas(mybas1);
String androi=String.valueOf(map.get(xxx).get(3));
Integer androi1=Integer.parseInt(androi.substring(0, androi.indexOf(".")));
people.setAndroi(androi1);
list1.add(people);
}
SqlSession session= Util.getSession();
PeopleMapperDao peopleMapperDao=session.getMapper(PeopleMapperDao.class);
peopleMapperDao.ExcelInsert(list1);
session.commit();
}
catch (Exception e){
e.printStackTrace();
}
}
}- 调用方法@org.junit.Test
br/>@org.junit.Test
ImportExcel aaa=new ImportExcel();
File file=new File("C:/Users/lenovo/Desktop/study/ssm笔记/test4012.xls");
aaa.ReadExcel(file);
} - 导入包
文章题目:Java开发之Mybatis框架
文章起源:http://scyanting.com/article/pocssh.html